final关键字
-
采用final修饰的类不能被继承
-
采用final修饰的方法不能被覆盖
-
采用final修饰的变量(基本类型)不能被修改
-
采用final修饰的变量必须初始化
-
如果修饰的引用,那么引用只能指向一个对象,也就是说引用不能被再次赋值,但被指向的对象是可以修改的
抽象类
abstract关键字
抽象类,抽象方法
抽象类
-
抽象类无法实例化,必须被子类继承
-
如果类中有抽象方法,则这个类必须被定义为抽象类
抽象方法
-
抽象方法只能在抽象类中
-
抽象方法提供申明,不需要实现
-
抽象类的子类必须重写父类的抽象方法,如果不重写,则必须再次定义为抽象类
抽象类,抽象方法都不能被final关键字修饰
接口
可以把接口看作是抽象类的一种特殊情况,在接口中只能定义常量和抽象方法
-
在java中,接口采用interface声明
-
接口不能被实例化,接口中没有构造函数的概念
-
接口之间可以继承,但接口之间不能实现
-
接口中与类称为实现,通过implements关键字
-
如果一个类实现接口,那么接口中的所有方法必须实现
-
一个类可以实现多个接口
接口和抽象类的区别
-
接口描述了方法的特征,不给出实现。解决了Java中的单继承问题
-
抽象类提供了方法的部分实现,主要的作用是把公共的代码提取到抽象类中
-
实际开发过程中,我们要面向接口编程,而不要面向具体编程
-
优先选择接口
类之间的关系
is-a、is-like-a、has-a
Object类
Objice类是所有java类的根基类
toString()
返回一个“以文本方式”表示此对象的字符串
通常Object父类的方法的实现不是我们想要的,我们需要重写此方法
==与equals方法
-
等号==
可以比较基本类型和引用类型,比较基本比较的是具体的值,比较引用比较的是引用类型的地址
-
equals方法
Object类的equals()默认比较的是地址,如果不准备调用父类的equals方法,那么必须覆盖父类的equals方法
instanceof()
向下转型要使用instanceof()判断是否是同一类型
包和import
-
包最好采用小写字母
-
包有命名规则,不能重复,最好采用公司网站逆序
-
package必须放在所有语句的第一行,注释除外
-
JDK常用开发包
-
java.lang,java语言标准包,使用此包无需import导入
-
java.sql,提供了JDBC接口
-
java.util,提供了常用工具类
-
java.io,提供了io相关的包
-
访问控制权限
| 修饰符 | 类 | 包 | 子类 | 所有地方 |
|---|---|---|---|---|
| private | √ | × | × | × |
| default | √ | √ | × | × |
| protected | √ | √ | √ | × |
| public | √ | √ | √ | √ |
内部类
内部类:在类的内部又定义了一个新的类,被称为内部类
内部类的分类:
静态内部类:
实例内部类:
局部内部类:
使用内部类编写的代码可读性很差,能不用尽量不用
浙公网安备 33010602011771号