鉴于以下声明:
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的语句是什么?
答案 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;
}
}