每次创建对象时如何更改对象的变量?
How to change the object's variable everytime an object created?
我的课程注册项目应该有很多方法,如(添加课程)、(添加导师)等。
(add student()) 是其中一种方法,我想知道每次创建对象时如何更改对象的变量 (std)
我不知道每个对象怎么可能有相同的变量
所以,有什么建议
我想将变量更改为 std1、std2 等
public static void addstudent(){
int n=0;
System.out.println("enter your desired no. of students");
int count=in.nextInt();
while (n!=count){
int st=0;
System.out.println("Enter your first name");
String first=in.next();
System.out.println("Enter your middle name");
String middle=in.next();
System.out.println("Enter your last name");
String last =in.next();
System.out.println("Enter your blood type");
String blood=in.next();
System.out.println("Enter your phone number");
int phone=in.nextInt();
System.out.println("Enter your nationality");
String national=in.next();
System.out.println("Enter your year of birth");
int yearofbirth=in.nextInt();
Student std=new Student(first,middle,last,blood,phone,national,yearofbirth);
System.out.println("A student added successfully");
n++;
}
我想知道我做错了什么?
如果每个对象都用相同的变量声明,它会将每个创建的对象的数据克隆到新创建的对象?
谢谢。
I wanna know if that what i am doing wrong or what? And if every object is declared with the same variable it would clone the data of every created object to the new created one?
每次调用 new Student
都在创建一个新对象。然后将对象的引用分配给变量。请注意,变量不包含对象。它只包含一个引用(或指针)。
您的代码中没有进行“克隆”。并且不会覆盖之前的 Student
对象。
但是
您的 addstudent()
方法显然应该 添加 一个 Student
到某物。它没有那样做。它实际上只是创建 Student
对象并将它们的引用分配给局部变量。当方法 returns 时,局部变量超出范围,无法再访问 Student
对象。
so, any suggestions I want to change the variable to be std1
, std2
, and like that.
您需要使用 Student[]
或 List<Student>
或其他一些数据结构来保存对所有学生的引用。
(使用 std1
、std2
等变量不是解决方案。Java 不支持动态变量。即使在支持他们的语言!)
我的课程注册项目应该有很多方法,如(添加课程)、(添加导师)等。 (add student()) 是其中一种方法,我想知道每次创建对象时如何更改对象的变量 (std) 我不知道每个对象怎么可能有相同的变量
所以,有什么建议 我想将变量更改为 std1、std2 等
public static void addstudent(){
int n=0;
System.out.println("enter your desired no. of students");
int count=in.nextInt();
while (n!=count){
int st=0;
System.out.println("Enter your first name");
String first=in.next();
System.out.println("Enter your middle name");
String middle=in.next();
System.out.println("Enter your last name");
String last =in.next();
System.out.println("Enter your blood type");
String blood=in.next();
System.out.println("Enter your phone number");
int phone=in.nextInt();
System.out.println("Enter your nationality");
String national=in.next();
System.out.println("Enter your year of birth");
int yearofbirth=in.nextInt();
Student std=new Student(first,middle,last,blood,phone,national,yearofbirth);
System.out.println("A student added successfully");
n++;
}
我想知道我做错了什么?
如果每个对象都用相同的变量声明,它会将每个创建的对象的数据克隆到新创建的对象?
谢谢。
I wanna know if that what i am doing wrong or what? And if every object is declared with the same variable it would clone the data of every created object to the new created one?
每次调用 new Student
都在创建一个新对象。然后将对象的引用分配给变量。请注意,变量不包含对象。它只包含一个引用(或指针)。
您的代码中没有进行“克隆”。并且不会覆盖之前的 Student
对象。
但是
您的 addstudent()
方法显然应该 添加 一个 Student
到某物。它没有那样做。它实际上只是创建 Student
对象并将它们的引用分配给局部变量。当方法 returns 时,局部变量超出范围,无法再访问 Student
对象。
so, any suggestions I want to change the variable to be
std1
,std2
, and like that.
您需要使用 Student[]
或 List<Student>
或其他一些数据结构来保存对所有学生的引用。
(使用 std1
、std2
等变量不是解决方案。Java 不支持动态变量。即使在支持他们的语言!)