前言
内部类,就是一个类内部包含另一个类,即一个事物的内部包含着另一个事物。
例如:身体和心脏 、汽车与发动机之间的关系。
一、成员内部类
1.间接方式,在外部类的方法中使用内部类,main只调用外部类中的方法
Body
package demo07;
public class Body { //外部类
public class Heart{ //成员内部类
//内部类方法
public void beat(){
System.out.println("内部类中的方法beat");
System.out.println("心脏跳动~~~~~");
}
}
//外部类方法
public void methodBody(){
System.out.println("外部类中的方法methodBody");
System.out.println("这是我的身体~~~~~");
Heart heart = new Heart(); // 可写成 new Heart().beat(); 匿名对象
heart.beat();
}
}
demo07InnerClass
package demo07;
服务器托管网public class demo07InnerClass {
publ服务器托管网ic static void main(String[] args) {
Body body = new Body();
//通过外部类的对象,调用外部类的方法,里面间接再使用内部类Heart
body.methodBody();
}
}
可以看见在out下的内部类文件命名规则是 外部类$内部类.class
运行结果 !
2.直接方式 使用公式直接新建一个内部对象
类名称 对象名 = new 类名称();
外部类名称.内部类名称 对象名 = new 外部类名称().new 外部类名称();
Body.Heart heart = new Body().new Heart();
把这条公式插入到demo07InnerClass 中 使用heart.调用内部类方法
二、局部内部类(包含匿名内部类)
如果一个类是定义在一个方法内部的,那么这是一个局部内部类。只有当前所属的方法能使用它,出了这个方法外面就不能用了。
1.建一个局部内部类
package demo09;
public class Outer {
public void MethodOuter(){
class Inner{ // 局部内部类
public void methodInner(){
System.out.println("内部方法");
}
}
Inner inner = new Inner();
inner.methodInner();
}
}
2.调用局部内部类
调用普通外部类方法MethondOuter 方法内自己调用局部内部类methodInner
package demo09;
public class Demomain {
public static void main(String[] args) {
Outer obj = new Outer();
obj.MethodOuter();
}
}
总结
定义一个类的时候的权限修饰符
外 部 类 :public / default
成员内部类:public / protected / (default)/private
局部内部类:什么都不能写
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net