如何为另一个实例变量设置一个等于一个变量的值

时间:2017-11-12 01:56:35

标签: java class instance-variables

鉴于以下声明:

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;
    }
}

问题:假设s是Student类的实例(对象),为GP分配3.5到GPA的语句是什么?

2 个答案:

答案 0 :(得分:0)

你写的问题并没有多大意义。

问题是所写的代码将会爆炸"如果您曾尝试创建Student对象。您的Student类有一个字段s,它会尝试初始化为另一个 Student对象。哪个尝试创建另一个。哪个尝试创建另一个....

你明白了吗?

你的s不应该在那里。 Student字段本身为Student

是没有意义的

这意味着您关于如何设置无法成功实例化的对象的某个字段的问题(见上文)是没有意义的。

这是 有意义的版本:

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());
    }
}
  哦,我不知道甚至存在什么设置

您的代码明确声明了setGPA方法......所以它当然存在!

我认为您需要回到教程,讲义,教科书,以及您所学习的内容,并阅读Java类的结构。什么领域,什么方法,什么构造函数......以及如何使用它们。

答案 1 :(得分:0)

这是一个解决方案,您的学生类可用于创建对象,我们需要对该对象的一些引用才能更改值。这里s被称为学生的实例,s指的是您的学生。当您在java中编写new单词时,表示您正在创建一些新对象(在本例中为学生)。

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;

    }

}

或者您可以在创建像这样的对象时使用student类中的构造函数初始化Gpa。但是,您可以稍后使用setter和getter来操作值。

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;

    }

}