一、关键字概述
每一种编程语言都由关键字、标识符、分隔符组成。
关键字:指一种语言中已经被赋予特殊含义而不需要我们重新定义的部分单词。因此在命名变量时不能够使用关键字。
标识符:指编程人员自己定义的变量。
分隔符:
二、关键字分类解析
1、访问限定符
包含:public protected 默认限定 private
限定范围从左至右依次缩小。
[1]public
限定范围:同一工程中
修饰类:表示该类可以被其他包中类的对象访问,公开性最强。这种类在一个文件中只允许有一个,且类名必须与文件名相同。
修饰方法:该方法可以被其他包中的类调用。
修饰属性:可直接通过 对象.属性 格式访问。
注:interface中的属性默认为public。
abstract class中声明为abstract的方法默认为public。
父类方法为public,子类在重写时范围i不能小于public 。
[2]protected
限定范围:同一包中或不同包中的子类对象(继承)。
[3]默认限定
限定范围:只能在同一包中。
[4]private
限定范围:同一类中。
2、this、super
[1]this
用来指代当前类的对象。
this.变量名 = 变量名
在构造函数中调用自己的另一个构造函数,只要在圆括号中传入相应的值(参数类型,参数个数来决定调用的是哪一个构造函数)。
this(参数列表);
注:this在调用构造函数时,调用的代码必须写在第一行,且只能调用一次。
public class Student {
//无参构造器
public Student(){
this("未知名字","Java");
}
//初始化名字属性的构造器
public Student(String name){
this(name,"Java");
}
//初始化姓名、学科属性的构造器
public Student(String name,String km){
this.name = name;
this.km = km;
}
//学生姓名属性
public String name ;
//学生学习科目属性
public String km ;
}
public class putout {
public static void main(String []args){
Student cm = new Student();
Student dm = new Student("随心");
Student em = new Student("春晓","古典文学");
System.out.println(cm.name+cm.km);
System.out.println(dm.name+dm.km);
System.out.println(em.name+em.km);
}
}
结果是:未知名字Java
随心Java
春晓古典文学
[2]super
用来指代父类的对象。
在构造函数中调用父类的构造函数。(子类的构造函数均会默认调用父类的构造函数)
public class putout extends Student {
public putout(String name){
super(name);
}
public static void main(String []args){
putout cm = new putout("随心");
System.out.println(cm.name+cm.km);
}
}
结果是:随心Java
3、final
修饰属性:属性作为常量。(若一个类中有final修饰的属性变量,则该变量必须初始化)
修饰方法:方法不能被重写。
修饰类:类不能被继承,不能被重写。
4、static
修饰代码块:称为静态块,在装载类时,普通代码块不会执行,而静态代码块会执行。
修饰属性:称为类属性。类属性可以不创建对象直接调用。同时在创建对象时,类属性不能被复制,因此某一对象的类属性被改变则所有;对象的类属性均被改变。
修饰方法:称为静态方法或类方法。类方法可直接用 类名.静态方法名()调用,而非类方法必须创建该类的对象才能调用。静态方法没有多态,所调用的方法一定为对象所属类的方法。
注:装载类的说明:
在装载类时,静态属性会首先执行,然后执行非代码块,代码块只有在创建对象时才能执行,而静态方法只装载不执行。
public class C {
public C(){
System.out.println("C");
}
public static void main(String []args){
C c = new C();//创建对象,则执行非静态块,然后执行构造函数
System.out.println("D");
}
{
System.out.println("A");
}
static{
System.out.println("B");
}
}
结果是:B A C D