this关键字
为了解决局部变量和成员变量的二义性,变量名有歧义而命名的
包
包是为了解决同名类问题。包可以看成目录,由于包本身即是一种树状结构(目录结构)包的核心作用 :防止类命名冲突package 包名.子包名.子子包1>必须把该语句作为Java文件中第一行代码(所有代码之前)2>包名使用全小写字母组成,命名符合标识符规则3>父包和子包之间使用点符号(.)分割3>因为Java的安全机制,自定义包名不允许使用 java 单词作为包名。包命名原则:一定保持包名唯一,建议使用倒置的域名作为前缀
导包语法
import 类的全路径 ==>类的全路径= 包名+类名
构造器和setter方法的选用
构造器和setter方法都可以给对象设置数据:构造器,在创建对象的时候设置初始数据,只能初始化一次。setter方法,创建对象后再设置初始数据,可以设置多次。
继承思想
面向对象继承,把多个类中相同代码放在父类中,由子类继承,用extends连接public class 父类名{// 存放多个子类共同的字段和方法}public class 子类名 extends 父类名{// 存放自己特有的(独有的)字段和方法}注意:Java中类只支持单继承,但是支持多重继承。也就是说一个子类只能有一个直接的父类,父类也可以再有父类。1>如果父类中的成员使用public和protected修饰,子类都能继承.2>如果父类和子类在同一个包中,使用缺省访问修饰的成员,此时子类可以继承到3>如果父类中的成员使用private修饰,子类继承不到。private只能在本类中访问父类的构造器,子类也不能继承,因为构造器必须和当前的类名相同记住一句话:子类继承父类的非私有成员(字段和方法),但构造器除外。
方法覆盖
override 重写,子类重写父类的方法,父类没有该方法,子类就无法重写
直接拷贝父类中方法的定义粘贴到子类中,再重新编写子类方法体,打完收工!
在子类中的某一个方法中需要去调用父类中被覆盖的方法,用super关键字。如果调用被覆盖的方法不使用super关键字,此时调用的是本类中的方法。super关键字表示父类对象的意思,更多的操作,后面再讲。super.fly() 可以翻译成调用父类对象的fly方法。
抽象方法和抽象类
使用abstract修饰的方法,称为抽象方法。public abstract 返回类型 方法名(参数);抽象方法的特点:1>使用abstract修饰,没有方法体,留给子类去覆盖2>抽象方法必须定义在抽象类或接口中使用abstract修饰的类,成为抽象类。public abstract class 类名 {}一般的,抽象类以Abstract作为类名前缀,如AbstractGraph,就能看出是抽象类。抽象类的特点:1>抽象类不能创建对象,调用没有方法体的抽象方法没有任何意义2>抽象类中可以同时拥有抽象方法和普通方法3>抽象类要有子类才有意义,子类必须实现父类的所有的抽象方法,除非子类也是抽象类。
