匿名对象以及final关键字


前言

匿名对象是对象的简化形式,是没有名字的对象.(只要是简化形式就有一定局限性)


一、匿名对象应用场景

• 匿名对象使用时需要注意的两种情况
– 当对对象方法仅进行一次调用的时候
– 匿名对象可以作为实际参数进行传递
–注意:匿名对象可以调用成员变量并赋值,但是赋值并没有意义,
比如,这样输出的age属性还是默认值,不是18.因为他们是不同的两个对象

	new Student().age = 18;
	System.out.println(new Student().age);

new Student();//匿名对象,没有变量引用的对象

二、final关键字

• final: 修饰符,可以用于修饰类、成员方法和成员变量
• final所修饰的类:不能被继承,不能有子类
• final修饰的方法不可以被覆盖。即不能被重写。
• final修饰的变量是一个常量。是不可以修改的,只能被赋值一次。

  • 字面值常量:1,2,3

  • 自定义常量:被final所修饰的成员变量,一旦初始化则不可改变

  • 注意:自定义常量必须初始化,可以选择显式初始化或者构造初始化
    *final修饰成员变量,必须初始化,初始化有两种
    – 1,显式初始化//final int NUM = 15;
    – 2,构造函数初始化//final int NUM;通过构造函数初始化
    – 但是不能两个一起初始化
    – 一般定义把常量定义成final还需要定义成static的,为什么?定义成public static final int NUM = 15;//全局常量

2.应用以及规范

什么时候将变量修饰成final呢?
– 通常在程序中使用一些不会变化的数据.也就是常见的一些常量值.比如3.14,这个数直接使用是可以的,但并不利于阅读,所以一般情况下,都会被该数据起个容易阅读的名称

– final修饰的常量定义一般都有书写规范,被final修饰的常量名称,所有字母都大写例如:double PI = 3.14;
– 如果由多个单词组成每个单词间用下划线连接
• 局部内部类只能访问被final修饰的局部变量。

3.final和private的区别

区别1
– final修饰的类可以访问
– private不可以被访问(修饰外部类),但可以修饰内部类,在内部类可以被访问(其实把外部类私有化是没有意义的)
区别2
– final修饰的方法不可以被子类重写
– private修饰的方法表面上看是可以被子类重写的,其实不可以,子类是看不到父类的私有方法的
• 区别3
– final修饰的变量只能在显式初始化或者构造函数初始化的时候赋值一次,以后不允许更改
– private修饰的变量,也不允许直接被子类或一个包中的其它类访问或修改,但是它可以通过set和get方法对其改值和取值


总结

final int NUM = 15;
NUM = 20//这样做不可以,final修饰意味着不可以改变

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值