如何为另一个实例变量设置一个等于一个变量的值
How to set a value equal to one variable for another instance 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;
}
}
问题:假设s是class学生的一个实例(对象),给s的GPA分配3.5的语句是什么?
你写的问题没有多大意义。
问题是,如果您尝试创建 Student
对象,所编写的代码将 "blow up"。您的 Student
class 有一个字段 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());
}
}
ohhh, i didn't know what set even existed
您的代码明确声明了 setGPA
方法...所以它当然存在!
我认为您需要返回教程、讲义、教科书,无论您从中学到什么,然后阅读 Java class 的结构。什么是字段,什么是方法,什么是构造函数....以及如何使用它们。
这是一个解决方案,您的学生 class 可用于创建对象,我们需要对该对象的一些引用才能更改值。这里的s
称为student的instance,那个s
指的就是你的student。当您在 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;
}
}
或者您可以在学生 class 中使用构造函数来初始化 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;
}
}
给定以下声明:
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是class学生的一个实例(对象),给s的GPA分配3.5的语句是什么?
你写的问题没有多大意义。
问题是,如果您尝试创建 Student
对象,所编写的代码将 "blow up"。您的 Student
class 有一个字段 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());
}
}
ohhh, i didn't know what set even existed
您的代码明确声明了 setGPA
方法...所以它当然存在!
我认为您需要返回教程、讲义、教科书,无论您从中学到什么,然后阅读 Java class 的结构。什么是字段,什么是方法,什么是构造函数....以及如何使用它们。
这是一个解决方案,您的学生 class 可用于创建对象,我们需要对该对象的一些引用才能更改值。这里的s
称为student的instance,那个s
指的就是你的student。当您在 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;
}
}
或者您可以在学生 class 中使用构造函数来初始化 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;
}
}