java_12-24-part three

1.static 关键字,可以修饰属性,类,方法

2.static修饰属性时,无论一个累生成了多少实例,所有这些实例共享唯一一份静态成员变量。一个实例对静态变量进行修改,其他实例的该静态成员变量的值也会随之变化。如果一个成员变量是static的,那么一般通过,类名.成员变量名的方式来使用。

3.static修饰方法。静态方法,子类可以继承静态方法,但不可以重写静态方法。也是用类名.方法名的方式来使用。

public class Test{
    public static viod main(String[] args){
        M m = new N();
        m.output();//会输出M。 因为N继承了M 中的静态方法,但不可重写静态方法,所以输出M
        N n = new N();
        n.output();//会输出N
    }
}


class M{
    public static void output(){
            System.out.println("M");
    }
}

class N extends M{
    public static void output(){
    System.out.println("N");
    }
}

4.final关键字,修饰属性、类、方法
a)当final修饰类的时候,表示是个终态类,不能被继承。
b)当final修饰方法时候,表示是个终态方法,不能被重写(override)
c)当final修饰属性时,表示该属性不能被改写。

5.当final修饰原生数据类型时,表示该原生数据的值不能被改变(即怒不可有0变为10);当final指向一个引用类型时,表示该引用不能指向其他的对象了,但该引用指向的对象的值是可以改变的。

6.对于final类型的成员变量,一般说2中赋初值得方法。
a) 在声明final类型成员变量时就赋上初值。
b)在声明final类型成员变量时没有赋上初值,但在类的构造方法上附上初值。

7.static :静态代码块(先于构造方法执行,也就是生成实例)。静态代码块在java虚拟机上就已经执行了。
静态代码块的作用就是完成一些初始化工作,先执行静态代码块,然后执行构造方法。静态代码块在类被加载的时候执行,而构造方法是在生成实例的时候执行。想调用某个类生成实例,首先先将类加载到java虚拟机上,然后由java虚拟机加载这个类来生成对象。

8.类的静态代码块只会被执行一次,是类被加载的时候执行的。因为每个类只加载一次,所以静态代码块只会被执行一次。而构造方法则不同,每次生成一个实例,都会调用类的构造方法,new一次,调用构造方法一次。

9.如果继承体系,既有静态代码块,又有构造方法,那么授限制性最顶层的静态代码块,一直执行到最底层的静态代码块。然后执行最顶层构造方法,一直待最底层构造方法。

10.静态方法只能访问静态成员变量,非静态方法,可以访问一切

11.不能再静态方法中使用this关键字。因为,this是对当前实例的引用,但静态方法可以不生成对象,直接用类来调用,那这时候是什么对象呢,所以不能用this。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值