内部类
1内部类的访问规则 (1)内部类可以直接访问外部类中的成员,包括私有 之所以可以直接访问外部类的成员,是因为内部类中持有一个外部类的引用,格式:外部类名this (2) 外部类要访问内部类,必须建立内部类对象。2访问格式当内部类定义在外部类的成员位置上,而且非私有,可以再外部其他类中,可以直接建立内部类对象格式:外部类内部类 变量名=外部类对象内部类对象; 当内部了在成员位置上,就可以被成员修饰符所修饰比如private,将内部类在外部类中进行封装static:内部类就具备static的特性当内部类被static修饰后,只能直接访问外部类中的static成员。出现了访问局限
在外部其他类中,如何直接访问static内部类的非静态成员呢new outerInner()function();
注意:当内部类中定义了静态成员,该内部类必须是static的: 当外部类中的静态方法访问内部类时,内部类也必须是静态的
内部类定义在局部时,不可以被成员修饰符修饰,可以直接访问外部类中的成员,因为还持有外部类中的引用。但是不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量。
static Singleton instance = new Singleton();
static类型的成员变量,只会在新建类的对象时被执行一次。
所以static Singleton instance = new Singleton(); 只有在第一次调用时,被new一次。之后获取的都是第一次执行的对象。所以称之为单例。
也可以使用老的写法,比较清晰一些。
class ABC {private static ABC instance;
private ABC() {}
public ABC getInstance() {
if (instance==null)
instance = new ABC();
return instance;
}
}
这样写法的缺点是效率不如
class ABC {
private static ABC instance= new ABC();
private ABC() {}
public ABC getInstance() {
return instance;
}
}
这样写法高。
1 Java项目一般从src目录开始有comAjava这样的目录结构。这就是包结构。所以一般编译后的结构是跟包结构一模一样的,这样的结构保证了import时能找到正确的class引用包访问权限就是指同包下的类可见。
import 一般加上全路径,并且使用时只包含当前目录的所有类文件,不包括子目录。
2 外部类只有public和default两种修饰,要么全局可访问,要么包内可访问。
3 内部类可以有全部访问权限,因为它的概念就是一个成员变量,所以访问权限设置与一般的成员变量相同。
非静态内部类是外部类的一个成员变量,只跟外部类的实例有关。
静态内部类是独立于外部类存在的一个类,与外部类实例无关,可以通过外部类内部类直接获取Class类型。
想要了解更多可以跟我一起讨论哦
这样做。。
在类A里面定义一个全局变量 result
然后在C里面调用 Athisresult = Cstring
这样 就传递到A了。。。
然后在B里面 你就可以直接调用A。的全局变量
以上就是关于java中,一个内部类如何拿到外部类的变量值全部的内容,包括:java中,一个内部类如何拿到外部类的变量值、关于java静态内部类形式的单例模式、java 内部类和外部类的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)