*包
·定义
在Java中,用包来管理类
在同一个包中类名不能重名,在不同的包类名可以重名
·常用包
java.lang java的语言包,自动导入
java.util 工具类
java.in 输入输出相关的类
java.text 文本类
java.net 网络类
java.math 数学类
·定义包
·使用package关键词定义包,package定义包的语言必须为源文件的第一条语句
·包名命名规则:公司域名的倒序.项目名.模块名.子模块名
·编译
javac -d . 文件名.java
javac -d参数可以指定生成字节码文件的位置
.代表当前目录
编译后,需用会在当前目录生成对应的文件夹,把字节码文件存储到该文件夹中
·运行
java 完成类名
java 包名.类名
*访问权限:
·权限最小化原则
·public
·protected
·private
*Object类中方法
·equals()——比较两个字符串是否相等
判断两个变量是否相等,如果相等说明两个变量引用堆中的同一个对象
如果想要判断对中两个对象的内容(各个成员变量是否一致),需要重写equals方法
如果两个对象的equals相等,那么这两个对象的hashCode()也应该相等,即在重写equals方法的同时也要重写hasCode()
·getClass()——返回对象的字节码文件
·hashCode()——返回对象哈希码
·wait()——多线程中,让线程等待
·toString()——转换为字符串
当打印对象时会调用toString()
想要打印各个属性时,需要重写toString()
*final关键字
可以修饰类,字段,方法,局部变量,形参
·final修饰类,表示为最终类,不能被继承
System/String/Scanner就是final修饰的类
·final修饰字段不能重新赋值,必须显示的赋值,经常定义final字段的同时就初始化,也可以在构造方法中赋值
final 和 static一般同时使用
·final修饰的方法,不能重写
·final修饰局部变量,一旦初始化,不能重新复制
可以修改字段
*抽象类
·对一组对象进行更高层级的抽象,就可以定义为抽象类
·使用abstract修饰的类就是抽象类
·抽象类也是一种引用数据类型
包含类、接口、数组、枚举
·抽象类不能实例化对象,引用必须赋值子类对象
可以创造一个匿名内部类
·为什么定义抽象方法
当一个类的操作无法具体实现时
·抽象类一般作为其他类的父类存在
*接口
*接口的定义
·Java中接口就是功能的封装,用来拓展类的功能,接口也可以理解为一组操作规范或者一个协议
*如何定义接口?
·[修饰符] interface 接口名{
功能,用方法表示
}
*如何使用接口
·class 类 implement 接口{
重写接口中的抽象方法
}
·接口中方法默认使用public abstract 修饰,接口中还可以定义public static final变量,public static 方法,public default方法
·类实现了接口,需要重写接口的抽象方法,如果没有重写所有的抽象发放,实现类需要定义为抽象类
·接口是一种引用数据类型,可以定义变量,但是接口不能实例化对象,或者接口的匿名内部类对象。
`接口多态,接口引用调用接口中的抽样方法,实际上执行的是实现类对象的方法,接口存在就是为了实现多态的
·一个类可以同时实现多个接口,需要重现所有抽象方法。
·接口也支持继承,接口支持多继承
*接口与抽样类的异同
*相同点:
·都可以定义抽象方法
·都不能实例化对象
·定义的抽样方法都需要被重写
*不同点:
*意义不同
·抽象类是对事物更高层级的抽象
·接口是对功能的封装
*定义方式不同
·抽象类用 abstract class 定义
·接口用 interface 定义
*内容不同
·抽象类中处了抽象方法外,还可以定义构造方法等普通类中定义的所有成员
·接口处了抽象方法等这是个内容外,不能定义构造方法等内容
*使用方法不同
·抽象类需要被子类 extends 继承
·接口需要被实现类 implements 实现
*类只支持单继承,接口支持多继承
*应用场景不同
·对类进行功能的拓展优先选择接口
·除了扩展功能外,还需要保存不同的数据,只能选择抽象类;抽象类的抽象方法需要子类重写,抽象类还可以约束所有的子类都具有相同的功能
*接口的应用
·封装功能(操作)
在Flyable中封装了fly()功能
·接口也可定义一组操作规范
在开放某个项目时,在相似模块中一些操作是相同的,可以吧这一组相同的操作封装在一个接口中,就相当于通过接口定义了一个操作规范
*面向接口的编程
·一个类在继承父类的同时,可以实现多个接口
·接口容易拓展,接口的引用可以复制各种实现类对象,经常把接口引用作为方法形参,在调用方法时可以实现各种实现类对象。
·接口可以使项目分层
*类与类之间的关系
·泛化(继承)
一个类继承另一个类,一个接口继承另一个接口
·实现
·关联
如果A类使用B类定义了成员变量,A关联了B
·聚合
一个A是若干个B组成,A不可以决定B的生命周期,A是一个聚合类
·依赖
方法A的方法返回值类型,方法参数类型是另外一个B类,称A类依赖B类
·组合
组合是关联的一种,如果一个类A由若干个B组成,而且可以决定B的生命周期,成A类为B的组合类
[Java] Java自学笔记(四)——包与接口
最新推荐文章于 2022-08-22 17:09:14 发布