面向对象_3

 包

包(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:公共的,都可以访问


你可能感兴趣的:(面向对象_3)