1、Java程序设计语言,Java面向对象编程,M,基础问题,什么是 jdk,jbuilder,j2se,j2me,j2ee java,javascript,jsp,M,访问控制符,包:同一个包里面的类都能互相访问 public :包外的类亦能访问 Private:仅本类可以访问 Protected:不能休饰类,本类访问及子类访问(可以位于不同包)以及同一包中其它类访问 Friendly:默认,同一个包中其它类访问,M,非访问控制符,Static 修饰符(P88 5.11) 类在实例化的时候,对象另分配一个区域 使用Static系统只为类的对象创建一次空间,无论多少个类Abstract修饰符 抽象
2、类又称超类,只给出一个概括性的总体定义 抽象类不能实例化,只能继承 子类继承时必需实现抽象类中的抽象方法Final修饰符 最终修饰符,最终类固定不能继承 最终变量不能修改,最终方法不能重载,M,类的继承,继承概念 继承是两个类间的一种关系 实现一定程度上的代码重用 Java类的继承不改变访问权限,父类的私有变量不有继承Extends实现,格式如下 修饰符 class 新类名 extends 父类名; P94 6.1,M,子类继承父类的继承原则,1、继承了public或protected的直接父类成员 2、继承了未修饰的 3、不能继承private修饰的 4、若子类声明一个与父类同名的方法或变量
3、,则不再继承变量隐藏 方法覆盖,M,This与super,This: 代表类本身的实例对象 调用当前的对象的方法与变量Super 表当前对象所在类的直接父类 对直接父类对象的直接引用 可以访问被子类隐藏覆盖的变量和方法P101 6.7,M,构造方法重载,class SuperClass SuperClass() System.out.println(“SuperClass constructor“); public class SubClass extends SuperClass SubClass() System.out.println(“SubClass constructor“); public static void main(String args) SubClass sub = new SubClass(); ,M,构造方法重载,输出结果: SuperClass constructor SubClass constructor 在子类中只实例化了一个子类对象。 从输出结果上看,程序并不是一开始就运行自己的构造方法,而是先运行其父类的默认构造方法。 注意:程序自动调用其父类的默认构造方法。,M,谢谢,