public class Body {
public class Heart{
public void beat(){
System.out.println("心脏跳动");
System.out.println("我叫"+name);
}
}
//外部类成员变量
private String name;
//外部类的方法
public void methodBody(){
System.out.println("外部类的方法");
Heart heart=new Heart();
heart.beat();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) {
//间接调用
Body body=new Body();
body.methodBody();
//直接调用
Body.Heart heart=new Body().new Heart();
heart.beat();
}
}
局部内部类
public class Outer {
public void methodOuter(){
//方法内部类
class Inner{
int num=10;
public void methodInner(){
System.out.println(num);
}
}
//方法内部实现对象
Inner inner=new Inner();
inner.methodInner();
}
public static void main(String[] args) {
Outer outer=new Outer();
outer.methodOuter();
}
}
匿名内部类
public class MyInterfaceImpl{
public static void main(String[] args) {
//使用匿名内部类
MyInterface obj =new MyInterface() {
@Override
public void method() {
System.out.println("匿名内部类实现了方法");
}//匿名内部类省略了实现类(或子类)的名字
};
obj.method();
System.out.println("=================");
new MyInterface() {
@Override
public void method() {
System.out.println("匿名对象匿名内部类实现了方法");
}
}.method();//匿名对象内部类省略了对象名称,只能调用一次方法
}
}
继承的接口
public interface MyInterface {
void method();
}