Java中的“字段不可见”错误

时间:2013-10-13 11:14:10

标签: java

我是编程新手,所以我只是尝试一些简单的程序......

  public class simple {
        public static void main(String[] args) {        
        A ob=new A(10,20);
        System.out.println("values of a and b are "+ob.a+" "+ob.b);
        }                                                    ^
    }                                                        ^


public class A {
    int a;
    private int b;
    A(){}
    A(int c,int d)
    {
        a=c;
        b=d;
    }
}

显示的错误是field ob.b not visible ..我正在使用eclipse,需要知道上面的代码有什么问题。

谢谢!

3 个答案:

答案 0 :(得分:9)

如果您注意到变量 b 被声明为私有,则不允许类简单直接访问它。相反,您可以通过 getb()

等方法访问它
public class A {
    int a;
    private int b;
    A(){}
    A(int c,int d)
    {
        a=c;
        b=d;
    }   
    int getb()
    {
        return b;
    }
}

现在您可以按如下方式重写 print 语句,

System.out.println("values of a and b are "+ob.a+" "+ob.getb());

答案 1 :(得分:1)

对象b已声明为private,这意味着您无法从其他类访问它。
在这种情况下你有两种选择,第一种是将a和b声明为公共变量,这被认为是一种糟糕的编程习惯,因为它破坏了封装。

或者你可以将 getter 方法引入class A中:

public int getA(){
    return a;
}

public int getB(){
    return b;
}

答案 2 :(得分:0)

public class simple {
        public static void main(String[] args) {        
        A ob=new A(10,20);
        System.out.println("values of a and b are "+ob.a+" "+ob.b);
        }
    }


public class A {
    int a;
    int b;
    A(){}
    A(int c,int d)
    {
        a=c;
        b=d;
    }
}

现在可以使用。删除私有访问说明符。