Wydrukowanie zmiennej do konsoli

2016-07-03 21:30
0

Może mi ktoś powiedzieć dlaczego muszę dopisać "static" przed stringa żeby wyświetliło mi w konsoli zawartość zmiennej "imię" ??

public class Imie {

  String imie = "Wioletta";

    public static void main(String[] args) {
        System.out.println(imie);

    }

}

Pozostało 580 znaków

2016-07-03 21:38
2

Bo funkcja main musi być static. Bo tak.
A to oznacza, że ma dostęp tylko do pól statycznych w swojej klasie.

edytowany 1x, ostatnio: Azarien, 2016-07-03 21:38

Pozostało 580 znaków

2016-07-03 21:48
0

no ale mamy przecież static tu:

public static void main(String[] args) {

to po co jeszcze przy zmiennej

static String imie = "Wioletta";

nie da się tego uniknąć ?

Pozostało 580 znaków

2016-07-03 21:55
2

Wiesz... da się uniknąć tylko po co komplikować sobie życie?

/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class MyClass 
{
    public String MyString;
}

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        MyClass mc = new MyClass();
        mc.MyString = "Hello world!";

        System.out.println(mc.MyString);
    }
}

https://ideone.com/hpmAIH

Funkcja main jest statyczna więc ma dostęp tylko do statycznych pól swojej klasy. Nie da się tego zmienić, bo to wynika z architektury języka i koniec.

edytowany 1x, ostatnio: grzesiek51114, 2016-07-03 21:57

Pozostało 580 znaków

2016-07-03 21:56
1

Ponieważ pisząc static przed zmienną mówisz kompilatorowi że jest ona statyczna. To że metoda jest statyczna nie oznacza że pole jest statyczne.

Pozostało 580 znaków

2016-07-03 22:00
1

@wioletta90: ponieważ musisz oznaczyć zarówno metodę, jak i pole klasy jako statyczne (w tym przypadku).
Równie dobrze mogłabyś stwierdzić, że u Ciebie w samochodzie są hamulce, po co więc komukolwiek więcej.


edytowany 1x, ostatnio: Patryk27, 2016-07-03 22:00

Pozostało 580 znaków

2016-07-03 22:19
Świetny Kaczor
1

Wioletta po prostu zignoruj wszystkie powyższe odpowiedzi i umieść zmienną wewnątrz funkcji main. Tamci użytkownicy nie chcą Ci pomóc.

Pozostało 580 znaków

2016-07-03 22:28
0
Świetny Kaczor napisał(a):

Wioletta po prostu zignoruj wszystkie powyższe odpowiedzi i umieść zmienną wewnątrz funkcji main. Tamci użytkownicy nie chcą Ci pomóc.

Faktycznie działa, ale zakładam że tak nie można bo ma to jakieś ograniczenia czy coś przy większych programach ?

Pozostało 580 znaków

2016-07-03 22:31
1

Faktycznie działa, ale zakładam że tak nie można bo ma to jakieś ograniczenia czy coś przy większych programach ?

Nie ma żadnych ograniczeń - z wyjątkiem tych, które posiada zmienna lokalna. Poczytaj o podstawach programowania najlepiej to Ci wiele wyjaśni.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0