Auf Variable einer anderen Klasse zugreifen

Hi:),
wie kann ich auf eine Variable in einer anderen Klasse zugreifen?
Z.B. ich habe die Klasse Test:

public class Test{

public number;

public Test(int id){}

public initnumber(int age){



   if(age==1){
   number==0;}
               

  else if(age == 2){
   number== 1;}
                    

}

}

und jetzt will ich auf number in der Klasse Example zugreifen.Mein Ansatz war:

public class Example{
Test test = new Test(4);

public void doSomething(){

if(test.number == 0){
System.out.println("hello");
}
if(test.number == 1){
System.out.println("bye");
}
}



}

Aber es funktioniert nicht. Wie könnte man das sonst machen?
Vielen Dank im Voraus.
LG Bubbles

da sind noch ein paar Fehler drin.

  • Der variable number ist kein Datentyp zugewiesen
  • Du übergibts den Wert nie an initnumber, so kann da nirgends ein wert geändert werden.

habe das mal schnell ausm Kopf korrigiert, keine Garantie das das so auch klappt:

public class Test
{
	public int number;
 
	public Test(int id)
	{
		initnumber(id);
	}
	 
	public void initnumber(int age)
	{
		if(age==1)
		{
			number=0;
		}
			   
		else if(age == 2)
		{
			number= 1;
		}		   
	}
 }
public class Example
{
    Test test = new Test(4);
     
    public void doSomething()
	{
		if(test.number == 0)
		{
			System.out.println("hello");
		}
		if(test.number == 1)
		{
			System.out.println("bye");
		}
    }
}

wenn du da jetzt allerdings die 4 übergibst passiert da immer noch nicht viel… muss schon die 1 oder 2 sein in den Fall

Der Aufruf selbst ist richtig (von der Logik mal abgesehen).

Du hast aber drei andere Fehler gemacht. Die sollte dir eine IDE wie Eclipse auch anzeigen.

[ol]
[li]Die Variable number hat keinen Typ (Zeile 3)
[/li][li]Die Methode initnumber(age) hat keinen Rückgabetyp (Zeile 7)
[/li][li]Man macht eine Wertzuweisung einer Variablen nicht mit ==, sondern mit = (Zeile 12 und 16)
[/li][/ol]

Edit: @KlemensyXYZ , der 2. und 3. Punkt in meiner Liste stimmt bei deinem Code auch noch nicht. :wink:

der 3. hab ich grad :slight_smile: jaja, übersehn

@Gonzo wozu 'n Rückgabewert? dürfte so doch auch gehn

Na MINDESTENS void muss da stehen. Ganz ohne Rückgabetyp geht es nicht.

ja da hast du recht… geändert
hab ich noch was übersehn?

Das schaut mir stark danach aus das noch sehr viel Grundlagen fehlen.

  • wie übergebe ich Parameter an eine Methode
  • den scope einer variablen sollte man immer so klein wie möglich halten, also Klassenvariablen private und nicht public wenn nicht nötig, ansonsten mit gettern/settern arbeiten
  • natürlich die schon genannten Punkte von meinen Vorpostern

mal abgesehen von

  • codeformatierung
  • und der main methode, wie wird das Programm denn gestartet?

[QUOTE=MiMi]Das schaut mir stark danach aus das noch sehr viel Grundlagen fehlen.
[/QUOTE]

hmm, dann sind sie wohl hier auch schon, die arroganten Klugscheisser aus dem java-forum.org, die eigentlich so gut wie nie konkret helfen können, dafür aber immer mindestens eine der folgenden Aussagen parat haben:

  1. Die fehlen vollkommen die Grundlagen von Java
  2. Das finde ich bei Google unter den ersten Hits
  3. Lies dir erst mal Java ist auch eine Insel durch

Tut mir leid wenn du gut gemeinte Tipps als Klugscheissen empfindest.
Zudem hab ich die Punkte genannt was noch fehlt und worauf geachtet werden sollte.

Und wenn man wirklich etwas unter den ersten google Hits findet, dann sollte man sich Gedanken machen ob man wirklich programmieren sollte, denn das hat auch viel mit Eigeninitiative zu tun und wissen wie man eine Suchmaschine benutzt, denn viele andere hatten meistens schon das gleiche Problem.

@Crisma

Die Fragen wurden doch vorher bereits beantwortet, von daher finde ich MiMis zusätzliche Anmerkung vollkommen in Ordnung. Eigentlich sollte der TO jetzt genug Infos haben um weiterarbeiten zu können.

Da sind auch wieder die Hans-Gäste. Bis auf trööt bin ich weiter dafür Gäste auszusperren.
-> MiMi hat keinen Google-Vorschlag gemacht, der wahrscheinlich eh auf jfo verweisen würde
-> ein Hinweis wonach man gucken soll ist viel mehr wert als so einen Winzfehler vorzusagen. nur damit beim nächsten Mal die Frage nochmal kommt.