Java基础学习:面向对象17(内部类)
-
N种内部类:
-
成员内部类
-
静态内部类
-
局部内部类
-
-
-
内部类:
-
内部类就是在一个类的内部再定义一个类,比如A类中定义一个B类,那么B类相对于A类来说就称为内部类,而A类相对于B类来说就是外部类
-
-
成员内部类:
-
成员内部类可以获取外部类的私有属性;
-
代码案例:
?
/**
* 成员内部类:
*
*/
public class Outer {
?
private int id=3;
?
public void out(){
System.out.println("这是外部类的方法");
}
?
public class Inner{
public void in(){
System.out.println("这是内部类的方法");
}
?
//获得外部类的私有属性
public void getId(){
System.out.println(id);
}
}
?
}
?
?
?
-
-
静态内部类:
-
静态内部类:不能访问外部类中非静态方法和非静态变量;
-
代码案例:
?
/**
* 静态内部类:
*
*/
public class Outer {
?
private int id=3;
?
public void out(){
System.out.println("这是外部类的方法");
}
?
public static class Inner{
public void in(){
System.out.println("这是内部类的方法");
}
?
}
?
}
?
?
-
-
局部内部类:
-
不建议使用,仅作为分析!
-
代码案例:
public class Outer {
?
//局部内部类
public void method(){
class Inner{
public void in(){
}
}
}
?
}
?
?
-
-
匿名内部类:
-
匿名内部类:没有名字初始化类,不用将实例保存到变量中;
-
代码案例:
?
/**
* 匿名内部类
*/
public class Test {
public static void main(String[] args) {
?
//没有名字初始化类,不用将实例保存到变量中
new Apple().eat();
?
UserService userService=new UserService(){
-