2016-12-16 3 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()static, final и/или private, а также. Вызов методов экземпляра внутри конструктора разрешен, но может быть введено surprising bugs, если его использовать неправильно.

0

Вы можете вызвать его в конструкторе и присвоить значение DNI атрибута класса:

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

Привет! Похоже, вы новичок в StackOverflow. Я помню, что, когда я начинал, было сложно получить авансы и стать частью сообщества. Поэтому я просто хотел бы дать вам несколько советов по размещению на SO! :) Вы должны добавить форматирование в свой код. Это значительно упростит ваше решение. Также убедитесь, что ваш пост не содержит опечаток (например, «do class»). Кроме того, вы должны включить более четкое описание того, как ваш ответ решает данный вопрос. Я поддержал ваш ответ, поскольку, несмотря на несколько небольших ошибок, это хорошо. См. Ответ @ dimo414 для положительного примера. –

+0

Спасибо большое !!! –

Смежные вопросы