main方法中访问内部类
来源:互联网 发布:javascript map对象 编辑:程序博客网 时间:2024/06/05 07:28
同学发了这么些代码,报错,问怎么解决。
public class Test2 {public static void main(String[] args) {// TODO Auto-generated method stub A a =new A(5.5);System.out.println(a.x);}class A {public double x;public A(double x) {this.x = x;}}}
编译了一下,报错:
解决方法是 创建外部类对象,再使用外部类对象来new一个内部变量
public class Test2 {public static void main(String[] args) {Test2 test2 = new Test2();// 创建外部类Test对象A a = test2.new A(5.5);// 使用外部类对象a来new一个A对象aSystem.out.println(a.x);}class A {public double x;public A(double x) {this.x = x;}}}
对main方法而言,虽然写在类中,它是游离于任何类之外的,因此某类的非静态内部类对它而言是不直接可见的,也就无法直接访问。需要注意以下几点:
1:非静态内部类,必须有一个外部类的引用才能创建。
2:在外部类的非静态方法中,因为有隐含的外部类引用this,所以可以直接创建非静态内部类。
3:在外部类的静态方法中,因为没有this,所以必须先获得外部类引用,然后创建非静态内部类。
4:静态内部类,不需要外部类引用就可以直接创建。
5:同时静态的内部类,也不能直接访问外部类的非静态方法。
6:非静态内部类之所以可以直接访问外部类的方法,是因为创建非静态内部类时,有一个隐含的外部类引用被传递进来。
阅读全文
0 0
- main方法中访问内部类
- java 在main函数中访问内部类、方法、属性
- 在外部类的方法中访问实例内部类示例
- 关于java成员内部类(普通内部类)在main方法中调用
- Java main方法调用内部类
- 【笔试】内部类中的main方法
- Java中main方法中为什么不能直接创建实例化内部类对象
- 在main()方法中不能创建非静态内部类的实例
- main方法中编写匿名内部类实现空字符串的去除
- 方法中定义内部类
- 访问匿名内部类中的方法
- 内部类访问方法局部变量
- java中内部类的访问调用
- java中内部类的访问调用
- java中内部类的访问调用
- Java中外部类访问内部类的方法
- 深入理解为什么Java中方法内定义的内部类可以访问方法中的局部变量
- 深入理解为什么Java中方法内定义的内部类可以访问方法中的局部变量
- 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。(java)
- idea常用快捷键设置(改为eclipse相似)
- caffe跑densenet的错误:Message type "caffe.PoolingParameter" has no field named "ceil_mode".
- Eclipse 中新建svn 仓库卡死的问题,就是把URL 路径写完,finish后 就一直 卡着不动
- ConcurrentHashMap与HashTable的区别
- main方法中访问内部类
- EasyDemo*Conversion to Dalvik format failed with wrror 1?(it's work)
- 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如5+55+555+5555+55555(此时共有5个数相加),几个数相加有键盘控制。
- 第十三周 ——项目二 “二叉树排序树中查找的路径”
- [Offer收割]编程练习赛38 题目1 : 漏写的数字
- Numpy-argsort函数
- 区分级数收敛和数列收敛
- 用java创建一个游戏窗口
- 判断一个数是否为质数/素数——从普通判断算法到高效判断算法思路