2016-12-16 6 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; 
    } 

} 

Das ist also mein Code. Ich möchte immer, wenn ich den Konstruktor aufrufen möchte, dass das Attribut "DNI" die Methode "generaDNI" aufruft, so dass der Wert von "DNI" durch die Methode gegeben ist. Wie kann ich es tun?Wie kann ich eine Methode beim Aufruf eines Konstruktors aufrufen?

+2

Fügen Sie einfach 'DNI = generaDNI();' zu Ihrem Konstruktor. – Zircon

+0

Beachten Sie auch, dass die Felder 'int' und' float' standardmäßig auf '0' gesetzt sind, so dass Sie' edad', 'altura' oder' peso' nicht explizit festlegen müssen. – dimo414

+0

Oh, danke! Jetzt scheint es ziemlich offensichtlich, haha. –

Antwort

1

Möchten Sie DNI = generaDNI(); im Konstruktor machen? Sie können nur diese Zeile hinzufügen, z.B .:

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

Betrachten generaDNI()static, final zu machen und/oder private, wie gut. Der Aufruf von Instanzmethoden innerhalb des Konstruktors ist zulässig, kann jedoch bei falscher Verwendung surprising bugs enthalten.

0

Sie können es im Konstruktor aufrufen und den Wert auf DNI Attribut der Klasse zuweisen:

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

Hallo! Sie scheinen StackOverflow neu zu kennen. Ich kann mich daran erinnern, dass es zu Beginn meiner Karriere schwierig war, Upvotes zu bekommen und ein Teil der Community zu werden. Ich möchte Ihnen nur ein paar Tipps geben, wie Sie SO veröffentlichen können! :) Sie sollten Ihrem Code Formatierungen hinzufügen. Das macht Ihre Lösung viel einfacher zu verstehen. Stellen Sie außerdem sicher, dass Ihr Beitrag keine Tippfehler enthält (wie "do class"). Außerdem sollten Sie eine ausführlichere Beschreibung hinzufügen, wie Ihre Antwort eine gegebene Frage löst. Ich habe deine Antwort aufgewertet, da es trotz der wenigen kleinen Fehler gut ist. Ein positives Beispiel finden Sie in der Antwort von @ dimo414. –

+0

Vielen Dank !!! –

Verwandte Themen