java总结
代码块
在Java类下,使用{ }括起来的代码被称为代码块
●局部代码块
位置:方法中定义
作用:限定变量的生命周期,及早释放,提高内存利用率
●构造代码块
位置:类中方法外定义
特点:每次构造方法执行的时,都会执行该代码块中的代码,并且在构造方法执行前执行作用:将多个构造方法中相同的代码,抽取到构造代码块中,提高代码的复用性
●静态代码块
位置:类中方法外定义
特点:需要通过stat ic关键字修饰,随着类的加载而加载,并且只执行一次
作用:在类加载的时候做--些数据初始化的操作
在Java类下,使用{ }括起来的代码被称为代码块
●构造代码块
位置:类中方法外定义
特点:每次构造方法执行的时,都会执行该代码块中的代码,
并且在构造方法执行前执行
作用:将多个构造方法中相同的代码,抽取到构造代码块中,提高代码的复用性●静态代码块
位置:类中方法外定义
特点:需要通过static关键字修饰,随着类的加载而加载,并且只执行一次作用:在类加载的时候做- - 些数据初始化的操作
abstract关键字的冲突
●final:
被abstract 修饰的方法,强制要求子类重写,被final 修饰的方法子类不能重写●private:
被abstract修饰的方法,强制要求子类重写,被private修饰的方法子类不能重写static:
被static修饰的方法可以类名调用,类名调用抽象方法没有意义
03类的高级特性
➢继承
➢抽象类
➢接口
➢多态
➢static 修饰符
➢final关键字
➢代码块
➢内部类
➢匿名内部类(Lambda 表达式)
03类的高级特性 - static修饰符
重新认识main 方法
public class HelloWorld {
●public: .
被JVM调用,访问权限足够大
●static:
被JVM调用,不用创建对象
因为main方法是静态的,所以测试类中其他方法也需要是静态的
●void:
被JVM调用,不需要给JVM返回值
●main:
一个通用的名称,虽然不是关键字,但是被JVM识别
●String[] args:
以前用于接收键盘录入数据的,现在没用
03类的高级特性- final关键字
final关键字的介绍
inal 关键字意思是最终,不可变的,可以修饰(方法,类,变量)
,修饰方法:表明该方法是最终方法,不能被重写
●修饰类:表明该类是最终类,不能被继承
,修饰变量:表明该变量是常量,不能再次被赋值
迪常使publicstaticfinal修饰的变量来完成定义。此时变名用全部大写,多个单词使用下划线连接
max
MAX
maxValue
MAX VALUE
03类的高级特性- final关键字
6) 在java程序开发中,我们想在类中定义一个静态常量,
通常使用public static final修饰的变 量来完成定义。此时变量名用全部大写,多个单词使用下划线连接,伪代码如下:
class Company {
public static final String Type. _COMPANY =”初创型";}
03类的高级特性- final关键字
7)需要注意的是:
接口中的每个成员变量都默认使用public static final修饰。
所有接口中的成员变量已是静态常量,由于接口没有构造方法,所以必须显示赋值。可以直接用接口名访问。
interface Inter {
public static final int COUNT = 100;
public static final Sstring USERNAME= “张三”;public static final int PASSWORD= 123456;
抽象类
在一-个类中,含有的方法只有方法名,没有方法体的类,我们称之为抽象类
➢抽象方法定义的格式:
public abstract返回值类型方法名(参数);
> 抽象类定义的格式:
public abstract class铭{语句
02抽象类特点总结
➢抽象类由关键字abstract来修饰;
➢抽象方法也有关键字abstract来修饰,且没有方法体,连大括号都没有;➢抽象类可以含有抽象方法,也可以含有普通方法,也可以任何方法都不含;➢抽象类不能直接创建对象(建自己的对象),因为抽象类中含有了抽象方法后,使用对象的引用去调用是没有任何意义的;
➢抽象类是可以通过多态的形式,建立子类对象的,这种方式叫做:向上造型;➢抽象类也是类,类与类之间就可以形成继承关系,当-一个普通类继承了抽象类后,就需要实现抽象类的全部抽象方法,即重写;否则,当前的普通类业的是-一个抽象,只继承不线上是被允许的;
思考:为什么要定义抽象类?
我们都知道,子类共有的属性和方法,我们会抽出来,放在- -个专门的类中进行存储,这样所有子类就不需要在各自类中写相同的内容,直接通过继承该类就能自动拥有,提高了代码的可重用性,提升了开发效率,那这样存放共有属性和方法的类,我们称之为父类( 也称为超类或者基类)。
而自动拥有,意味着多个子类对所继承下来的行为实现过程都是父类的那-套,都是一样的,这样就不能体现子类个性化的特征,因此Java允许 子类对继承父类的方法进行重写,重写后该方法还是父类中声明的共有方法,但实现过程就已经是子类个性化的实现了,符合了多样性。但是这个重写又不是必须的,需要子类主动进行重写。这样就存在一- 个问题是不主动重写的话,还是无法满足多样性的体现,此时, 就有了抽象类,抽象类中,对这类要求子类共有,且要体现多样性的方法只进行声明,不进行县体实现,而实现这个操作就让继承的子类必须进行个性化实现,也就是必须进行重写,这样就很好的解决了某些行为在- -定场景下必须要多样性的需求。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)