Java SE-修饰符

一、访问控制修饰符

  1. 一个源文件可以有多个类,但只能有一个public类如果有其他类只能以默认修饰。
  2. 声明属性和方法尽可能私有,这样才能做到尽可能的封装

二、常用的转义字符

1
2
3
4
5
6
7
8
"\b"  (退格)
"\f" (换页)
"\n" (换行)
"\r" (回车)
"\t" (水平制表符(到下一个tab位置))
"\' " (单引号)
"\" " (双引号)
"\\" (反斜杠)

三、状态修饰符(final\static)

1、final关键字

意思为最终的,可以修饰成员变量,成员方法和类

final修饰的类不能再被继承

  • Java的String、Math、Integer、Long等就是final类,不能被继承
  • Spring,Struts 2,这些看框架使用了“动态继承代理”技术,使用final的类会影响该技术的实现

final修饰的方法是最终方法,不能再被覆盖

实际开发中,原则上不允许使用final方法!

final修饰的变量表明该变量是常量,不能再次被赋值

修饰局部变量
  • 变量是基本类型:final修饰指的是基本类型的数据值不能发生改变
  • 变量是引用类型:final修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容可以发生改变

2、static关键字

static是静态的意思,可以修饰成员方法,成员变量,代码块

static修饰的特点

被类的所有对象共享(这也是我们判断是否使用静态关键字的条件)

使用static声明的方法,属于类的方法,一般用来表示工具方法,会在类加载后自己调用,不需要创建任何类的实例对象。

通俗理解为:

  1. 如果不加static修饰的成员是对象成员,归每个对象所有
  2. 加static修饰的成员是类成员,可由一个类直接调用,为所有对象共有的。

static访问特点

非静态的成员方法

  • 能访问静态的成员变量和成员方法
  • 能访问非静态的成员变量和非静态的成员方法

静态的成员方法

  • 只能访问静态的成员变量和成员方法

静态代码块

1
2
3
static{
System.out.println("类加载了");
}

静态代码块在类加载期间执行,由于类只加载一次,所以静态代码块只执行一次,用在加载配置文件等

四、abstract修饰符

abstract表示抽象的,可以修饰类和方法。分别叫抽象方法和抽象类。

人们在认识事物的时候,会把具有相同特征和行为的事物归为一个抽象类,例如动物就是抽象的概念,当得到动物实例时,总是某个具体物种的实例。

抽象类不能实例化,不能生成抽象类的对象,但能定义一个引用。

abstract修饰类

会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以作为对象变量声明的类型。

抽象类就相当于一个半成品,需要子类继承并覆盖其中的方法,这时子类才又创建实例的能力,如果子类没有实现父类的抽象方法,如果子类没有实现父类的抽象方法,那么子类也要为抽象类。

abstract修饰方法

会使这个方法称为抽象方法,也就是只有声明没有实现,实现部分以”;”代替,需要子类继承实现。

抽象方法代表了某种标准,定义标准,定义功能,在子类中实现功能(子类继承了父类并需要给出从父类继承的抽象方法的实现)

方法一时间想不到怎么被实现,或有意要子类去实现而定义某种标椎,这个方法可以被定义为抽象

注意

  • 有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法。
  • 当一个非抽象类继承自某个抽象类时,必须实现所继承抽象类的所有抽象方法(即抽象类的第一个非抽象子类必须要实现其父类所有抽象方法)
  • abstract和final不能同时使用,这两个关键字有着相反的意思,abstract修饰方法和类,就是想让别人重写或是继承的,而final是阻止的。
  • private和abstract也不能同时修饰方法
    使用抽象类的思想实现猫狗案例

请我喝杯咖啡吧~

支付宝
微信