修饰符
1、权限修饰符
2、状态修饰符
final:
可以修饰成员方法,成员变量,类
final修饰的特点:
修饰方法:表明该方法是最终方法,不能被重写
修饰变量:表明该变量是常量,不能再次被赋值
修饰类:表明该类是最终类,不能被继承
package learn;
public class Student {
public int age=20;
}
package learn;
public class TestDemo {
public static void main(String[] args){
final int age=20;
//age=30;final修饰基本类型变量,age的值不能变了
System.out.println(age);
final Student s=new Student();
//(Student是一个类,所以s是引用类型,s是指针,存储地址值,指向new出来元素的地址)
s.age=30;
//s=new Student();s是一个地址值,s的值不能变了,但s所指向地址存放的内容可以变
System.out.println(s.age);
}
}
final修饰局部变量:
变量是基本类型:final修饰指的是基本类型的数据值不能发生改变
变量是引用类型:final修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的。
static:
可以修饰成员方法,成员变量
static修饰的特点:
被类的所有对象共享(判断是否使用静态关键字的条件)
可以通过类名调用(当然也可以通过对象名调用,推荐使用对象名调用,一次赋值,所有对象此值都为这个值)
package learn;
public class Student {
public String name;
public static String school;
public void show(){
System.out.println(name+","+school);
}
}
package learn;
public class TestDemo {
public static void main(String[] args){
Student.school="university";
Student s1=new Student();
s1.name="lucy";
s1.show();
Student s2=new Student();
s2.name="amy";
s2.show();
}
}
运行结果:
lucy,university
amy,university
static访问特点:
静态成员方法只能访问静态成员