zoukankan      html  css  js  c++  java
  • [13] static 和 final


    不论是类、属性,还是方法的声明中,都有一个可设置的“修饰符”,它可以实现一些高级特性。

    1、static

    static被称之为静态的,并不是指不可以修改的意思,而是说它的内存空间是静态的。

    1.1 修饰属性

    如果某个类的某个属性被static修饰,那么意味着不论创建多少个对象,它们都是共用该属性,不会有各自独立的值。也即是说,凡是被static修饰的属性也好,方法也罢,它是属于类的,不属于某个具体的对象。所以它既可以使用对象调用,也可以直接通过类名调用。

    静态属性是类的所有对象共享,就像一个教室(类)可能有20个学生也可能有30个学生(对象),但是老师始终只有一个(静态属性)。

    1.2 修饰方法

    同理,被static修饰的方法,称之为静态方法,意味着它与实例无关,不论哪个对象调用都执行相同的操作。这也意味着静态方法中不能出现非静态的属性(即属于对象独立的属性)。

    说简单一点,静态方法是不通过对象就可以调用,意味着在对象没有创建之前就可以调用,既然对象没创建,对象属性也就不存在,静态方法中还能存在非静态属性吗?显然不能。



    2、final

    2.1 修饰属性

    final修饰属性,那么在定义时就必须直接赋值或者在构造方法中进行赋值,并且后期无法修改。

    常见的一些常量就需要用final修饰,如圆周率 static final double  pi = 3.1415926;

    final因为修饰的值不能改变,这通常是公用常量,所以很多时候也配合static一起使用。静态常量命名字母全大写,单词间下划线隔离。

    2.2 修饰方法

    final修饰方法,表示该方法必须有实现代码,且子类不能覆盖该方法。

    2.3 修饰类

    final修饰类,表示该类不能被定义为接口或抽象类,且不可以被继承。如大名鼎鼎的String类就是一个final类。


  • 相关阅读:
    菜单范式
    PIC18F26K20
    单片机中串口通信模型
    STM8S103之GPIO
    STM8S103之ADC
    二叉树最近公共祖先
    全排列
    整数翻转
    完全二叉树节点个数
    二叉树的深度
  • 原文地址:https://www.cnblogs.com/deng-cc/p/7461864.html
Copyright © 2011-2022 走看看