static(用于修饰属性 方法 代码块)
1修饰属性时总结:
1)static修饰的属性属于该类的所有对象,一个对象对其修改,其他对象的该属性也将被修饰
2)static修饰的属性,可以通过类名直接调用,也可以使用对象调用
2.修饰方法时总结:
1)可以通过类名直接调用
2)静态方法中只能直接使用静态成员
3)静态方法中不能使用this或super
4)非静态方法中可以直接使用静态成员
3.修饰代码块
总结:
1)位置:类中方法以外
2)非静态代码块创建该类对象时就会被调用
3)静态代码块在被加载的时候调用,而且一个类中的静态代码块只会被加载一次
final(用于修饰类 属性 方法 局部变量)
1)final修饰的类不能被继承称为最终类
2)final修饰的属性必须给初始值,并且不能被修改
3)final修饰的方法不能被重写
4)final修饰的局部变量是常量,只能赋值一次.
abstract(可修饰类 方法)
1)抽象类不能直接创建对象,只能找个类把他继承了才能创建
//抽象类Animal
public abstract Animal{
}
//间接创建对象,用被继承的子类
public Dog extends Animal{
}
//在main函数中间接创建
public statci void main(String[] args){
Dog dog = new Dog() ;
//通过子类转父类创建父类对象
Animal animal = dog ;
}
2)修饰方法时
2.1)有抽象方法的类一定时抽象类,抽象类不一定有抽象方法
2.2)一个类继承于抽象类,要么重写抽象类所有抽象方法,要么自己也是抽象类(不然系统会报错)
//抽象父类
public abstract class Animal{
public abstract void eat(){};
}
//继承的子类或者重写父类中的抽象方法
public class Dog extends Animal{
//此时不重写父类的方法子类就会报错因此重写方法
public void eat(){}
}
//或者将自己也变成抽象类,不过此时环境类中创建的子类对象会报错因为抽象类不能直接创建对象
public abstract class Dog(){};
2.3)抽象方法的修饰不能使用static或final共同修饰