2016-12-16 122 views
-2
public class Persona { 

    private String nombre, DNI; 
    private char sexo; 
    private int edad, altura; 
    private float peso; 

    Persona(){ 
     nombre = ""; 
     sexo = 'M'; 
     edad = 0; 
     altura = 0; 
     peso = 0; 
    } 

    String generaDNI(){ 
     String DNI = ""; 
     int x = (int)(Math.random() * 100000000 + 1); 
     DNI += Integer.toString(x); 
     return DNI; 
    } 

} 

所以這是我的代碼。我想要做的是,每當我調用構造函數時,我都希望屬性「DNI」調用方法「generaDNI」,因此「DNI」的值由方法給出。我該怎麼做?如何在調用構造函數時調用方法?

+2

只需添加'DNI = generaDNI();'到你的構造。 – Zircon

+0

還要注意'int'和'float'字段默認爲'0',所以你不需要明確設置'edad','altura'或'peso'。 – dimo414

+0

哦,謝謝!現在看起來很明顯哈哈。 –

回答

1

您是否想要在構造函數中做DNI = generaDNI();?你可以只添加一行,例如:

Persona(){ 
    nombre = ""; 
    DNI = generaDNI(); 
    sexo = 'M'; 
    // you don't need to set edad, altura, or peso - they default to 0 
} 

考慮制定generaDNI()staticfinal,和/或private,以及。從構造函數中調用實例方法是允許的,但如果使用不當,可以引入surprising bugs

0

您可以在構造函數中調用它,值分配給類的屬性DNI:

Persona() { 
    nombre = ""; 
    DNI = generaDNI(); 
    sexo = 'M'; 
    edad = 0; 
    altura = 0; 
    peso = 0; 
} 
+2

嗨!它看起來像你是StackOverflow的新手。我可以記得,當我剛開始時,很難獲得投票併成爲社區的一員。所以我只想給你一些關於發佈的提示! :)你應該添加格式到你的代碼。這將使您的解決方案更容易理解。還要確保你的帖子不包含拼寫錯誤(比如'do class')。此外,你應該包括一個更明確的描述你的答案如何解決給定的問題。我贊成你的答案,因爲儘管有一些小錯誤,但它是好的。看到@ dimo414的答案是一個積極的例子。 –

+0

非常感謝! –

相關問題