返回 登录
0

浅析总结 Java 内部类的一些使用与梳理

阅读168

Java 内部类有许多需要注意的地方 ,相信大家平时都在用,但是有些地方是需要注意的,在这里给大家总结一下。

内部类的位置

public class A {
class B {
}
public void pint() {
class C {
}
new C();
}
public void pint(boolean b) {
if (b) {
class D {
}
new D();
}
}
}

从代码中可以看出,内部类可以定义到很多地方,常用的是成员变量中(B),方法中也叫局部内部类(C),作用域中(D)。

从上面来看似乎没有用到过在方法中和作用域中的情况啊,这就错了;再来看看这个:

public interface AInterface {
void show();
}
public class B {
public void show() {
class Man implements AInterface {
@Override
public void show() {
}
}
Man man = new Man();
man.show();
}
}

其中我们定义了两个文件,一个文件是一个接口类,一个是B文件;在B类中,的show()方法中我们使用了局部内部类的方式创建了类Man,Man class继承接口并实现方法,随后使用该类。

内部类的权限

为什么要有内部类的存在?

在我看来类主要的就是封装、继承、多态;当然其中的回调思想我认为是很重要的;而内部类的出现就是为了简化多重继承的问题;一个A类,并不能继承多个其他类,但是在使用中又需要使用到其他类的方法,这个时候内部类就发挥作用了;典型的就是事件点击的回调实现。

那么内部类的权限究竟有多大?

至于答案是什么,代码上看看就知道了。

public class C {
int a = 1;
private int b = 2;
protected int c = 3;
public int d = 4;
void a() {
System.out.println(“A:” + a);
}
private void b() {
System.out.println(“B:” + b);
}
protected void c() {
System.out.println(“C:” + c);
}
public void d() {
System.out.println(“D:” + d);
}
class D {
void show() {
int max = a + b + c + d;
a();
b();
c();
d();
System.out.println(“Max:” + max);
}
}
public static void main(String[] args) {
D d = new C().new D();
d.show();
}
}
图片描述
**学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:521352947 我们一起学Java!**

评论