Fehlerverbesserung

JavaAnfänger1235

Bekanntes Mitglied
Ich habe folgende Klasse gegeben. Darin soll ich Fehler verbessern und dafür sorgen, dass sie funktioniert:
Code:
public  class TSR {

double zahl1 , zahl2;

public  int TSR ( int z1, int z2) { //  Konstruktor
set_zahl1 (z1);                      //  Initialisieren  der  Attribute
set_zahl2 (z2);
return 0;
}

int getZahl1 () {

return zahl1;
}

int getZahl2 () {

return zahl2;
}

public  void set_zahl1 ( int zahl1) {
zahl1 = zahl1;         //  Attribut  zahl1  auf  Parameterwert  zahl1  setzen
}

public  void set_zahl2 ( int z2) {
double zahl2 = z2;      //  Attribut  zahl2  auf  Parameterwert  z2  setzen
}

int addiere() {

return  this.zahl1 + this.zahl2;
}

public  boolean summePositiv  () { //  Methode  liefert
short erg=0;

if (erg > 0) { // true , falls  Summe  der  Attribute  postiv

return  true;
}

erg = addiere(); // false , falls  Summe  der  Attribute  negativ

return  false;
}

}

Meine Verbesserung:
Code:
public  class TSR {

double zahl1 , zahl2;
public  TSR ( double z1, double z2) { //  Konstruktor
z1=zahl1;                      //  Initialisieren  der  Attribute
z2=zahl2;


}

double  getZahl1 () {

return zahl1;
}

double  getZahl2 () {

return zahl2;
}

public  void set_zahl1 (double z1) {
z1=zahl1;         //  Attribut  zahl1  auf  Parameterwert  zahl1  setzen
}

public  void set_zahl2 (double z2) {
z2 = zahl2;      //  Attribut  zahl2  auf  Parameterwert  z2  setzen
}


double  addiere() {

return  this.zahl1 + this.zahl2;
}

public  boolean summePositiv  () { //  Methode  liefert
double erg=addiere();

if (erg > 0) { // true , falls  Summe  der  Attribute  postiv

return  true;
}
else {
return  false;
}
}
}

Ist das richtig?
 

Robat

Top Contributor
Java:
double zahl1 , zahl2;
public  TSR ( double z1, double z2) { //  Konstruktor
    z1=zahl1;                      //  Initialisieren  der  Attribute
    z2=zahl2;
}

Das sieht nicht so ganz richtig aus. Links steht immer "worein" du was speichern willst, rechts steht "was" du rein speichern willst.

PS: Bitte das nächstes mal [code=Java]MY CODE[/code] -Tags nutzen :)
 

JavaAnfänger1235

Bekanntes Mitglied
Dann andersrum

Java:
double zahl1 , zahl2;
public  TSR ( double z1, double z2) { //  Konstruktor
   zahl1=z1;                      //  Initialisieren  der  Attribute
  zahl2=z2;
}
Siehst du noch was?
 

Robat

Top Contributor
Überleg dir was du gerade neu gelernt hast und schau selber durch...
Du müsstest das auf andere Dinge anwenden können..
 

JavaAnfänger1235

Bekanntes Mitglied
Java:
public  class TSR {

double zahl1 , zahl2;
public  TSR ( double z1, double z2) { //  Konstruktor
zahl1=z1;       //  Initialisieren  der  Attribute
zahl2=z2;


}

double  getZahl1 () {

return zahl1;
}

double  getZahl2 () {

return zahl2;
}

public  void set_zahl1 (double z1) {
zahl1=z1;               //  Attribut  zahl1  auf  Parameterwert  zahl1  setzen
}

public  void set_zahl2 (double z2) {
zahl2=z2;     //  Attribut  zahl2  auf  Parameterwert  z2  setzen
}


double  addiere() {

return  this.zahl1 + this.zahl2;
}

public  boolean summePositiv  () { //  Methode  liefert
double erg=addiere();

if (erg > 0) { // true , falls  Summe  der  Attribute  postiv

return  true;
}
else {
return  false;
}
}
}


Ich habe die beiden void Methoden verbessert. Stimmt der Rest?
 

JavaAnfänger1235

Bekanntes Mitglied
Java:
public  boolean summePositiv  () { //  Methode  liefert

if (addiere() > 0) { // true , falls  Summe  der  Attribute  postiv

return  true;
}
else {
return  false;
}
}
 

Robat

Top Contributor
addiere() > 0 ist ein boolean der entweder true oder false sein kann.
Wenn du es so schreibst:
Java:
if(addiere > 0) 
    return true;
else
    return false;
Dann gibst du true zurück wenn addiere() > 0 true ist, und false wenn addiere() > 0 false ist.
Daher kannst du auch einfach den Wert von addiere() > 0 zurückgeben.
 

JavaAnfänger1235

Bekanntes Mitglied
Nochmal zu meinem 1. Post:der fehlerhafte Konstruktor
Java:
public  int TSR ( int z1, int z2) { //  Konstruktor
set_zahl1 (z1);                      //  Initialisieren  der  Attribute
set_zahl2 (z2);
return 0;
}


Der Fehler liegt doch darin, dass der Konstruktor keinen primitiven Datentyp haben darf. Des weiteren wird die Methode set_zahl verwendet, die nicht definiert ist und schließlich darf der Konstrukor keinen Wert zurückgeben.
ist das richtig :)?
 

JavaAnfänger1235

Bekanntes Mitglied
Hallo,
ich habe noch eine Frage. Wenn ich die Methode addiere testen will, funktioniert das nicht.
Woran liegt das?
Java:
public static void main (String[] args) {
   
    TSR ein = new TSR(3,5);
    addiere();
   
   
}
 

Robat

Top Contributor
Die addiere Methode gibt es nur in der Klasse TSR. Demnach musst du diese auch über ein TSR Objekt aufrufen.
ein.addiere()
 

JoschaS04

Mitglied
Hallo
Ich soll für die Schule ein Taschenrechner Programm schreiben und bekomme immer wieder die Fehlermeldung "
taschenrechner.java:34:9: error: unexpected type
required: variable"
Ich hatte allerdings bisher noch nie diese Fehlermeldung und weiß nicht genau wie ich den Fehler beheben kann.
Ich hoffe ihr könnt mir dabei helfen.
Ich habe ein Foto von der Fehlerzeile angefügtScreenshot (1).png
 

mrBrown

Super-Moderator
Mitarbeiter
Hat das irgendwas mit diesem Thread zu tun?

Du solltest dir noch mal angucken, wie man in Java Variablen zuweist ;)
 

Neue Themen


Oben