2017-04-09 13 views
1
package animal; 

class AnimalHumanDogDemo 
{ 
    public static void main(String[] args) 
    { 
     Animal chicken = new Animal(1.53, 53.2, 14.2, "red junglefowl"); 

     Human Alex = new Human(1.73, 62.3, 52.0, "Ape", "Greek", "Programmer", 1234); 

     Dog Betty = new Dog(0.53, 21.6, 8.3, "wolf", "chiouaoua", 214, false, "white"); 

     String a = chicken.toString(); 

     System.out.println(a); 

     double b = Alex.Yearly_salary(); 
     System.out.println(b); 

     String c = Alex.toString(); 
     System.out.println(c); 

     Boolean d = Betty.Expensive_Purebred(); 
     System.out.println(d); 

     String e = Betty.toString(); 
     System.out.println(e); 
    } 
} 

Als ich Haupt laufen die Ergebnisse für Streicher und bollean Variablen immer null sind, und ‚0‘ für alles andere. Ich habe den Konstruktor in Tier-, Menschen- und Hundeklassen auf die gleiche Weise erschaffen, wie ich es immer gemacht habe. Ich kann den Code der Klassen bei Bedarf bereitstellen.Constructor setzt Felder auf die Standardwerte

+2

Können Sie uns den 'Tier'-Klassencode alleine zeigen (wir nehmen an, dass Ruhe auch dem gleichen Konzept folgt)? – developer

+0

sieht aus wie eine grundlegende Java-Fragen. Beziehen Sie sich auf die Dokumentation und wenn Sie eine Frage haben, nachdem Sie mehr Zeit damit verbracht haben, die Frage umzuformulieren. – jediz

+0

Ich habe vergessen zu erwähnen, dass die Klassen Mensch und Hund die Klasse Animal erweitern und im Konstruktor verwende ich 'super()' –

Antwort

1

Sie müssen die Variablen im Konstruktor speichern.

public class Animal 
{ 
    private double x; 
    private double y; 
    private String des; 

    public Animal(double x, double y, String des) 
    { 
     this.x = x; 
     this.y = y; 
     this.des = des; 
    } 
} 

Wie cricket_007 erwähnt x = x kann zu Problemen führen.

+1

Es ist erwähnenswert, dass 'x = x' kann das Problem in der Frage verursachen –

Verwandte Themen