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允许 子类对继承父类的方法进行重写,重写后该方法还是父类中声明的共有方法,但实现过程就已经是子类个性化的实现了,符合了多样性。但是这个重写又不是必须的,需要子类主动进行重写。这样就存在一- 个问题是不主动重写的话,还是无法满足多样性的体现,此时, 就有了抽象类,抽象类中,对这类要求子类共有,且要体现多样性的方法只进行声明,不进行县体实现,而实现这个操作就让继承的子类必须进行个性化实现,也就是必须进行重写,这样就很好的解决了某些行为在- -定场景下必须要多样性的需求。

posted @   liur-jie  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示