与三大修饰符之间的邂逅

引言:修饰符:所有修饰符都是用来给内容添加功能或限制

第一种:abstract-抽象

父类通常时子类共性提炼出的概念,用来总结和约束子类,所以不应该能够被实例化的对象。建立在此基础上,父类中的某些行为方法的方法体也不应该存在,因为永远无法执行

抽象类代码书写格式:

public abstract class 类名{}

abstract public class 类名{}

修饰符之间的书写顺序不做要求

使用规则:

1:无法实例化对象

2:通常情况下,父类应该成为抽象类

3:抽象父类中仍然存在构造

作用为:方便子类构造的执行

4:抽象类中可以存在非抽象内容

作用为:方便子类直接继承使用

5:抽象父类仍然可以参与多态

抽象方法:代码书写格式:

访问修饰符 abstract 返回值类型 方法名 (形参列表)

使用规则:

1:只能存在于抽象类

        通常情况下,抽象父类中的行为方法都应该是抽象方法

2:子类必须对父类的抽象方法提供重写

        非抽象子类无法存在于父类继承过来的抽象方法

        可以将子类也声明为抽象类,这样就可以不重写父类的抽象方法

3:抽象父类的抽象方法作用:

        在强制要求子类必须拥有该方法的基础上也必须提供方法重写

抽象类和抽象方法的关系

1:抽象类中可以存在非抽象方法

        抽象方法必须存在于抽象类

抽象的好处:

可以使父类单纯为子类服务

更符合程序设计及现实逻辑

第二种:static -静态

静态属性:代码书写格式:

访问修饰符 static 数据类型 属性名

使用规则

1:不被某个对象独有,被该类的所有对象共享

2:静态内容独立存放在方法区的静态内容区中

        JDK8.0之后,方法区被迁移至堆空间之中

3:可以通过类名.属性名的方式直接访问静态属性

4:如果静态属性进行了封装,无法通过类名.属性名直接访问属性

        getter、setter方法不是静态的,则需要通过任意对象名.方法名访问

        getter、setter方法是静态的,则可以通过类名.方法名访问

类加载

在第一次使用类内容时,通过CLASSPATH类路径找到对应的字节码文件,将字节码文件中的内容加载到虚拟机的过程,称之为类加载。通常情况下,类加载只发生一次

类加载的时机:

1:第一次创建类的对象时

2:第一次访问静态内容时

3:通过Class.forName(”全限定名“)的方式强制出发类加载

        全限定名:类的完整路径;包名.类名

4:子类类加载也会触发父类的类加载

5:只声明引用不会触发类加载

注意:静态内容出现在内存中的时间一定早于非静态内容

静态内容:类加载

非静态内容:创建对象时

静态方法:就是函数
使用规则:

1:可以使用类名.方法名(实参)的方式调用

        静态内容,存放在方法区

2:无法访问非静态内容

访问静态方法时,非静态内容在内存中有可能还未存在

实例方法任何内容都可以访问,放实例方法执行时,静态内容必定已经存在

3:无法使用this和super关键字

this:表示当前对象,super:表示父类对象,静态方法执行时有可能对象并未创建

4:无法修饰局部变量

局部变量的作用范围限制其无法成为类变量(静态属性)

5:子类可以继承并重写父类静态方法

6:在多态的语法环境下,子类的重写意义不大

        静态内容的执行关注的是引用类型

7:无法修饰构造

        构造方法只能通过new关键字调用

修饰初始代码块-了解

初始代码块

是所有构造共性内容的提取,在构造执行之前执行,通常用于给属性赋值

class 类名{

        //初始代码块

}

使用规则:

1:位置:类以内。方法以外,与属性方法平级

2:在创建对象时执行

3:执行次数:0—n次

静态初始代码块

class 类名{

                static{

                        //静态初始代码块

                }

}

使用规则

1:类加载的时候执行

2:执行次数:0—1次

3:使用限制和静态方法一致

第三种:final-最终

修饰类:

变成断子绝孙类,不可被继承

修饰方法:

可以被继承,不可被重写

修饰属性

会变成产量属性,值不可改

常量属性没有默认值

为了保证空间的分配,常量属性创建时,必须赋值

赋值时机:1:声明的同时直接赋值、2:在构造中赋值
2:补充:必须保证每个构造中都存在赋值语句

        也可以将赋值语句直接写进初始代码块

修饰局部变量:

一旦赋值,值不可改

对赋值时机无要求

修饰引用:

对象内容可改,对象地址不可改

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值