如果你不需要内部类对象与其外围类对象之间有联系,那你可以将内部类声明为static。这通常称为嵌套类(nested class)。Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。想要理解st ...
分类:
其他好文 时间:
2016-09-27 13:32:29
阅读次数:
171
1. 内部类与外部类的区别 2. 内部类的分类 3. 内部类的编译 编译产生:OuterClass.class、OuterClass$InnerClass.class... 4. sadf 外部类不能访问非静态内部类的成员,因为可能外部类存在实例时,内部类还没有实例。 ...
分类:
编程语言 时间:
2016-09-05 13:59:22
阅读次数:
268
下面这段代码,如果Lazyholder没有static修饰,则编译不过 "非静态内部类不能拥有静态变量" ,可以这样理解,因为JVM类加载的顺序为: 1.先加载类 2.执行static变量的初始化 3.对象创建 如果LazyHolder没有static,则本质上,它其实是Singleton2的非静态 ...
分类:
其他好文 时间:
2016-08-08 17:08:20
阅读次数:
111
对main方法而言,虽然写在类中,它是游离于任何类之外的,因此某类的非静态内部类对它而言是不直接可见的,也就无法直接访问 。 1:非静态内部类,必须有一个外部类的引用才能创建。 2:在外部类的非静态方法中,因为有隐含的外部类引用this,所以可以直接创建非静态内部类。 3:在外部类的静态方法中,因为 ...
分类:
编程语言 时间:
2016-08-05 00:56:44
阅读次数:
233
如:public class InnerClassDemo{ int x; class A{ static int a = 0;//这样写是不合法的. static final int b=0;//这样写是合法的 }}解答:简单说,定义一个静态的域或者方法,要求在静态环境或者顶层环境,这里静态环境具 ...
分类:
编程语言 时间:
2016-08-05 00:35:18
阅读次数:
384
1.静态内部类只能访问外部类的静态成员和方法.2.静态内部类在外部被创建时,不需要外部类的实例,这也就是为什么它不可以访问外部类的非静态成员了,因为它没有外部类对象的引用啊.3.非静态内部类可以访问外部类的所有成员和方法,包括私有变量.但同时在创建内部类对象的时候,需要外部类的实例,同时把这个外部类 ...
分类:
编程语言 时间:
2016-07-28 15:14:08
阅读次数:
152
//非静态类 不能定义静态属性/方法/静态类, 可以定义静态常量属性。 public class A{ public class B{ public static String _str; //?,非静态内部类,不能定义静态属性 public static final String _str; // ...
分类:
编程语言 时间:
2016-06-22 15:40:49
阅读次数:
195
package cn.hncu.day3.inner; public class Outer { private int size; public void aa(){ size++; System.out.println(size); } public void bb(){ //共用this对象, ...
分类:
其他好文 时间:
2016-06-20 14:02:29
阅读次数:
111
简单的说,如果存在一个非静态内部类对象,则一定存在这一个被它寄存的外部类对象,但外部类对象存在时,外部类对象不一定寄存了非静态内部类对象 静态内部类是和类相关的,不是和类的实例相关的,所以,静态内部类不能访问外部类的实例成员,只能访问外部类的类成员 内部类的作用: ...
分类:
其他好文 时间:
2016-06-05 12:27:02
阅读次数:
168
很感谢在内部类章节,“开心阳”先生给与的建议。使用静态内部类。这里就简单说一下静态内部类的使用。
package com.devin;
public class MyMain{
private static String name = "woobo";
private String num = "X001";
// 静态内部类可以用public,protected,...
分类:
编程语言 时间:
2016-05-13 00:33:18
阅读次数:
171