成员内部类
大部分时候,类被定义成一个独立的程序单元,在某些情况下,也会把一个类放在另一个类的内部定义,这个定义在其它类内部的类就叫内部类。包含内部类的类也被称为外部类。成员内部类可以使用外部类的成员变量和成员方法, 不管用什么权限修饰,不管是private还是public都可以使用,因为,这是在内部类的内部使用。
内部类的作用:
1:内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其它类访问该类。
2:内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,同一个类的成员之间可以互相访问,但是外部类不能访问内部类的内容。
3:匿名内部类适合用于创建仅需一次使用的类。
下面是一个内部类的例子:
class Outer { //外部类
class Inner {//内部类public void testInner() {
System.out.println("内部类的成员方法");
}}public void testOuter() {
System.out.println("外部类的成员方法");
}
}
在外部类中创建内部类对象,只需要在外部类中的成员函数中创建即可
class Outer { //外部类
class Inner {//内部类public void testInner() {
System.out.println("内部类的成员方法");
}}public void testOuter() {
System.out.println("外部类的成员方法");
}
//在此添加一个创建内部类对象的方法
public void createInnnerClass() {
Inner inner = new Inner();
inner.testInner();
}
}
在Outer类的外部创建Inner类的对象
格式如下:
外部类名.内部类名 内部类对象名 = new 外部类名().new 内部类名();
例如:
Outer.inner inner = new Outer().new Inner();
代码如下:
class Demo1 {
public static void main(String[] args) {
Outer.Inner inner = new Outer().new Inner();
inner.testInner();
}
【成员内部类】}
如果内部类和外部类存在同名的成员变量,这里默认是就近原则,使用的是内部类的成员变量
如果想要使用外部类的成员变量的:
格式:
外部类名.this.同名成员变量;
外部类名.this.同名成员方法(参数列表);
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 你有婚内虐待行为吗()
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- ?【段子图】内裤为啥湿呢(想想好邪恶啊...)
- 放下心中的偶像包袱吧
- angular2内置管道
- 也许,是我记性不好,也许是社会太吵,内心太躁。
- 操作系统|[译]从内部了解现代浏览器(1)
- 2020-12-18房爸爸逸娜分享