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(){
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律