内部类
内部类概念
内部类的概念:把类定义在其他内部,这个类就被称为内部类。
访问特点:
内部类可以直接访问外部类的成员,包括私有
外部类要访问内部类的成员,必须创建对象
在局部位置定义的类,被称为局部内部类
在成员位置定义的类,被称为成员内部类
格式:
外部类名.内部类名 对象名 = 外部类名.内部类对象;
成员内部类的修饰符是
privat(保证安全),static(方便访问)
注:
1.静态内部类访问的外部类数据必须用静态修饰。
2.:成员方法可以是静态的也可以是非静态的
局部内部类访问局部变量
可以直接访问外部类的成员变量
可以创建内部类对象,通过对象调用内部类方法
局部内部类必须用final修饰
匿名内部类
他其实就是局部内部类的简化写法
前提是存在一个类或者接口;这里的类可以具体,可以抽象
格式
new 类名或者接口名{
重写方法;
};
public class boke1 {
public static void main(String[] args) {
new Student(){
void Eat(){
System.out.println("吃鸡");
}
}.Eat();
//匿名内部类调用方法
}
}
//定义一个抽象类
abstract class Student {
abstract void Eat();
}
匿名内部类中的(this)关键字
匿名内部类中的this.表示的是匿名内部类的这个对象
看个题
按照要求,补齐代码
interface Inter { void show(); }
class Outer { //补齐代码 }
class OuterDemo {
public static void main(String[] args) {
Outer.method().show();
}
}
要求在控制台输出”HelloWorld”
答案在这里
public static void main(String[] args) {
// 要求在控制台输出”HelloWorld”
Outer.method().show();
}
}
interface Inter2 {
void show();
}
class Outer {
//补全代码
public static Inter2 method() {
return new Inter2() {
@Override
public void show() {
System.out.println("hellworld");
}
};
};
}