Java知识(static修饰符和fina修饰符l)

1. static
static可以用来修饰属性、方法和代码块;static修饰的属性和方法称为 类属性(类变量/静态属性)和类方法/静态方法。只要类被加载编译,静态类、静态属性、静态代码块就会自动被调用
一个类加载顺序:
静态属性(类属性)-->静态代码块-->普通属性-->代码块-->构造方法
父类和子类都有static变量,初始化顺序:
1.父类static变量/代码块 初始化
2.子类static变量/代码块 初始化
3.父类构造方法
4.子类构造方法
父类静态属性(类属性)-->父类静态代码块-->子静态属性(类属性)-->子类静态代码块-->父类普通属性-->父类代码块-->父类构造方法-->子类普通属性-->子类代码块-->子类构造方法
//父类:
public class Father {
public static int a;
static{
a=1;
System.out.println(a);
}
public int b;
{
b=2;
System.out.println(b);
}
public Father(){
System.out.println(3);
}
}
//子类:
public class Child extends Father {
public static int a;
static{
a=4;
System.out.println(a);
}
public int b;
{
b=5;
System.out.println(b);
}
public Child(){
System.out.println(6);
}
public static void main(String[] args) {
Child child=new Child();
}
}
运行的结果为1 4 2 3 5 6

类属性的使用方法:类属性不需要创建对象就可以使用
1.对象.类属性 2.类名.类属性(推荐)
类属性和普通属性的区别:
使用方式不同,类属性不需要创建对象就可以使用,普通属性必须要创建对象。 类属性:类名.类属性 普通属性:对象.类属性
类属性和普通属性的各自特点:
类属性属于全局的,所有对象共用的一个属性值;普通属性是每个对象属性值是特点的,改变一个对象属性值,另一个对象属性值不会变化
public class Ch01 {
public int a;//普通属性
public static int A;// 类属性/静态属性
public static void main(String[] args) {
Ch01 c1=new Ch01();
c1.a=10;
Ch01 c2=new Ch01();
c2.a=20;
System.out.println("c1.a:"+c1.a);
System.out.println("c2.a:"+c2.a);
//静态属性使用方法
//1.对象.类属性
//2.类名.类属性(推荐)
c1.A=111;
c2.A=222;
Ch01.A=333;
System.out.println("c1.A:"+c1.A);
}
}
输出的结果为c1.a:10 c2.a:20 c1.A:333
类方法/静态方法的使用方法:
跟类属性相似,不用创建对象就调用类方法:类名.类方法
public class Ch01 {
public static void test(){

}
public static void main(String[] args) {

Ch01.test();//使用类方法
}
}
静态方法在不使用类中普通属性的前提下才能使用,因为静态方法的加载顺序在普通属性前面。
静态方法与非静态方法之间互相调用:
静态方法不能直接调用非静态方法,非静态方法可以调用静态方法。
静态方法如果要调用非静态方法,必须要创建对象,通过对象调用非静态对象。
public static void test(){
Child child=new Child();
child.test1();
}
public void test1(){
}
2. final用法
final可以用在类上面,使类不会被其他类继承;
public final Test(){

}
final可以用在方法上,使方法不会被子类重写;
public final void test(){

}
final可以放在属性上,使其变为常量,值不能被修改
public final int a=1;//常量只能使用,不能修改值,常量必须有初始值
fina与abstract互斥

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值