目录
案例:内部类练习
ather类为外部类,类中定义一个私有的String类型的属性name,name的值为“zhangjun”。
Child类为Father类的内部类,其中定义一个introFather()方法,方法中调用Father类的name属性。
定义一个测试类Test,在Test类的main()方法中,创建Child对象,并调用introFather ()方法。
代码演示:
public class Ather {
//1.定义私有成员变量
private String name = "张军";
//2.定义一个内部类
public class Child{
//3,定义一个内部类成员方法,
public void introFather(){
System.out.println(name);
}
}
//6.第二种调用introFather方法
public void method(){
Child c = new Child();
c.introFather();
}
}
class Test {
public static void main(String[] args) {
//4.创建内部类对象
Ather.Child ac = new Ather().new Child();
//5.使用对象调用方法
ac.introFather();
System.out.println("----");
//7.创建外部内对象间接调用introFather方法
Ather a = new Ather();
a.method();
}
}
案例:补全代码
代码演示:
interface Inter {
void show();
}
class Outer {
//补齐代码
public static Inter method(){
return new Inter(){
@Override
public void show() {
System.out.println("HelloWorld");
}
};
}
}
public class OuterDemo {
public static void main(String[] args) {
Outer.method().show();
}
}
案例:补全代码
代码演示:
public class Test {
public static void main(String[] args) {
A a = new A();
a.methodA(new InterA() {
@Override
public void showA() {
System.out.println("你好");
}
});
}
}
//定义接口
interface InterA{
void showA();
}
class A {
public void methodA(InterA a) {
a.showA();
}
}