java补充知识:权限修饰符&代码块&抽象类

final

最终的——>不可变的。

修饰方法

最终方法,不可被子类重写。

如果方法是一个规则,那么使用final修饰!

修饰类

最终类,不能被继承。

没有子类。

如String类。

在源码中常用,但自己使用并不常用。

变量

称常量,只能被赋值1次。

常被使用。且变量被final修饰时,必须即刻被赋值。

final int i = 3;//final int i;,试图之后赋值是不行的

常量的使用细则

其中,命名规范中的下划线,是定义常量时特有的符号。不在定义变量、函数时使用。

PI
NUM_PI

权限修饰符的分类

自己使用 < 自己使用&本包中可以使用 < 自己使用&本包中可以使用&其他包中也可以使用 < 全部可以使用

private:只能自己使用。

默认(空白):最多只能在本包中使用。

protected:最多其他包中也能用。

public:全部范围都可以使用。

实际使用中修饰符的使用

代码块

根据出现的位置不同,分为三类。

局部代码块

写在方法里面的一对单独的代码块。提前结束代码的生命周期。使用完立刻回收。(变量只在所属的代码块中有效)起到节约内存的作用,但现在已经不再被常用(因为计算机硬件的快速发展,多定义几个变量,几个字节的空间,不会有多大的影响)。

{
	//大括号内部的内容
}

构造代码块

成员变量位置的代码块,在创建类的对象时,会优先于构造方法执行。一般是空参构造与带参构造中的重复代码部分。

每一次创建对象的时候都会执行。(与静态代码块的区别)

但由于并不是所有的构造方法都会执行相同的代码块,因为这个“不灵活”的特点,构造代码块已经逐渐被放弃使用。取而代之的是,新建一个方法来调用。

静态代码块

类加载初始化时使用

也可以采用自定义方法来取代静态代码块进行初始化,但是程序每次运行到这个方法都会运行所有内容。不如只运行一次的静态代码块优异。

抽象类

封装、继承、多态是面向对象的三个特征。

一个子类共有的方法被抽取到父类中,但是因为子类的差异无法确定具体的方法体内容,必须在子类中重写。但可能会遇到忘记在具体的子类中重写方法的情况。使用抽象方法解决这个问题。

抽象方法必须重写!抽象方法所在的类叫做抽象类。

抽象类与抽象方法的定义格式

public class Person {
    public void commonMethod() {
        //普通方法体有{}
    };
    public abstract void work();// 抽象方法
	//每个子类的方法体不同,故而抽象方法处没有方法体{}
}

抽象类和抽象方法的注意事项

抽象类中构造方法的作用:当创建子类对象时,给子类共有属性赋值使用。(子类创建对象时,带参构造中传入的参数,实际上会被传入父类中进行赋值。)

抽象类和抽象方法的意义

抽取各个子类的共性时,无法确定方法体就把方法定义为抽象。强制让子类按照某种格式重写。

强制子类必须重写方法(统一)。避免多个有共性的子类之间,同一功能的命名不同而导致合作开发不顺利。

posted @ 2023-02-06 17:19  小澳子  阅读(49)  评论(0编辑  收藏  举报