java 内部类和外部类的区别?
2个回答
展开全部
1. Java项目一般从src目录开始有com...A.java这样的目录结构。这就是包结构。所以一般编译后的结构是跟包结构一模一样的,这样的结构保证了import时能找到正确的class引用包访问权限就是指同包下的类可见。
import 一般加上全路径,并且使用.*时只包含当前目录的所有类文件,不包括子目录。
2. 外部类只有public和default两种修饰,要么全局可访问,要么包内可访问。
3. 内部类可以有全部访问权限,因为它的概念就是一个成员变量,所以访问权限设置与一般的成员变量相同。
非静态内部类是外部类的一个成员变量,只跟外部类的实例有关。
静态内部类是独立于外部类存在的一个类,与外部类实例无关,可以通过外部类.内部类直接获取Class类型。
想要了解更多可以跟我一起讨论哦
import 一般加上全路径,并且使用.*时只包含当前目录的所有类文件,不包括子目录。
2. 外部类只有public和default两种修饰,要么全局可访问,要么包内可访问。
3. 内部类可以有全部访问权限,因为它的概念就是一个成员变量,所以访问权限设置与一般的成员变量相同。
非静态内部类是外部类的一个成员变量,只跟外部类的实例有关。
静态内部类是独立于外部类存在的一个类,与外部类实例无关,可以通过外部类.内部类直接获取Class类型。
想要了解更多可以跟我一起讨论哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、内部类作用主要实现功能的隐藏、减少内存开销,提高程序的运行速度
2、内部类和外部类联系
内部类可以访问外部类所有的方法和属性,如果内部类和外部类有相同的成员方法和成员属性,内部类的成员方法调用要优先于外部类即内部类的优先级比较高,外部类只能访问内部类的静态常量或者通过创建内部类来访问内部类的成员属性和方法,内部类定义的静态常量可以全局访问
3、内部类调用
以楼主代码为例,第一种方式
test2
t
=
new
test2();
test2.s1
a
=
new
t.news1();
s2
b=new
s2();
或者用test2类的匿名对象来访问
test2.s1
b=new
test2().new
s1();
4、权限
普通类权限:public和default
而内部类具有四种权限
2、内部类和外部类联系
内部类可以访问外部类所有的方法和属性,如果内部类和外部类有相同的成员方法和成员属性,内部类的成员方法调用要优先于外部类即内部类的优先级比较高,外部类只能访问内部类的静态常量或者通过创建内部类来访问内部类的成员属性和方法,内部类定义的静态常量可以全局访问
3、内部类调用
以楼主代码为例,第一种方式
test2
t
=
new
test2();
test2.s1
a
=
new
t.news1();
s2
b=new
s2();
或者用test2类的匿名对象来访问
test2.s1
b=new
test2().new
s1();
4、权限
普通类权限:public和default
而内部类具有四种权限
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询