我是java&的初学者我对这段代码有疑问,对不起,我的问题听起来有点愚蠢:)
class Student4{
int id;
String name;
Student4(int i,String n){
id = i;
name = n;
}
void display(){System.out.println(id+" "+name);}
public static void main(String args[]){
Student4 s1 = new Student4(111,"Karan");
Student4 s2 = new Student4(222,"Aryan");
s1.display();
s2.display();
}
}
在此代码中,构造函数内部的变量id已赋予此值i 和name = n
但是在display()方法中我尝试使用n&我喜欢这个
void display(){System.out.println(i+" "+n);}
但是我收到了错误:(!
那么,如果我根本不能使用它,那么为变量名赋予变量值(如n)是什么意思?
答案 0 :(得分:1)
但是在display()方法中我尝试使用n&我喜欢这个
void display(){System.out.println(i+" "+n);}
它们是构造函数的本地。你无法访问它们。它们的范围仅限于构造函数,在构造函数外部不可见。
试试这个:
void display(){System.out.println(id+" "+name);}
变量id
和name
将是可访问的,因为它们是保存对象数据的类成员。
更好的方法是将它们与this
引用一起使用。
void display(){System.out.println(this.id+" "+this.name);}
答案 1 :(得分:0)
i
和n
都是Student4
构造函数的参数。您无法在构造函数之外访问这些变量。这是与范围相关的问题。这是您应该首先阅读的内容,因为它是一个非常基本的编程概念。见这里:
答案 2 :(得分:0)
变量i和n的范围在类的构造函数中。所以你不能在构造函数之外使用它。
答案 3 :(得分:0)
在显示方法中,您要打印学生的状态。因此,您应该使用类属性,即 id 和 name 。
i 和 n 是构造函数的局部变量。所以你只能在构造函数方法中使用它们(而不是在外部)。
答案 4 :(得分:0)
您不能在构造函数之外使用它们,因为构造函数有Parameters变量。
来自JLS 6.3. Scope of a Declaration
方法的类型参数(§8.4.4)的范围是方法的整个声明,包括类型参数部分,但不包括方法修饰符。