public class test2{
private int a=1;
public int c;
public void changav(){
a++;
}public static class test3 {
private int f=3;
}public static void main(String arg[]){
test2 d=new test2();
test3 p = new test3();
p.f=9; //private 的怎么可以访问
d.changav();
d.a++; //还有这个?
System.out.println(d.a);test2 g = new test2();System.out.println(g.a);
}}打印的答案:3 1
private int a=1;
public int c;
public void changav(){
a++;
}public static class test3 {
private int f=3;
}public static void main(String arg[]){
test2 d=new test2();
test3 p = new test3();
p.f=9; //private 的怎么可以访问
d.changav();
d.a++; //还有这个?
System.out.println(d.a);test2 g = new test2();System.out.println(g.a);
}}打印的答案:3 1
解决方案 »
- java 读取串口数据不正常,求高人指教
- Oracle Reports 中两个合计数做除法,公式怎么写?
- 我想把该JAVA程序的结果输出到TXT文件里怎么半 求教 谢谢
- JAVA 获取时间问题,非常技术贴---大侠,牛人请进
- 类的一个比较深度的问题,关于对象的销毁,可能无解
- 如何使一个JDialog在完成显示后自动关闭?
- txt文本的远程读取问题?请问如何解决,谢谢
- Struct格式保存的东东,用JAVA怎么处理
- 各位请帮忙啊!下面的程序为什么老是出现"符号:类 AbstractTableModel 位置:类 in Demo TableModel tm=new AbstractTableModel()"的错误啊
- 在类 test.A 中找不到 main 方法
- 一个类A的私有成员,是一个对象B,这个对象在被创建的时候会建立一个文件,请问当类A被创建的时候,B是否会执行,就是说是否会有文件被创
- 输入流中写入数据的问题
java的程序入口就从main开始。所以带main的类中的private 变量,main是可以访问的。
和C,C++的东西混了,搞不清了。所以请哪位高手指点一下。
d.a这是是个 int 型啊,等于2,当然可以++啊
p.f=9; //private 的怎么可以访问d.a++; //还有这个?
你知道你的d实际就是一个test2的对象,这个当然就可以访问private了,private是指这个成员可以给包含这private的类的对象访问。
你需要了解的是private的具体意义。private代表类A中的任何成员都可以改变这个private,但是如果出了这类A外面(例如你想通过在另一个类中创建一个类A的对象,然后通过这个对象直接修改private的成员就不允许了)。
你前面创建的d和p都是在类里面的,所有你可以任意修给private,但是如果你不是在test2里面创建的话,而是在另一个类中创建,那你就不能直接访问private了,不过你可以通过一个public的方法间接访问修改private。
test2和test3是外围类和内部类的关系。你应该找本书好好了解这些概念。
JAVA支持在一个类中声明另外一个类,这种类称为内部类,并且这种类和外嵌类的每个实例都是相关联的。内部类有三种衍生体:成员类,本地类,匿名类。(具体区别看书去)这里的Test3就是Test2的一个成员类。
如何类中的任何成员能够见到其他所有成员一样,内部类也可以引用其父类的所有成员(包括Private)。不过在使用内部类的方法之前,父类也必须首先声明内部类的实例(因为它不static地)