《Java2实用教程》第四版备课笔记第16页一个类在另外一个类中创建一个对象后,该对象不能访问自已的私有变量和私有方法对于一个类的私有类变量(静态成员变量),那么在另外一个类中,也不能通过类名来操作这个私有类变量。2.共有变量和共有方法个类在另外一个类中创建一个对象后,该对象能访问自己的public变量和public方法。对于一个类的public类变量(静态成员变量),那么在另外一个类中,也能通过类名来操作这个public类变量。3.友好变量和友好方法不用private、public、protected修饰符的成员变量和方法被称为友好变量和友好方法。一个类在另外一个类中创建一个对象后,如果两个类在同一包中,该对象能访问自己的友好变量和友好方法。对于一个类的友好类变量(静态成员变量),如果两个类在同一包中,那么在另外一个类中,也能通过类名来操作这个友好类变量。4.受保护的成员变量和方法个类在另外一个类中创建一个对象后,如果两个类在同一包中,该对象能访问自己的protected变量和protected方法。对于一个类的protected类变量(静态成员变量),如果两个类在同一包中,那么在另外一个类中,也能通过类名来操作这个protected类变量。在后面学习类的继承时,将讲述protected和“友好”之间在继承方面的区别。4.8类的继承继承是一种由已有的类创建新类的机制。利用继承,可以先创建一个共有属性的一般类,根据该一般类再创建具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为。由继承而得到的类称为子类,被继承的类称为父类(超类)。1.子类在类的声明中,通过使用关键字extends来创建一个类的子类,格式如下:class子类名extends父类名....3例如:class Studentsextends People...32.子类的继承性类有可以有两种重要的成员:成员变量和方法。子类的成员中有一部分是子类自已声明定义的,另一部分是从它的父类继承的。所谓子类继承父类的成员变量作为自己的一个成员变量,就好象它们是在子类中直接声明一样,可以被子类中自己声明的任何实例方法操作所谓子类继承父类的方法作为子类中的一个方法,就象它们是在子类中直接声明一样,可以被子类中自己声明的任何实例方法调用。子类和父类在同一包中的继承性如果子类和父类在同一个包中,那么,子类继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自已的方法,继承的成员或方法的访问权限保持不变。子类和父类不在同一包中的继承性如果子类和父类不在同一个包中,那么,子类继承了父类的protected、public成员变量做为子类的成员变量,并且继承了父类的protected、public方法为子类的方法,继承的成员或方法的访问权限保持不变。如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法
《Java2 实用教程》第四版备课笔记 第 16 页 一个类在另外一个类中创建一个对象后,该对象不能访问自己的私有变量和私有方法 对于一个类的私有类变量(静态成员变量),那么在另外一个类中,也不能通过类名来操作这个私有 类变量。 2.共有变量和共有方法 一个类在另外一个类中创建一个对象后,该对象能访问自己的 public 变量和 public 方法。 对于一个类的 public 类变量(静态成员变量),那么在另外一个类中,也能通过类名来操作这个 public 类变量。 3.友好变量和友好方法 不用 private、public 、protected 修饰符的成员变量和方法被称为友好变量和友好方法。 一个类在另外一个类中创建一个对象后,如果两个类在同一包中,该对象能访问自己的友好变量和友 好方法。 对于一个类的友好类变量(静态成员变量),如果两个类在同一包中,那么在另外一个类中,也能通 过类名来操作这个友好类变量。 4.受保护的成员变量和方法 一个类在另外一个类中创建一个对象后,如果两个类在同一包中,该对象能访问自己的 protected 变量 和 protected 方法。 对于一个类的 protected 类变量(静态成员变量),如果两个类在同一包中,那么在另外一个类中,也 能通过类名来操作这个 protected 类变量。 在后面学习类的继承时,将讲述 protected 和“友好”之间在继承方面的区别。 4.8 类的继承 继承是一种由已有的类创建新类的机制。利用继承,可以先创建一个共有属性的一般类,根据该一般 类再创建具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为。 由继承而得到的类称为子类,被继承的类称为父类(超类)。 1.子类 在类的声明中,通过使用关键字 extends 来创建一个类的子类,格式如下: class 子类名 extends 父类名 {. } 例如: class Students extends People {. } 2.子类的继承性 类有可以有两种重要的成员:成员变量和方法。子类的成员中有一部分是子类自己声明定义的,另一 部分是从它的父类继承的。 所谓子类继承父类的成员变量作为自己的一个成员变量,就好象它们是在子类中直接声明一样,可以 被子类中自己声明的任何实例方法操作. 所谓子类继承父类的方法作为子类中的一个方法,就象它们是在子类中直接声明一样,可以被子类中 自己声明的任何实例方法调用。 子类和父类在同一包中的继承性 如果子类和父类在同一个包中,那么,子类继承了其父类中不是 private 的成员变量作为自己的成员变 量,并且也自然地继承了父类中不是 private 的方法作为自己的方法, 继承的成员或方法的访问权限保持不 变。 子类和父类不在同一包中的继承性 如果子类和父类不在同一个包中,那么,子类继承了父类的 protected、public 成员变量做为子类的成 员变量,并且继承了父类的 protected、public 方法为子类的方法, 继承的成员或方法的访问权限保持不变。 如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法
《Java2实用教程》第四版备课笔记第17页3.成员变量的隐藏和方法的重写子类从父类继承的成员变量,只要子类中定义的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。子类通过方法的重写可以隐藏继承的方法,方法重写是指:子类中定义一个方法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同。子类创建的一个对象,如果子类重写了父类的方法,则运行时系统调用子类重写的方法,如果子类继承了父类的方法(未重写),那么子类创建的对象也可以调用这个方法,只不过方法产生的行为和父类的相同而已。4.final关键字·final关键子可以修饰类、成员变量和方法中的参数。final类不能被继承,即不能有子类。.如果一个方法被修饰为final方法,则这个方法不能被重写。.如果一个成员变量被修饰为final的,就是常量,常量必须赋给初值,而且不能再发生变化。.如果方法的参数被修饰为final的,该参数的值不能被改变。4.9对象的上转型对象·假设B类是A类子类或间接子类,当我们用子类B创建一个对象,并把这个对象的引用放到A类的对象中时:Aa,B b=new B(O);a=b,称这个A类对象:a,是子类对象b的上转型对象特点:·对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原子类对象的一些属性和功能。。上转对象不能操作子类新增的成员变量(失掉了这部分属性);不能使用子类新增的方法(失掉了一些功能)。·上转型对象可以操作子类继承或隐藏成员变量,也可以使用子类继承的或重写的方法。。上转型对象操作子类继承或重写的方法时,就是通知对应的子类对象去调用这些方法。因此,如果子类重写了父类的某个方法后,对象的上转型对象调用这个方法时,一定是调用了这个重写的方法。·可以将对象的上转型对象再强制转换到一个子类对象,这时,该子类对象又具备了子类所有属性和功能。4.10多态性多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为当一个类有很多子类时,并且这些子类都重写了父类中的某个方法。那么当我们把子类创建的对象的引用放到一个父类的对象中时,就得到了该对象的一个上转型对象,那么这个上转的对象在调用这个方法时就可能具有多种形态。4.11abstract类和abstract方法用关键字abstract修饰的类称为abstract类(抽象类)。abstractclassA..3abstract类有如下特点:和普通的类相比,abstract类可以有abstract方法。对于abstract方法,只允许声明,不允许实现,而且不允许使用final修饰abstract方法。abstract class Aabstract int min(int x,inty);int max(int x,int y) returnx>y?x:y
《Java2 实用教程》第四版备课笔记 第 17 页 3.成员变量的隐藏和方法的重写 子类从父类继承的成员变量,只要子类中定义的成员变量和父类中的成员变量同名时,子类就隐藏了 继承的成员变量 。 子类通过方法的重写可以隐藏继承的方法 ,方法重写是指:子类中定义一个方法,并且这个方法的名 字、返回类型、参数个数和类型与从父类继承的方法完全相同。 子类创建的一个对象,如果子类重写了父类的方法,则运行时系统调用子类重写的方法,如果子类继 承了父类的方法(未重写),那么子类创建的对象也可以调用这个方法,只不过方法产生的行为和父类的 相同而已。 4. final 关键字 ⚫ final 关键子可以修饰类、成员变量和方法中的参数。 ⚫ final 类不能被继承,即不能有子类。 ⚫ 如果一个方法被修饰为 final 方法,则这个方法不能被重写。 ⚫ 如果一个成员变量被修饰为 final 的,就是常量,常量必须赋给初值,而且不能再发生变化。 ⚫ 如果方法的参数被修饰为 final 的,该参数的值不能被改变。 4.9 对象的上转型对象 ⚫ 假设 B 类是 A 类子类或间接子类,当我们用子类 B 创建一个对象,并把这个对象的引用放到 A 类 的对象中时: A a; B b=new B(); a=b; 称这个 A 类对象:a,是子类对象 b 的上转型对象. 特点: ⚫ 对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原子类对象的一些属性和功能。 ⚫ 上转对象不能操作子类新增的成员变量(失掉了这部分属性);不能使用子类新增的方法(失掉了 一些功能)。 ⚫ 上转型对象可以操作子类继承或隐藏成员变量,也可以使用子类继承的或重写的方法。 ⚫ 上转型对象操作子类继承或重写的方法时,就是通知对应的子类对象去调用这些方法。因此,如 果子类重写了父类的某个方法后,对象的上转型对象调用这个方法时,一定是调用了这个重写的 方法。 ⚫ 可以将对象的上转型对象再强制转换到一个子类对象,这时,该子类对象又具备了子类所有属性 和功能。 4.10 多态性 多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为 。 当一个类有很多子类时,并且这些子类都重写了父类中的某个方法。那么当我们把子类创建的对象的 引用放到一个父类的对象中时,就得到了该对象的一个上转型对象,那么这个上转的对象在调用这个方法 时就可能具有多种形态。 4.11 abstract 类和 abstract 方法 用关键字 abstract 修饰的类称为 abstract 类(抽象类)。 abstract class A { . } abstract 类有如下特点: 和普通的类相比,abstract 类可以有 abstract 方法。对于 abstract 方法,只允许声明,不允许实现,而 且不允许使用 final 修饰 abstract 方法。 abstract class A { abstract int min(int x,int y); int max(int x,int y) { return x>y?x:y;