静态方法中不能new内部类的实例对象。这是为什么了? 内部类的最重要的一个特点就是它可以直接访问它外部类的成员变量。成员变量是对象身上的。对象创建完成了,才会为成员变量分配空间。能调用成员变量,意味着一定有了实例对象. main方法是静态的,它执行的时候可以不用创建那个对象。这就 ...
原因如下: .内部类可以访问外部类的成员变量 .对象创建完成后对象的成员变量才会被分配空间 .main的静态方法执行时可以不存在外部类,不创建实体对象 .内部类能访问成员变量意味着一定存在外部类实体对象 因为 和 矛盾,所以在静态方法中不能new内部类的实体对象 解决办法 :新建一个非静态方法init ,在init 方法中new内部类的实体对象.然后在静态方法main中新建一个外部类的实体对象去调 ...
2016-01-17 02:09 0 1829 推荐指数:
静态方法中不能new内部类的实例对象。这是为什么了? 内部类的最重要的一个特点就是它可以直接访问它外部类的成员变量。成员变量是对象身上的。对象创建完成了,才会为成员变量分配空间。能调用成员变量,意味着一定有了实例对象. main方法是静态的,它执行的时候可以不用创建那个对象。这就 ...
static 关键字只能修饰成员变量不能修饰局部变量 静态方法 当我们希望方法不必和对象绑定到 ...
View Code 使用.this,.new .this 表达的是在内部类对象域内 通过外部类.this 指向了一个在内部类指向外围类对象引用的关系。只有这样可以访问外围类对象的属性与方法 .new表达的是与.this方向相反 当在外围类作用域 ...
Java中的静态内部类:在定义的内部类前加static修饰符,此时的内部类就是静态内部类。通过一个例子来了解静态内部类都有哪些特点。 总结:1、静态内部类中可以写哪些内容 1)匿名代码块 2)静态代码块 3)静态变量和非静态变量 4)静态方法和非 ...
外部类和内部类其实是2个类,先加载外部类在加载内部类 在Java中内部类主要分为成员内部类(非静态内部类、静态内部类)匿名内部类、局部内部类。成员内部类可以用public、private、protected、default任意进行修饰。 非静态内部类(外部类 ...
Java中的内部类(成员内部类、静态内部类、局部内部类、匿名内部类) 神话丿小王子的博客主页 我们先看这样一段话:人是由大脑、肢体、器官等身体结果组成。而组成我们人体的心脏它也有自己的属性和行为(血液、跳动),显然,此处不能单方面用属性或者方法表示一个心脏了,而需要一个类,但是这个类 ...
看下图. 第一个App.class,没啥好解释的 可以发现,如果类有名字,那么就是xxx$xx.class,对于没有名字匿名内部类,用数字代替类名,因为数字在语言规范里是不正确的类名,用户代码里面的类名不可能就是一个数字. 第二个,对于方法体里面内部类,编译后的类名,xxx ...
静态内部类: 1、用static修饰的内部类,称为静态内部类,完全属于外部类本身,不属于外部类某一个对象 2、static关键字的作用是把修饰的成员变成类相关,而不是实例相关 3、静态内部类可以包含静态成员,也可以包含非静态成员,但是在非静态内部类中不可以声明静态 ...