我是编程新手,所以我只是尝试一些简单的程序......
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,需要知道上面的代码有什么问题。
谢谢!
答案 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;
}
}
现在可以使用。删除私有访问说明符。