1、final关键字
解释:最终的、到头了
修饰的领域:
1)、修饰类
称为:最终类
特点:该类不可以被别的类继承
2)、修饰方法
称为:最终方法
特点:该方法不可以被子类重写
3)、修饰变量
称为:最终变量
特点:该变量的值不可变 ==> 理解:就是常量了
【注意】:常量的命名
常量名也是标识符之一,满足Java的规则和规范
规范如下:
所有字母全部大写,如果时候多个单词组成,中间使用_进行间隔
例如:
HELLO_WORLD_JAVA
2、面向对象特性之多态性
多态:一种事物的多种形态
生活层面:...
程序层面:
前提条件:
对应表现一 ==> 需要具备继承关系;
对应表现二 ==> 需要具备实现关系;
两种表现:
表现一:父类型的引用 指向 子类型的对象;
表现二:接口类型的引用 指向 实现类的对象;
搭建场景
class Fruit{
//...
}
class Apple extends Fruit{
//...
}
class Orange extends Fruit{
//...
}
//Apple a = new Apple(); //本态引用
Fruit f = new Apple(); //多态引用 此处发生多态
f.类的成员 //编译都是强调Fruit怎么样怎么样,但是执行的都是Apple的具体展示
Fruit f2 = new Orange(); //多态引用 此处发生多态
f2.类的成员 //面上感觉都是在操作Fruit,但是真正执行的都是Orange的具体展示
多态性的使用场景:
1)、多态参数;
2)、多态数组;
3)、多态返回值;
好处:
降低代码的冗余度,阅读性更好,代码极具扩展性
引用类型之间的类型转换:
1)、自动向上转型/造型: 子 -> 父 理解:小 -> 大
2)、强制向下转型/造型: 父 -> 子 理解:大 -> 小
引用类型之间的强转操作,需要关注编译和运行两个阶段
编译阶段:
一旦需要被转换成的类型和对象的所属类型是子父类的关系,则编译就能通过;反之编译失败报错!
运行阶段:
jvm回去内存中查看对象的本质类型和需要被转换成的类型是否一致,如果一致,则运行成功;如果不一致,运行失败(运行报错)
运行时异常:
java.lang.ClassCastException
instanceof关键字:
作用:避免、杜绝类型转换异常的出现
格式模板:
对象名 instanceof 数据类型
执行流程:
如果对象本质类型属于该数据类型,则返回true;
如果对象本质类型不属于该数据类型,则返回false;
【注意】:instanceof左边对象名类型必须是右边的父类或者同类,不然编译会报错。
3、关于多态的总结:
程序代码一旦多态了,结合属性(静态、非静态)、静态方法、非静态方法使用,是否有多态性的具体体现
总结关系图:
编译阶段 运行阶段 是否有多态性的体现
属性(静态、非静态) 看等号左侧 看等号左侧 没有
静态方法 看等号左侧 看等号左侧 没有
非静态方法 看等号左侧 看等号右侧 有
结论:程序代码多态了,只有结合非静态方法使用才会有多态性的具体展示体现
4、包
理解:目录、文件夹
关键字:package
包名也是标识符之一
规范如下:
1)、所有字母全部小写,如果是多个单词组成,中间使用.进行间隔;
2)、不成为的规定:使用公司域名的倒序形式;
举例:
场景:为京东开发某项目
包的命名:
com.jd.项目名.模块名.子模块名
5、如何去使用类库:
有两种方式
方式一:导包操作【常用】
关键字:import
举例:
import java.util.Random;
Random r = new Random(); //使用了类的简名称形式
方式二:不导包操作【不常用】
举例:
java.util.Random r = new java.util.Random(); //使用了类的全名称形式
本电子书目录:《Java基础的重点知识点全集》