关键字
final
1.数据
声明数据为常量,可以是编译时常量,也可以是在运行时被初始化后不能被改变的常量。
对于基本类型final使其数值不变
对于引用类型,final 使引用不变,也就不能引用其它对象,但是被引用的对象本身是可以修改的。
2.方法
被final修饰的方法不能被子类重写。private 方法隐式地被指定为 final,如果在子类中定义的方法和基类中的一个 private 方法签名相同,此时子类的方法不是重写基类方法,而是在子类中定义了一个新的方法。因为被private修饰的方法外部无法访问。
3.类
声明类不允许继承
static
1.静态变量
静态变量:又称为类变量,也就是说这个变量属于类的,类所有的实例都共享静态变量,可以直接通过类名来访问它。静态变量在内存中只存在一份。
实例变量:每创建一个实例就会产生一个实例变量,它与该实例同生共死。
public class StaticTest {
static int x = 9;//静态变量
int y = 9;//实例变量
}
static修饰的变量可以直接通过类名来调用,没有被static修饰的通过创建对象来调用
public class StaticTest {
static int x = 9;
int y = 9;
public static void main(String[] args) {
StaticTest staticTest = new StaticTest();
int y = staticTest.y;
int x = StaticTest.x;
}
}
但是要注意,被静态修饰的变量在内存中只存在一份,无论你new了几个对象,如果要对static修饰的变量修改的话修改的是同一个值
这是我写的一个Dog类
public class Dog {
static String name;//被static修饰
int age;
public static String