2017-11-12 6 views
-1

die folgende Erklärung Bei einem Wert gleich einer Variablen setzen:Wie für eine andere Instanz Variable

class Student { 
    private double GPA; 
    private String name; 
    Student s = new Student(); 
    public void setGPA(double GPA) { 
     this.GPA = GPA; 
    }enter code here 
    public double getGPA() { 
     return GPA; 
    } 
} 

Frage: dass eine Instanz Angenommen, s ist (Objekt) der Klasse Schüler, was die Aussage zuweisen 3.5 zum GPA für s?

+0

Ich habe das folgende am GPA = 3.5 versucht; – RabbidOtter62845

+0

lol du bist sicher nicht auf dem richtigen Weg! –

+0

hat es nicht etwas damit zu tun, das "dies" zu ersetzen? Damit kann sich der GPA für die s-Variable ändern? – RabbidOtter62845

Antwort

0

Hier ist eine Lösung, Ihre Student-Klasse kann verwendet werden, um ein Objekt zu erstellen, und wir benötigen einen Verweis auf das Objekt, um die Werte zu ändern. Hier s heißt die Instanz des Schülers, dass sich s auf Ihren Schüler bezieht. Wenn Sie in Java "new" schreiben, heißt das, dass Sie ein neues Objekt erstellen (in diesem Fall ein Student).

public class test { 
    public static void main(String [] args) { 
     Student s = new Student(); 
     s.setGPA(3.5); //set Gpa 
     System.out.println(s.getGPA()); 
    } 

} 
    class Student { 
     private double GPA; 
     private String name; 


     public void setGPA(double GPA) { 
      this.GPA = GPA; 
     } 


     public double getGPA() { 
      return GPA; 

    } 

} 

Oder können Sie Konstruktor in Schüler-Klasse verwenden Gpa zu initialisieren, wenn ein Objekt wie dieses zu schaffen. Sie können jedoch später mithilfe von Setter und Getter die Werte ändern.

public class test { 
    public static void main(String [] args) { 
     Student s = new Student(5,"Khan"); 
     System.out.println("The given Gpa is " + s.getGPA() + " and name is " + s.getName()); 
     s.setGPA(3.5); //change Gpa 
     System.out.println(s.getGPA()+ "The gpa has been changed"); 
    } 

} 
    class Student { 
     private double GPA; 
     private String name; 
     public Student(double Gp,String Name) { 
      this.GPA = Gp; 
      this.name = Name; 
     } 

     public String getName() { 
      return this.name; 
     } 

     public void setGPA(double GPA) { 
      this.GPA = GPA; 
     } 


     public double getGPA() { 
      return GPA; 

    } 

} 
+0

ohhh, ich wusste nicht, welche Menge überhaupt existierte, ich dachte, du müsstest = in irgendeiner Weise verwenden, um es einzurichten. Vielen Dank für die Hilfe, ich schätze es – RabbidOtter62845

+0

@ RabbidOtter62845 Sie können nicht so etwas sagen: 'Student s = neue Student()' in Ihrer Studentenklasse btw es passiert am Anfang :) –

0

Ihre Frage, wie geschrieben, macht nicht viel Sinn.

Das Problem ist, dass der Code wie geschrieben "explodiert", wenn Sie jemals versuchen, ein Student Objekt zu erstellen. Ihre Klasse Student hat ein Feld s, das versucht, ein weiteresStudent Objekt zu initialisieren. Welcher versucht, einen anderen zu erstellen. Welche Versuche, eine andere zu erstellen ....

Sie erhalten das Bild?

Ihre s sollte nicht da sein. Es macht keinen Sinn für ein Student ein Feld zu haben, die selbst ist ein Student

Das bedeutet, dass Ihre Frage, wie eines der Felder eines Objekt zu setzen, die nicht erfolgreich instanziiert werden können (siehe oben) nicht sinnvoll .


Hier ist eine Version, die tut Sinn machen:

class Student { 
    private double GPA; 
    private String name; 

    public void setGPA(double GPA) { 
     this.GPA = GPA; 
    } 

    public double getGPA() { 
     return GPA; 
    } 

    public static void main(String args[]) { 
     Student s = new Student(); 
     s.setGPA(3.5); // This is the statement! 
     System.out.println("Score is " + s.getGPA()); 
    } 
} 

ohhh, ich wusste nicht, was gesetzt existierte sogar

Ihr Code erklärt ausdrücklich setGPA Methode ... so existiert es natürlich!

Ich denke, Sie müssen zurück zu den Tutorial, Vorlesungsnotizen, Lehrbuch, was auch immer Sie von denen gelehnt sind, und lesen Sie auf die Struktur einer Java-Klasse. Welche Felder sind, welche Methoden sind, welche Konstruktoren sind ... und wie werden sie verwendet?

Verwandte Themen