一、包package
包是类或接口的容器,是一个用于避免命名冲突的名空间,是一个逻辑命名的概念,与具体的物理位置无关
在具体的实现中,包名称经常和目录名称对应
什么是包
包是类的组织方式,提供名空间和访问控制
类似于文件系统的组织
声明包中的类package
语法:package 包名称:
声明包要求是源代码文件的第一个语句,包定义之前可以添加注释信息。
程序中最多只能有一条package语句,没有包定义的源代码文件成为默认包中的一部分
程序中如果有package语句,该语句必须是第一条语句
包的命名规则:
全小写
使用域名反转的方式定义。
如果细分还可以引入功能定义部分。
包的作用
包能将相关的源代码文件组织在一起
其中存放操作数据库相关的类文件
存放相关的业务类文件
包减少了名称冲突带来的问题
可以使用package指明源文件中的类属于哪个具体的 包。
包的使用
如果其他人想使用包中类,则需要使用全名
为了简化书写,Java提供了import语句:import package_name.*;
引入包中的某一个类:import java.util.ArrayList;
引入包import
Java缺省引入的包为java.lang
引入包中的类:import包名称.类名称;例如import.java.util.Date;
引入整个包;import 包名称.*;例如import java.util.*;
不引入包而是用类,则需要是用类的全名:包名.类名,例如java.util.Date dd=new java.util.date();
包说明
package-info.java可以描述一个包的作用
package-info中不能定义public和private的类,但是可以定义friendly的类及包常量,提供给统一包下面的类进行共享。
二、super关键字
super调用父类构造方法
super 关键字可以在子类的构造方法中显式地调用父类的构造方法,
其中,parameter-list指定了父类构造方法中的所有参数。super()必须是在子类构造方法的方法体的第一行。
super访问父类成员
当子类的成员变量或方法与父类同名时,可以使用super关键字来访问。如果子类重写了父类的某一个方法,即子类和父类有相同的方法定义,但是有不同的方法体,此时,我们可以通过super来调用父类里面的这个方法。
super调用成员属性
当父类和子类具有相同的数据成员时,JVM可能会模糊不清。我们可以使用以下代码片段更清楚的理解它。
super调用成员方法
当父类和子类都具有相同的方法名时,可以使用 super 关键字访问父类的方法。
this关键字
this.属性名
大部分时候,普通方法访问其他方法、成员变量时无须使用this前缀,但如果方法里有个局部变量和成员变量同名,但程序又需要在该方法里访问这个覆盖的成员变量,则必须使用this前缀。
this.方法名
this关键字最大的作用就是让类中一个方法,访问该类里的另一个方法或实例变量。
this()访问构造方法
this()用来访问本类的构造方法(构造方法是类的一种特殊方法,方法名称和类名相同,没有返回值。括号中可有参数,如果有参数就是调用指定的有参构造方法。