为什么年龄不在此计划中显示?

Ach*_*ver -1 java

我是初学者,从过去3天开始学习Java编程语言.这里有3个实例变量,最后我得到学生记录的详细信息,除了学生的年龄.我得到'0'我在这里犯了什么错误?我很抱歉这个有点愚蠢的问题.

public class Student{ // created class
String studentName; // DataMember or Instance variable
int age;
int rollNo;
// creating insertRecord method
void insertRecord(int age,String name,int rollno){ 
age=age;
studentName=name;
rollNo=rollno;  
}
void displayRecord(){
System.out.println(age+""+studentName+""+rollNo);
}
public static void main(String[] args){ // main method
Student s1=new Student(); // creating object
Student s2=new Student(); // creating object

s1.insertRecord(23,"Maida",101);
s2.insertRecord(24,"Wheet",102);
s1.displayRecord();
s2.displayRecord();

}
}
Run Code Online (Sandbox Code Playgroud)

输出是,

0Maida101
0Wheet102
Run Code Online (Sandbox Code Playgroud)

正确的代码:

public class Student{ // created class
int age;
String studentName; // DataMember or Instance variable
int rollNo;

public Student(int age,String name,int rollno){ // creating constructor
this.age=age;
this.studentName=name;
this.rollNo=rollno;  
}

public String toString(){
System.out.println(age+""+studentName+""+rollNo);
return studentName;
}
public static void main(String[] args){ // main method
Student s1=new Student(23,"Maida",101); // creating object
Student s2=new Student(24,"Wheet",102); // creating object

s1.toString();
s2.toString();

}
}


Output is,
23Maida101
24Wheet102
Run Code Online (Sandbox Code Playgroud)

Ren*_*ink 7

将年龄分配给实例变量

this.age=age;
Run Code Online (Sandbox Code Playgroud)

否则,您只需将age参数分配给age参数.那没有效果.

  • +1,也应该将insertRecord转换为构造函数,displayRecord应该成为toString. (3认同)
  • 另请阅读http://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html (3认同)