2016-12-16 91 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

非常感谢! –