学习的过程中教程看的都是一概而过,实际写代码的时候出了bug再回去看教程才有一定的理解
今天遇到的bug是这样的
class Student {
public Student(String number, String name, int math, int english, int science) {
String studentNumber = number;
String studentName = name;
int Math = math;
int English = english;
int Science = science;
}
}
然后在另一个类中定义了这样一个方法
int out(Student[]init_student)
{
int number=init_student.length;
//System.out.println(number+"Students at the moment as described below");
for(int i=0;i<number;i++)
{
System.out.println("Number:"+init_student[i].studentNumber);
}
}
这个时候idea自动提示init_student[i].studentNumber 报错studentNumber cannot resolve symbol,java无法解析对象数组里面的studentNumber元素,经过查找资料http://www.runoob.com/java/java-variable-types.html
静态变量,实例变量,类变量的关系,这里按照之前的写法,属性放在构造函数里,算是局部变量,局部变量只在声明它的方法、构造方法或者语句块中可见。也就是说,在另一个类里就无法访问了
所以这里要写成实例变量,然后构造函数用this来进行初始化赋值,这么看不知道对不对,我对堆栈等基础没有概念,先姑妄言之,等理解好了完善,若有错误请立即指正