Wydrukowanie zmiennej do konsoli

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);

	}

}
2

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

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ąć ?

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.

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.

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.

1

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

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 ?

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.

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