Java域的定义

也称成员变量,体现了类的状态,而状态的改变由类体的方法实现。
域的定义:定义类的 静态属性
域必须在类体中直接定义,不能包含在方法定义中。
域定义的格式如下:
     [修饰符]  类型名  域名;
注:其中修饰符部分是可选项,可以是关键字public、protected、private、final、static、transient和volatile的一个或多个组合;
       public、protected、private表示域的访问权限;
         final表示域为常量,无法改变;
         static说明定义的变量是静态变量;
         transient说明变量为一个临时的变量;
         volatile修饰的变量用在多线程程序中,用来说明备份变量。

静态域:

被static修饰的域成为 静态域(类域、类变量)
例如: static int n = 18;
静态域 是属于整个类的成员变量,存储在类的内存区的 公共存储单元 中。( 也就是说 任何该类的对象都可以访问它 ,而且访问它得到的都是 相同的值 如果某一个对象修改它的值,所有对象的值都会一起改变! )
注意:这里说的是静态域,静态域,用static修饰的静态域不要和其他域混淆!
没有被static修饰的域,在不同的对象中,都拥有独立的内存地址,也就是说每一个对象的域值都是不一样的!一定要和静态域相区别!
静态域可以用过 类名直接访问 ,也可以用对象来引用。

静态类的初始化器
静态类 不属于某个具体的对象,而是整个类的域 ,所以它的初始化通过 静态初始化器 来实现。
静态初始化器是由关键字static和一对大括号组成的复合语句,目的是对 类域 进行初始化。
静态初始化在所属类被加载到内存时进行。

静态类的初始化器和构造方法的区别:
  1. 静态初始化器只能对静态域进行初始化,它不能访问非静态域。
  2. 静态初始化器由关键字static和复合语句组成,静态类的初始值由程序确定好;
  3. 构造方法是一个特殊的方法,它有参数,程序运行时,可以从外部接收数据,将域初始化为不同的值。
  4. 静态初始化器是对类自身进行初始化;而构造方法是对对象进行初始化。
  5. 静态初始化器是在类加载入内存的时候,由系统自动调用进行的;而构造方法实在使用关键字new创建对象时,由系统自动执行,关键字new后面跟的是构造方法。

最终域:

用关键字final修饰的域称为 最终域
final修饰的域的取值在程序执行的过程中 将不会改变 。(final修饰的变量也如此一旦被赋值就无法被改变)
例子:"java.lang"包中定义的圆周率PI就是一个最终域。可以表示为“Math.PI”
注:由于最终域的值固定不变,为了节省空间, 最终域一般用static修饰,为静态最终域
另:
    由final修饰的方法为最终方法:方法的功能确定,不能被子类中的相同方法覆盖,这样能保证方法实现的一致性。
    final修饰的类:该类为最终类,不能派生子类,它的内容、属性和方法实现固定不变,与类名形成稳定的映射关系,保证功能实现的准确性。
        常见的最终类:例如:System类和InetAddress类、Socket类等。
  • 14
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值