一些关键字的作用和用法
一、访问限定符可以用来定义类、属性、构造方法、方法
1.关键字 作用范围
public 在同一个工程中可以到处使用
protected 在同一个包中可以被使用和不在同一个包中的子类
默认的 在同一个包中可以被使用
private 在同一个类中可以被使用
示例代码如下:
public class A{
//定义一个 public 的属性
public String name="张三";
//定义一个protected的属性
public int score=90;
//定义一个private 的属性
private int age=20;
}
//在同一个工程下定义一个类
public class B{
//实例化一个A对象
A a=new A();
//调用它的name属性,是可以的
String n=a.name;
//不能掉用它的protected的属性
int m=a.score; //这个语句有错
//也不能调用它的private的属性
int k=a.age; //这个语句有错
}
2.接口的定义只能用public作为访问限定符,如果不写,默认为public。
二、关键字this和super
1、this表示当前一个对象
示例代码
public class C{
//定义一个属性
public String name;
//定义一个方法
public void setName(String name){
this.name=name; //this表示定义的name的属性
}
}
2、表示当前类中的某个构造方法
示例代码
public class D{
//定义一个属性
public String name;
//一个无参构造方法
public D(){
this("有参构造方法"); //this表示下面的有参构造方法
}
//一个有参构造方法
public D(String n){
name=n;
}
}
3、super可以表示当前类的父类对象和调用父类的构造方法
示例代码
public class E{
//定义一个属性
public String name="";
//定义一个方法
public String getName(){
return name;
}
}
//写一个F类让它继承E类
public class F extends E{
//定义一个属性
public String name1;
public F(){
super(); //调用父类F默认的无参构造方法
}
//
public void setName(String n){
name1=super.getName(); //使用父类对象的getName()方法
}
}
三、关键字final 可以用来定义类、属性、方法、变量
public final class G{ // 表示G类不能被继承
//
private final int score=100; //表示属性score只能赋值一次,必须初始化,不能被修改
//
public final void test(){ // 表示方法test()不能被重写
final int age=100; //表示变量age只能赋值一次,必须初始化,不能被修改
}
}
四、关键字static可以定义属性、方法、代码块
public class H{
private static String name; //这一个类所有的对象共同使用的一个变量指向同一个地址
public static void setName(){} //表示这个方法的调用只和类型相关
H.name="yours"; //可以用类名H来调用它的属性
}
}
2、修饰代码块表示在主函数之前执行,来初始化数据
public class J{
//主函数
public static void main(String [] args){
}
//代码块
static{
String name="王五"; //在执行主函数之前,会先给name变量赋值
}
}