如何在我的代码中使用变量值,如n或i?

时间:2015-10-12 05:09:54

标签: java

我是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)是什么意思?

5 个答案:

答案 0 :(得分:1)

  

但是在display()方法中我尝试使用n&我喜欢这个

void display(){System.out.println(i+" "+n);} 

它们是构造函数的本地。你无法访问它们。它们的范围仅限于构造函数,在构造函数外部不可见。

试试这个:

void display(){System.out.println(id+" "+name);} 

变量idname将是可访问的,因为它们是保存对象数据的类成员。

更好的方法是将它们与this引用一起使用。

void display(){System.out.println(this.id+" "+this.name);} 

答案 1 :(得分:0)

in都是Student4构造函数的参数。您无法在构造函数之外访问这些变量。这是与范围相关的问题。这是您应该首先阅读的内容,因为它是一个非常基本的编程概念。见这里:

http://java.about.com/od/s/g/Scope.htm

答案 2 :(得分:0)

变量i和n的范围在类的构造函数中。所以你不能在构造函数之外使用它。

答案 3 :(得分:0)

在显示方法中,您要打印学生的状态。因此,您应该使用类属性,即 id name

i n 是构造函数的局部变量。所以你只能在构造函数方法中使用它们(而不是在外部)。

答案 4 :(得分:0)

来自Variables

您不能在构造函数之外使用它们,因为构造函数有Parameters变量。

来自JLS 6.3. Scope of a Declaration

  

方法的类型参数(§8.4.4)的范围是方法的整个声明,包括类型参数部分,但不包括方法修饰符。