this关键字:表示当前对象
在java 开发中,当成员变量与局部变量重名时,需要使用到this关键字分辨成员变量与局部变量Java中的this关键字语法比较灵活,其主要作用有以下3种。
- 使用this关键字,调用本类中的属性。
- 使用this关键字,调用成员方法。
- 使用this关键字,调用本类中的构造方法。
注意:在使用调用类的构造方法时,应注意以下几点。
(1)只能在构造方法中使用this调用其他的构造方法,不能在成员方法中使用通过this调用其他构造方法。
(2)在构造方法中,使用this调用构造方法的语句必须位于第一位。且只能出现一次。
(3)不能在同一个类的两个构造方法中使用this互相调用。
static关键字:静态的
- static相当于一个标志,有static修饰的成员属于类本身,没有static修饰的属于该类的实例
- 修饰属性、方法、代码块、内部类
静态属性
如果在java程序中使用static修饰属性,则该属性称为静态属性(也称全称属性),静态属性可以使用类名直接访问,访问格式如下:
类名,属性名
小提示:static不能修饰局部变量
static关键字只能修饰成员变量,不能修饰局部变量,否则编译器会报错。例如,下面的代码是非法的。
静态方法:
如果想要使用类中的成员方法,就需要先将这个类实例化,而在实际开发时,开发人员有时希望在不创建对象的情况下,通过类名就可以直接调用某个方法。要实现这样的效果,只需要在成员方法前面加上static关键字,使用static关键字修饰的方法通常被称为静态方法。同静态变量一样,静态方法也可以通过类名和对象访问。具体如下:
类名.方法
或
实例对象名.方法
注意:静态方法只能访问静态成员,因为非静态成员需要先创建对象才能访问,即随着对象的创建,非静态成员才会被分配内存,而静态方法在被调用时可以不创建任何对象。
静态代码块
static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内。在Java类中,用static关键字修饰的代码块被称为静态代码块。当类被加载时,静态代码块会执行。由于类只加载一次。因此,静态代码块会自执行一次。在程序中,通常使用静态代码块对类的成员变量进行初始化。
运行结果如下:
在上面的过程中,静态代码块中的内容只输出了一次,这就说明静态代码块在类第一次使用时才会被加载,并且只会加载一次。
final关键字:最终的,不可改变的,用于修饰内方法和变量
- 类:被修饰的类,不能被继承。
- 方法:被修饰的方法,不能被重写。
- 变量:被修饰的变量,不能被重新赋值。
修饰类
格式如下:
final class 类名{
}
注意:
如果一个类被final修饰那么这个类不能有任何的子类。
一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写(因为没子类)
修饰方法
格式如下:
修饰符 final 返回值类型 方法名(参数列表){
//方法体
}
instanceof关键字:
- 表示某个对象是否是本类或本类的子类的对象
extends关键字:表示继承
abstract关键字:抽象
原因:
(1)从逻辑角度
几何图形类中,应该包含所有几何图形共同的特征
那么所有几何图形,就应该包含 “获取面积”的功能
(2)语法角度
通过“几何图形”类对圆对象,矩形对象等的多态引用,
应该是可以调用“获取面积”的方法,如果父类中没有声明该方法,
就无法调用,无法实现多态引用
(1)抽象类
在父类中明确子类应该包含某些方法,但是在父类中又不能给出具体的实现,父类中只能把这个方法声明为抽象方法,格式如下:
格式【修饰符】 abstract class 抽象类的名称{
类的成员列表
}
(2)抽象方法
格式:
【修饰符】 abstract 返回值类型 方法名(形参列表);
- 声明一个方法但不提供实现,该方法的实现由子类提供
抽象方法只有方法的声明,没方法体 - 若子类重写了父类中的所的抽象方法后,此子类方可实例化
- 若子类没重写父类中的所的抽象方法,则此子类也是一个抽象类,需要使用abstract修饰
package:包