java zwei public void?

1 Antwort

Hä?

  1. Man öffnet keine Variablen. Man deklariert sie oder eben nicht. Dann sind sie vorhanden oder nicht.
  2. Was heißt "der Code läuft mit zwei Zahlen"? Entweder hat die Klasse halt zwei Eigenschaften oder eben nicht.
public class TwoNumbers {
  public int zahl1;
  public int zahl2;
}

public static void main(string[] args) {
  TwoNumbers instance = new TwoNumbers();
  instance.zahl1 = 47;
  instance.zahl2 = 11;
}
Michi721 
Fragesteller
 06.03.2024, 14:51

ich meine _public class etwas(int a)_

zum beispiel

und dann zwei davon

dann öffne ich die klasse mit _new_(die klasse)_

und dann kann ich void von der klasse angeben

also 2 voids

0
jo135  06.03.2024, 15:16
@Michi721
 _public class etwas(int a)_

Das ist syntaktisch falsch. Aber ich vermute mal, du meinst eine Klasse, die ein int-Feld namens a hat. Etwa so (ich spare mir hier die Sichtbarkeit):

class Etwas {
  int a;
}
und dann zwei davon

Zwei Klassen oder zwei Instanzen? Beides ist natürlich möglich, wenn auch nicht mit demselben Namen.

dann öffne ich die klasse mit _new_(die klasse)_

Du kannst eine Klasse nicht "öffnen". Mit new legst du eine neue Instanz (ein Objekt) der Klasse an. Und du kannst natürlich mehrmals new verwenden, um beliebig viele Instanzen zu erzeugen.

Etwas eins = new Etwas();
Etwas zwei = new Etwas();

Was das mit void zu tun hat, ist mir jedoch völlig rätselhaft. Zwei voids...?

0
ohwehohach  06.03.2024, 15:37
@Michi721

Was redest Du denn da? Lerne bitte die Fachbegriffe - und die korrekte Syntax.

public class etwas(int a)

ist keine gültige Klassendefinition. Es könnte eine Methodendeklaration sein, aber dann hat das "class" da nichts zu suchen.

Man öffnet keine Klassen. Man erzeugt ein Objekt oder auch Instanz von einer Klasse.

Und was soll "dann kann ich void von der Klasse angeben"? "void" bedeutet "leerer Rückgabedatentyp" - früher hätte man das eine Prozedur genannt. Eine Funktion, die nichts zurückgibt.

Es gibt keine "Voids". Es gibt Methoden, die keine Rückgabe liefern. Diese werden deklariert als

void methodenName(<parameterliste>)

Also was willst Du machen? Zwei Methoden zum Setzen von zwei Zahlen?

public class TwoNumbers {
  private int n1, n2;
  public void setN1(int value) { n1 = value; }
  public void setN2(int value) { n2 = value; }
}
1
Michi721 
Fragesteller
 06.03.2024, 16:37
@ohwehohach

public void methode(int a){

so wurde mir das von anfang an beigebracht

0
ohwehohach  06.03.2024, 16:44
@Michi721

Ja. So ist das auch korrekt (wie ich ja auch schrieb). Den visibility-modifier kann man allerdings auch weglassen. Da muss nicht public stehen. Dann gilt der Default (Member ist sichtbar innerhalb desselben Package).

Aber dieses Konstrukt nennt man nicht "ein Void". Und es ist was anderes als Du in Deinem Kommentar schreibst. Da steht nämlich:

public class etwas(int a)
0