一、包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()用来访问本类的构造方法(构造方法是类的一种特殊方法,方法名称和类名相同,没有返回值。括号中可有参数,如果有参数就是调用指定的有参构造方法。