Übergabewert eines Konstruktor zu Attribut machen

Ich möchte in der Main-Methode eine Eingabe erfassen, dann mittels Konstruktor ein Objekt einer anderen Klasse erzeugen und die Eingabe mittels Übergabeparameter im Konstruktor zum Attribut des Objekt machen.

Der Konstruktor in der anderen Klasse sieht dann folgendermaßen aus:

public Rechteck(int a, int b)
{
int laenge = a;
int breite =b;
}

Nun möchte ich aber oben im Methodenkopf bereits anstatt a und b, laenge und breite stehen haben. Gibt es da eine möglichkeit?

und noch eine Frage sind die so erzeugten Attribute Private(Der Konstruktor ist ja so gesehen auch eine Methode) oder Public?

Hi,

warum machst du es nicht so:

public Rechteck(int laenge, int breite)
{
// Hier dann weitere Rechenoperationen eintragen
}

so musst du nicht erst Länge von A und Breite von B übernehmen, da du ja bereits die zwei Variablen übergibst.

Die zwei Variablen sind private, also nur von der Methode verwendbar (wenn ich mich nicht irre, vll verwechsel ich aber auch grade private, public mit static.

Gruß, froZen_eXe

Dass war auch meine Überlegung geht aber nicht, die Variable soll ja auch für andere Methoden innerhalb der Klasse verfügbar sein. Hier nochmal der Code mit der Fehlermeldung:

public class Rechteck {

//Konstruktor
public Rechteck(int laenge, int breite )
{
System.out.println("Hier spricht der Rechteck-Konstruktor"); 
}

public int getLaenge(){
 return laenge; // Fehler der IDE: "laenge cannot be resolvet to a variable"
}
}

Laut Aufgabenstelltung soll es sich bei laenge und breite um Instanzvariablen und nicht um Klassenvariablen handeln also kann ich sie auch nicht so einfach außerhalb der Methoden initialisieren wenn ich das jetzt richtig verstanden hab.

so:

private int laenge = 0;
private int breite = 0;

public Rechteck(int laenge, int breite){
 this.laenge = laenge;
 this.breite = breite;
}

mit dem this. greifst du gezielt auf die Klassenvariablen zu. Die Variante ohne this. ist in der Methode nur lokal.

Micha

Hi

kommt ganz drauf an.

wo wird der Konstruktor gerufen? werden die Variablen im Konstruktor einem Klassenmember zugewiesen?

wenn ich bspw das hätte:

public class myclass(){

public static void main(String[] args){
new MyOtherClass(12,13);
}

}

public class MyOtherClass{

public MyOtherClass(int laenge, int breite){
//mach was tolles
}
}

wären die Variablen breite und länge nur dem Konstruktor bekannt.

wenn ich aber MyOtherclass so schreibe:

public class MyOtherClass{

private int laenge;
private int breite;

public MyOtherClass(int laenge, int breite){
this.laenge = laenge;
this.breite = breite;
}
}

wären länge und breite in der ganzen klasse verfügbar.

will ich nun aufdiese Member auch von anderen Klassen zugreifen will schreibe ich noch getter und setter dazu.

public class MyOtherClass{

private int laenge;
private int breite;

public MyOtherClass(int laenge, int breite){
this.laenge = laenge;
this.breite = breite;
}

public int getLaenge(){
return laenge;
}

public void setLaenge(int lange){
this.laenge=laenge;
}

public int getBreite(){
return breite;
}

public void setBreite(int breite){
this.breite=breite;
}
}

ich hoffe ich konnte dir helfen