一:final
final可以修饰类,变量和方法,代表最终的意思。
- final修饰类时,被修饰的类不能被继承。
- final修饰变量时,作用相当于c++中的const关键字,代表该变量为常量,不可被更改。
- final修饰方法时,方法不能被重写
public class Final {
public static void main(String[] args) {
final int age = 20;
//final 修饰基本类型变量时
//age = 40; 会报错,说明基本类型被final修饰后值不能改变
System.out.println(age);
//final 修饰引用类型时
final stu a = new stu();
System.out.println(a.age);
a.age = 40 ; //没有报错
System.out.println(a.age);
/*a = new stu();当我们给a一个新地址时报错了,
说明引用类型被final修饰后地址不能改变,
但地址中的内容是可以改变的*/
}
public class stu {
public int age = 10;
}
二.static
static即静态,静态成员方法只能访问静态成员
因为main函数是静态修饰,为方便在main中访问main外的方法,应用static修饰方法。
public static void main(String[] args)
{
show3();//在main中只能访问show3
}
void show1()
{
}
public void show2()
{
}
public static void show3()
{
}
static修饰变量时,该变量被所有对象共享
public class stu {
int age;
static String university;
String name;
}
public static void main(String[] args) {
stu.university = "xidian";
stu s1 = new stu();
s1.name = "ywq";
s1.age = 18;
stu s2 = new stu();
s2.name = "lmx";
s2.age = 17;
System.out.println(s1.name+","+s1.age+","+s1.university);
System.out.println(s2.name+","+s2.age+","+s2.university);
}
输出:
ywq,18,xidian
lmx,17,xidian
ywqlove