变量与常量
变量
成员变量有默认初始值,分为类变量(静态成员变量)和实例成员变量
加static就是类变量,不加就是实例变量,访问需要实例化,实例对象在堆中
成员变量默认值
成员变量和局部变量的区别
transient 修饰符
https://www.cnblogs.com/bl123/p/14154951.html#:~:text=transien,%E8%AF%A5%E5%BF%BD%E7%95%A5%E6%AD%A4%E7%B1%BB%E5%8F%98%E9%87%8F%E3%80%82
transient修饰符用于类属性、变量,表示该类的序列化过程在为该类的任何实例创建持久字节流时应该忽略此类变量。
transient使用场景:
- 在类实现序列化接口,而类下某个变量不想被序列化的情况下,用transient修饰该变量,可避免该变量被序列化,java 虚拟机(JVM)跳过该特定的变量。
常量
使用final定义常量,常量有三种类型:静态常量、成员常量和局部常量。
1 public class HelloWorld { 2 // 静态常量 3 public static final double PI = 3.14; 4 // 声明成员常量 5 final int y = 10; 6 public static void main(String[] args) { 7 // 声明局部常量 8 final double x = 3.3; 9 } 10 }
- 在定义常量时就需要对该常量进行初始化。
- final 关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。
- 为了与变量区别,常量取名一般都用大写字符。
- 常量不允许修改
final
最终的,唯一的,不可变的
final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。
修饰类
当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。
修饰方法
1 public class B extends A { 2 3 public static void main(String[] args) { 4 5 } 6 7 public void getName() { 8 9 } 10 } 11 12 class A { 13 14 /** 15 * 因为private修饰,子类中不能继承到此方法,因此,子类中的getName方法是重新定义的、 16 * 属于子类本身的方法,编译正常 17 */ 18 private final void getName() { 19 20 } 21 22 /* 因为pblic修饰,子类可以继承到此方法,导致重写了父类的final方法,编译出错 23 public final void getName() { 24 25 } 26 */
修饰变量
作者: deity-night
出处: https://www.cnblogs.com/deity-night/
关于作者:码农
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(***@163.com)咨询.