this关键字

    1. 为了解决局部变量和成员变量的二义性,变量名有歧义而命名的

    1. 包是为了解决同名类问题。
    2. 包可以看成目录,由于包本身即是一种树状结构(目录结构)包的核心作用 :防止类命名冲突
    3. package 包名.子包名.子子包
    4. 1>必须把该语句作为Java文件中第一行代码(所有代码之前)
    5. 2>包名使用全小写字母组成,命名符合标识符规则
    6. 3>父包和子包之间使用点符号(.)分割
    7. 3>因为Java的安全机制,自定义包名不允许使用 java 单词作为包名。
    8. 包命名原则:一定保持包名唯一,建议使用倒置的域名作为前缀

    导包语法

    1. import 类的全路径 ==>类的全路径= 包名+类名

    构造器和setter方法的选用

    1. 构造器和setter方法都可以给对象设置数据:
    2. 构造器,在创建对象的时候设置初始数据,只能初始化一次。
    3. setter方法,创建对象后再设置初始数据,可以设置多次。

    继承思想

    1. 面向对象继承,把多个类中相同代码放在父类中,由子类继承,用extends连接
    2. public class 父类名{
    3. // 存放多个子类共同的字段和方法
    4. }
    5. public class 子类名 extends 父类名{
    6. // 存放自己特有的(独有的)字段和方法
    7. }
    8. 注意:Java中类只支持单继承,但是支持多重继承。也就是说一个子类只能有一个直接的父类,父类也可以再有父类。
    9. 1>如果父类中的成员使用publicprotected修饰,子类都能继承.
    10. 2>如果父类和子类在同一个包中,使用缺省访问修饰的成员,此时子类可以继承到
    11. 3>如果父类中的成员使用private修饰,子类继承不到。private只能在本类中访问
    12. 父类的构造器,子类也不能继承,因为构造器必须和当前的类名相同
    13. 记住一句话:子类继承父类的非私有成员(字段和方法),但构造器除外。

    方法覆盖

    override 重写,子类重写父类的方法,父类没有该方法,子类就无法重写

    直接拷贝父类中方法的定义粘贴到子类中,再重新编写子类方法体,打完收工!

    1. 在子类中的某一个方法中需要去调用父类中被覆盖的方法,用super关键字。
    2. 如果调用被覆盖的方法不使用super关键字,此时调用的是本类中的方法。
    3. super关键字表示父类对象的意思,更多的操作,后面再讲。
    4. super.fly() 可以翻译成调用父类对象的fly方法。

    抽象方法和抽象类

    1. 使用abstract修饰的方法,称为抽象方法。
    2. public abstract 返回类型 方法名(参数);
    3. 抽象方法的特点:
    4. 1>使用abstract修饰,没有方法体,留给子类去覆盖
    5. 2>抽象方法必须定义在抽象类或接口中
    6. 使用abstract修饰的类,成为抽象类。
    7. public abstract class 类名 {
    8. }
    9. 一般的,抽象类以Abstract作为类名前缀,如AbstractGraph,就能看出是抽象类。
    10. 抽象类的特点:
    11. 1>抽象类不能创建对象,调用没有方法体的抽象方法没有任何意义
    12. 2>抽象类中可以同时拥有抽象方法和普通方法
    13. 3>抽象类要有子类才有意义,子类必须实现父类的所有的抽象方法,除非子类也是抽象类。