Final关键字

2018-3-23

Final关键字:

类不想被继承,或者类中的部分方法是固定的,不想让子类重写,可是当子类继承了这些特殊类之后,就可以对其中的方法进行重写,解决这种问题就用到final,意思为最终,不可变。Final是个修饰符,可以用来修饰类类的成员变量,以及局部变量。

特点:

1)是最终类,不能有子类,也不能被继承

2)使用方法,方式,没有变化,创建对象,调用方法

3final修饰的方法不可以被覆盖,但父类中没有被final修饰方法,子类覆盖可以加final

4final修饰的变量叫常量这些变量只能被赋值一次,final修饰引用变量,变量保存的内存地址终身不变。

5final修饰的成员变量固定的不是内存的默认值,而是手动赋的

成员变量赋值:

1)直接=赋值

2)采用构造方法赋值

3)不能用set方法赋值,set方法创建对象之后的时候不能用final修饰的成员变量赋值

Static关键字:

对象的静态的特有的静态数据static修饰

 

static修饰的成员,可以被类的名字直接调用变成共享的

Static注意事项:

1)静态方法不能调用非静态(生命周期:静态优先于非静态存在于内存中)静态是提前进入内存,非静态的后进入内存

2)静态中不能写this/super

Static的使用场景:

1. 可以修饰成员变量,成员方法(没有固定)需要根据具体问题分析:定义事物的时候,多个事物之间是否有共性的数据,可以将共性的数据定义为static

2. 成员方法加static,根据成员变量是否为静态

多态调用中编译:

编译都看=左边的父类,父类有编译成功,父类没有编译失败

运行时,静态方法。运行的是父类中的静态方法,

非静态方法,运行子类的重写方法

成员变量,编译运行全是父类

对象的多态性,静态和对象无关,父类的引用,静态方法

定义静态常量:

Public static final 修饰的变量来完成定义

Public static final 数据类型 变量名 =

注意:

接口中的每个成员变量默认使用的都是public static final 修饰

所有接口中的成员变量已经是静态常量,由于接口没有构造方法,所以必须显示赋值,可以直接用接口名访问。

固定不变的:表示常量名需要全部大写:

Public static final String COMPANY_NAME=”公司名称”

 

匿名对象:

概念:创建对象时,只有创建对象的语句,却没有把对象地址赋值给某个变量。

创建一个匿名对象:

New Person()

1)没有引用变量,只能被调用一次

2)匿名对象可以当作参数传递

内部类:

概念:在一个类的内部又重新定义一个类,可以写在其他类的成员位置和局部位置,其他类称为外部类。

什么时候使用内部类?

在描述事物时,若一个事物内部还包含其他可能包含的事物。描述汽车时,发动机,发动机就可以用内部类描述。

内部类的分类:

成员内部类与局部内部类

成员内部类:可以使用成员修饰符,publicstatic...也是一个类,可以继承,可以实现接口

内部类编译后也是class文件

调用规则:

内部类可以使用外部类的成员变量,包括私有,外部类要调用内部类的成员必须建立内部类对象。

调用外部类中的内部类的方法:

格式:外部类名 . 内部类名 变量= new 外部类对象(). new内部类对象();

局部内部类:

概念:定义在外部类方法中的局部位置,与访问方法中的局部变量相似,可以通过调用方法进行访问

定义格式:

Class 外部类{

修饰符 返回值类型 方法名(参数){

Class 内部类{

//其他代码

}

}

}

访问方式:

在外部类方法中创建内部类对象,进行访问。

匿名内部类:

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值