1.引用数据作为参数和返回值的问题
类,接口,抽象类其实都是引用数据类型,当他们作为参数和返回值的时候一定传入或返回地址值,再直白一点,就是new一个对象返回,但是接口和抽象类不能直接new,需要创建其子类或者实现类对象才可以.
2.内部类: 定义一个类中的类,我们称之为内部类.
成员内部类:讲一个类定义在另外一个类的成员位置.特点:成员内部类可以使用外部类的东西,甚至私有东西.
class Outer{
private int number = 10;
class Inner{
public void method(){
sout(number); //可以直接使用外部类的东西,甚至私有的
}
}
}
技巧:成员内部类也是一个类,想要使用其中的东西,就要先构造初始化.
局部内部类:将类定义在另外一个类中的方法.
匿名内部类(重点)
作用:快速创建一个类或者一个接口的子类对象.不用在额外定义一个类了.
格式: new 类|接口(){ 对方法进行重写 }
interface A {
void method();
}
//传统方式 重新定义一个类来实现这个接口
publi class AImpl implements(){
public void methond(){
sout("!!!!!!!")
}
}
//创建实现类对象来使用
AImol a = new AImpl();
a.methond();
//匿名内部类方式:
A a = new A (){
public void methond(){
sout("=-=");
}
}
内部类可以使用外部类的所有东西,甚至是私有的东西