java中的四种内部类详解(成员类内部类,静态内部类

本文介绍了Java编程中的内部类(成员内部类、静态内部类、局部内部类和匿名内部类),强调了它们的特性和使用场景,并推荐了适合不同阶段Java开发者的学习资料,包括面试题库和架构核心笔记,以帮助提升技能和规划学习路径。
摘要由CSDN通过智能技术生成

}

}

class Outer{

private int a ;

//Inner就叫做Outer 的 内部类,也是两个完全独立的类

//在类里面的类就叫成员内部类

/*

  • 1,内部类可以 访问外部类的私有成员,而不破坏封装

*/

public Outer() {

}

public Outer(int a) {

this.a = a;

}

public class Inner{

//成员内部类中不能有静态成员

//private int s = 20;

int a = 123;

public void print(){

//外部类类名.this指向外部类的当前对象

System.out.println(a);//123

System.out.println(“—”+Outer.this.a);//120

}

}

}

Outer.this 代表外部类对象

Outer.this.外部类属性名           访问外部类属性

Outer.this.外部类方法名(实参) 访问外部类方法

静态内部类:

可以类比于静态变量,成员内部类加上static就是静态内部类。也是定义在类以内,方法以外,被static修饰。

class Outer{

static class Inner{

}

}

创建的时候需要依赖类来创建对象:

Outer.Inner inner = new Outer.Inner();

静态内部类中只能访问外部类的静态成员

局部内部类:

也是类比于局部变量,要定义在方法以内!

class Outer{

public void method(){

//类写在方法的内部,就叫做局部内部类

class inner{

}

}

}

局部内部类创建对象的时候只能在定义它的方法内部进行创建;

class Outer{

private int a = 10;

public void m1(){

final int b = 20;

class Inner{

public void inner_method(){

System.out.println(a); //10

System.out.println(b);

System.out.println(“局部内部类方法”);

}

}

Inner inner = new Inner();

inner.inner_method();

}

}

并且局部内部类可以去访问外部类的私有属性

局部内部类也可以去访问它所在方法的局部变量,但是要求局部变量必须被final修饰

jdk 8.0开始,默认为局部变量添加final

匿名内部类:

特殊的局部内部类。局部内部类有的特征它都有

匿名内部类

使用的三个条件

  • 1)特殊的局部内部类

  • 2)继承一个类或者实现一个接口

  • 3)只会创建该类的一个对象

匿名内部类的写法

new 接口(){实现方法};

匿名内部类无法定义构造方法

定义匿名内部类的写法:定义类、实现接口、new对象 三步合一

IA ia = new IA(){ //IA 接口名 匿名内部类想要实现的接口

public void m1() {

System.out.println(“匿名内部类”);

}

};

//ia引用 可以直接操作内部类中方法

ia.m1();

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结:心得体会

既然选择这个行业,选择了做一个程序员,也就明白只有不断学习,积累实战经验才有资格往上走,拿高薪,为自己,为父母,为以后的家能有一定的经济保障。

学习时间都是自己挤出来的,短时间或许很难看到效果,一旦坚持下来了,必然会有所改变。不如好好想想自己为什么想进入这个行业,给自己内心一个答案。

面试大厂,最重要的就是夯实的基础,不然面试官随便一问你就凉了;其次会问一些技术原理,还会看你对知识掌握的广度,最重要的还是你的思路,这是面试官比较看重的。

最后,上面这些大厂面试真题都是非常好的学习资料,通过这些面试真题能够看看自己对技术知识掌握的大概情况,从而能够给自己定一个学习方向。包括上面分享到的学习指南,你都可以从学习指南里理顺学习路线,避免低效学习。

大厂Java架构核心笔记(适合中高级程序员阅读):

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

最后,上面这些大厂面试真题都是非常好的学习资料,通过这些面试真题能够看看自己对技术知识掌握的大概情况,从而能够给自己定一个学习方向。包括上面分享到的学习指南,你都可以从学习指南里理顺学习路线,避免低效学习。

大厂Java架构核心笔记(适合中高级程序员阅读):

[外链图片转存中…(img-FtweFdlG-1711983356809)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 26
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值