java中的关键字
一、static关键字
作用:用于修饰成员(成员变量和成员函数)。
被修饰后的成员具备以下特点:
- 随着类的加载而加载。
- 优先于对象存在。
- 被所有对象所共享。
- 可直接被类名调用。
- 注意事项:
- 静态方法只能访问静态成员
- 但是非静态成员可以访问静态成员;
- 静态方法中不可以使用 this,super 关键字
- 继承中,父类为static的方法无法覆盖,
- 示例:
- 代码:
class Student
{
//随着类的加载而加载
public static String name="李四";
public static int age=;
public static void study()
{
System.out.println("Student study");
}
}
class Demo
{
public static void main(String[] args)
{
//被static关键字修饰的方法和成员变量能通过类名直接调用
Student.study();
System.out.println(Student.name);
System.out.println(Student.age);
}
}
- 输出结果:
二、private关键字
特点:
权限修饰符,用于修饰成员(成员变量和成员函数)。
私有仅仅是封装的一种表现形式,提供对外访问方式(set和get方法)可以对数据进行操作判断,提高安全性。
注意事项:
被私有化的成员只在本类中有效;继承中,父类的私有方法不可以被覆盖,子类无法继承父类中私有的内容(方法和变量)。
私有仅仅是封装的一种体现而已。
将构造函数私有(执行体为空)后,不能创建对象,将该类中的方法定义成静态的,使用类名来调用 。
三、this关键字
定义:this代表其所在函数所属对象的引用。
使用this关键字的情况:
在一个构造方法中,通过this关键字调用所在类中的另一个构造方法。
在一个实例方法内,局部变量或参数与实例变量名称相同,编译口器无法区分变量,这时要用this关键字。
在一个实例方法内,通过this关键字访问当前实例的引用。
示例:
- 代码
public class Test
{
String name;
//局部变量与成员变量名称相同,用this关键字来区分
Public Test(String name)
{
this.name = name;
}
}
四、super关键字
特点:
super代表父类的内存空间的标识。
继承中,在子类的构造函数中,第一行有一个默认的隐式语句:super(),因此父类的构造函数会先执行。
使用super关键字的情况:
当子父类中的成员变量同名用super区分父类。
当继续使用被覆盖的父类方法可以通过
super.函数名
获取。
注意事项:
- 因为super和this都只能定义在第一行,所以只能有一个 。
五、final关键字
特点:
final可以修饰类,方法,变量。
final修饰的类不可以被继承。
final修饰的方法不可以被覆盖
final修饰的变量是一个常量,只能被赋值一次。
六、abstract关键字
特点:
采用 abstract 方法的类本来就是抽象类,并且必须声明为 abstract。
abstract 类不能实例化。
仅当 abstract 类的子类实现其超类的所有 abstract 方法时,才能实例化 abstract 类的子类。这种类称为具体类,以区别于 abstract 类。
如果 abstract 类的子类没有实现其超类的所有 abstract 方法,该子类也是 abstract 类。
该关键字不可以和private、static、final共存(不可以被子类继承覆盖)。