在Java编程中,static和final这两个关键字是时常出现的。
对于final:可以修饰类,方法和变量
final类:最终类,不能被继承,不可以有子类(不能做父类)
final方法:最终方法,方法不能被重写,但可以被继承
final变量:常量,不能再被赋值
final不能修饰构造函数
关于static的部分用法,以下是一个例子:
注意:静态方法只能选用静态变量
一个类中的变量和方法被static修饰之后,不需要类实例化一个对象,再通过这个对象
引用了。因为他是static类型的,所以他就属于这个类,可以用类直接调用。
package JavaStatic;
public class TestStatic {
public static void main(String[] args) {
Student s1 = new Student();
//s1.setName("张三");
//因为name是静态变量,所以可以通过类直接调用
Student.name = "张三";
Student s2 = new Student();
Student.name = "李四";
//s2.setName("李四");
System.out.println(s1.getName());
System.out.println(s2.getName());
}
}
class Student {
// 不把name设置为静态的,则结果输出是张三 李四
// private String name;
//被静态static的修饰之后,name属性不属于对象
//结果输出是李四 李四
//因为name是公用的,name被第二次修改之后就变成了"李四"
public static String name;
private int age;
//静态方法只能选用静态变量
public static void test()
{
System.out.println(name);
//age不是静态变量,所以以下代码会出错
//System.out.println(age);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
结果截图:
当把public static String name的static去掉之后,结果为: