java随笔
今天看之前的java基础,发现还有好多不会,感觉补救。
今天看了类中5大成员属性:内部类
先说局部内部类,局部内部类就在外部类的方法和代码块中定义
放一段代码:

public class InnerClass { public static void main(String[] args) { Outer02 outer02=new Outer02(); outer02.test(); } } class Outer02{ public int n1=100; public void test(){ //局部内部类定义在外部类的局部位置,通常在方法 //可以访问外部类的所有成员,包括私有的 //不可以添加访问修饰符,但可以使用final修饰 //作用域在方法体中 class Inner02{ int n1=32; public void f1(){ System.out.println(Outer02.this.n1);//100 System.out.println(n1);//32 } } //外部类通过局部内部类的对象调用其方法 Inner02 inner02=new Inner02(); inner02.f1(); } { class Inner03{ } } }
它还有一些细节:比如不能是用修饰符,但可以用final等等
然后是匿名内部类:

//匿名内部类 class Test{ private int age=10; public void metond(){ //使用匿名内部类,简化开发,可以继承接口或者类 //在代码底层创建了一个类实现了接口,类名是外部类的名字加上$1 Teger t0eger=new Teger() { @Override public void cry() { System.out.println("老虎叫"); } }; t0eger.cry(); // Person asd=new Person(){ @Override public void asd() { super.asd(); } }; asd.asd(); } } interface Teger{ public void cry(); } class Person{ public void asd(){ System.out.println("父类"); } }
其实有这种写目的是简化代码,想用时就创建一个。比如这样:

public class ClassTest { public static void main(String[] args) { show(new A(){ @Override public void say() { System.out.println("xxxxxx"); } }); } public static void show(A a){ a.say(); } } class A{ public void say(){}; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!