类名或抽象类名作为形参和返回值:
一个包内有好几个文件,在这里展开太麻烦这里有链接
形参和返回值案例https://download.csdn.net/download/weixin_49033047/84582894
接口作为形参和返回值:
接口作为形参和返回值https://download.csdn.net/download/weixin_49033047/84709098
成员内部类:
outer
package _3._190;
public class Outer {
private int num=10;
/*public class Inner{
public void show(){
System.out.println(num);
}
}*/
private class Inner{
public void show(){
System.out.println(num);
}
}
public void method(){
Inner i=new Inner();
i.show();
}
}
outerDemo
package _3._190;
public class OuterDemo {
public static void main(String[] args) {
/*Outer.Inner oi=new Outer().new Inner();
oi.show();*/
Outer o=new Outer();
o.method();
}
}
局部内部类:
outer
package _3._191;
public class Outer {
private int num = 10;
public void method() {
class Inner {
public void show() {
System.out.println("num="+num);
}
}
Inner i = new Inner();
i.show();
}
}
outerDemo
package _3._191;
public class OuterDemo {
public static void main(String[] args) {
Outer o=new Outer();
o.method();
}
}
匿名内部类
Inter
package _3._192;
public class Inter {
public void Show(){}
}
Outer
package _3._192;
public class Outer {
public void mrthod(){
new Inter(){
@Override
public void Show() {
System.out.println("匿名内部类");
}
}.Show();
}
}
OuterDemo
package _3._192;
public class OuterDemo {
public static void main(String[] args) {
Outer o=new Outer();
o.mrthod();
}
}
匿名内部类练习
Jumpping
package _3._193;
public interface Jumpping {
void jump ();
}
JumppingDemo
package _3._193;
public class JumppingDemo {
public static void main(String[] args) {
JumppingOperator jo=new JumppingOperator();
jo.method(new Jumpping() {
@Override
public void jump() {
System.out.println("猫可以跳高了");
}
});
}
}
JumppingOperaor
package _3._193;
public class JumppingOperator {
public void method(Jumpping j){
j.jump();
}
}