包
包(package)用于管理程序中的类,主要用于解决类的同名问题。
包的作用:
1.防止命名冲突;
2.允许类组成一个单元(模块),便于管理和维护;
3.更好的保护类,属性和方法。
定于包时,必须写在源文件的有效代码的第一句。
命名规范
包命名原则:始终保持类的全路径唯一。
1.由小写字母组成,不能以圆点(.)开头或结尾。(.)有特殊意义-包分隔符;
2.命名最好加上唯一的前缀,通常使用网络域名。如:cn.china.xx
导包
import可用于导包。
如:import cn.china.xx //导入cn.china下的xx类
import cn.china.* //导入cn.china下的所以类
若是在同一个类使用两个不同包但同名的类时
可在创建对象时写全路径
如:java.util.Date date1 = new java.util.Date();
静态导入
一个类中定义的属性和方法都是静态时,可使用静态导入。
package cn.sxt01;
public class Calc{
public static float PI = 3.14f; //静态变量
public static int add(int a,int b){ //静态方法
return a+b;
}
}
导入
package cn.sxt02;
// import cn.sxt01.Calc;
// 静态导入
import static cn.sxt01.Calc.*;
public class Test01{
publicstatic void main(String[] args){
System.out.println(PI);
System.out.println(add(1,2));
}
}
继承
两个类若存在IS-A的关系就可以使用继承
当两个类或多个类的属性和方法出现重复性时,那么我们可以使用继承简便代码;
提取公共重复性的代码到一个公共类中,这个类称为父类(super class)。继承于父类的类称为子类(sub class)。
若类B继承与类A,使用关键字extends,那么B拥有A中非私有的属性和方法。
如:public class B(子类) extends A(父类){
}
继承中存在不能被继承的父类成员:
1.private(私有)成员 ;
2.子类与父类不在同包,使用默认访问权限的成员;
3.构造方法
java继承的特性
1.单根性。 一个类只能有一个父类
2.传递性。 C继承于B,B继承于A,C具有A的特性和行为。
super关键字
super表示父类,只是一个关键字,里面没有引用。
1.super可以访问父类的非私有属性,不能访问父类私有属性。
2.子类有与父类同名的属性时,优先访问子类属性,如果要访问父类属性一定要使用super。 //子类属性可通过this访问
super访问父类构造方法 如 super(a,b,c);
当super调用父类构造方法时,必须写到构造方法有效代码第一句。
super访问非私有方法 如 super.getxxx();
方法的重写
方法重写建立在继承的基础上,没有继承就没有方法重写。
子类从父类继承过来的方法不能满足自身需要时,子类可根据自身情况进行方法重写(overwrite/override)
方法重写可根据实际需求选择部分重写或完全重写。
重写规则
1.方法名称相同;
2.参数列表相同;
3.子类的访问权限一定>=父类访问权限
4.返回值和父类相同或者是其子类 //子类名称
访问修饰符
java中存在4类访问修饰符,分别是
private:私有的,只能在本类可以访问
friendly:默认的,同包可访问,也称包访问权限
protected:受保护的, ①子类可访问②同包可访问
public:公共的,都可以访问