面向对象类的继承和内部类.ppt

上传人:sccc 文档编号:5674305 上传时间:2023-08-08 格式:PPT 页数:23 大小:304.51KB
返回 下载 相关 举报
面向对象类的继承和内部类.ppt_第1页
第1页 / 共23页
面向对象类的继承和内部类.ppt_第2页
第2页 / 共23页
面向对象类的继承和内部类.ppt_第3页
第3页 / 共23页
面向对象类的继承和内部类.ppt_第4页
第4页 / 共23页
面向对象类的继承和内部类.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《面向对象类的继承和内部类.ppt》由会员分享,可在线阅读,更多相关《面向对象类的继承和内部类.ppt(23页珍藏版)》请在三一办公上搜索。

1、面向对象(类的继承和内部类),上讲回顾,初步让学生了解类和对象的概念掌握java中类和对象的创建方式构造函数掌握方法的重载,本讲内容,掌握类的继承this与super的引用掌握static/final关键字用法内部类,继承,已有类,属性和行为,允许重用已有类来构造新类的特性,继承(inheritance),什么是继承(派生)?子类自动的拥有父类中定义的属性和方法.例如:猫生猫 狗生狗大象生大象 概念:父类、基类、超类、子类、派生类、衍生类、类继承、类派生,允许通过已有类构造新类,实现了代码的重用,在父类中定义相同的属性和方法,所有的子类无须重新定义这些属性和方法,如:公共汽车、出租车、货车等都

2、是汽车,但它们是不同的汽车,除了具有汽车的共性外,它们还具有自已的特点,我可以写一个汽车的类,可以通过继承父类的汽车的所有共性。,继承,子类可以继承父类的一些属性和方法,那么它到底从父类继承了哪些东西呢?当子类和父类位于同一包中,子类继承父类中 public、protected和默认访问级别的成员变量和成员方法。当子类和父类不在同一包中:子类继承父类中public、protected访问级别的成员变量和成员方法。,类继承的实现,extends关键字用于继承类。声明一个继承父类的类的通常形式如下:class subclass-name extends superclass-name/类体 没有e

3、xtends,默认父类为Object只能有一个父类,即单继承,注意,被继承的类称为父类继承父类的类称为子类执行继承时,子类将获得父类的属性,并具有自身特有的属性。,类继承的实现,class Person public String name;public int age;public void getInfo(),class Student public String name;public int age;public String school;public void getInfo()public String getSchool(),继承实现示例,class Person public

4、 String name;public int age;public void getInfo(),class Student extends Person public String school;public String getSchool(),class Worker extends Person public String Company;public String getComany(),示例:Student.java,示例二,Person是父类;定义了name/age两个属性,getInfo()方法Student/Worder分别是其的两个子类,除了已有的name/age/get

5、Info以外,还有自己的特有的属性和方法,继承实例,例如:动物类派生两栖动物类和哺乳动物类图形类派生出矩形类和圆类等等猫类派生出山猫、家猫见实例:exp1.java,继承的特点,通过继承可以简化类的定义,实现代码的重用JAVA只支持单继承,不允许多重继承。可以有多层继承;类B继承类A;类C继承类B;子类继承父类的成员变量和成员方法,但不继承父类的构造函数在子类的构造方法中可用super(参数列表)调用父类的构造方法。如果子类的构造方法中没有显示的调用父类构造方法,也没有使用this关键字调用自己的其他构造方法,那么在产生子类实例对象时JVM自动调用父类无参数的构造方法。,多层继承形成类层次结构

6、,Person 类,Student 类,Worker类,小学生 类,中学生 类,大学生 类,IT业 工人类,其他业 工人类,IT-java-类,IT-C-类,IT业 其他 类,在一个分支上,位于下层的子类会继承上层所有直接或间接父类的属性和方法。,this引用,this的作用1、区分类成员属性和方法的形参.例:class Person String name;/名字 public Person(String name)this.name=name;2、this关键字通常用于return语句中返回当前对象的引用。见例子:Leaf.java3、在构造方法中使用this来调用其它构造方法,关键字 t

7、his 与对象关联它用于指示当前对象,this引用,class Person String name;/名字int age;/年龄public Person(String aa)this.name=aa;System.out.println(name);public Person(String aa,int age)this.name=aa;this.age=age;System.out.println(name);System.out.println(age);public Person()this(张三,22);/this(李四);/如果该语句不注释会不会有错呢?,class Studen

8、t11 public static void main(String args)Person p=new Person();,在构造方法中使用this,使用格式:this(参数列表)说明:构造方法的第一个语句,否则会收到编译程序的报错信息在构造方法中用this只能调用另外一个构造方法,不能调用两个。super的使用 访问直接基类中被隐藏的数据成员 调用直接基类中被重写的成员方法 调用直接基类的构造方法,参考示例:Flower.java,见例:Student.java,static 关键字,static 可以用于修饰成员变量和成员方法以及类。静态变量:所有此类实例可共享它,即在类装载时,只分配一

9、块存储空间,所有此类的对象都可以操控此块存储空间。直接可通过类名来访问该变量。静态方法:通常在一个类中定义一个方法为static,那就是说无需实例化本类的对象,可直接通过类名来调用此方法。静态的代码块:当Java虚拟机加载类时,就会执行该代码块。,static静态成员,定义静态成员变量:static 类型 成员变量名;或 static 类型 成员方法名;在类载入时创建可以被各实例对象共享可直接通过“类名.静态成员变量名”的方式访问类的变量,可直接通过”类名.静态成员方法名”访问类的方法.注意:不能把方法体内变量声明为静态。例如class Personstatic int age=15;stat

10、ic void shout(),static关键字确定的变量、方法、类将在该类被加载的时候创建且共享它,public class TestStatic System.out.println(Person.age);Person.shout();,理解static,定义一个类成员,通常情况下类成员必须通过它的类的对象访问.如果一个成员被声明为static,这就能够在它的类的任何对象创建之前被访问;方法和变量都可声明为static声明为static的变量实质就是全局变量.,class StaticDemostatic int a=42;static int b=99;static void cal

11、lme()System.out.println(“a=”+a);class StaticByName public static void main(String args)StaticDemo.callme();System.out.println(“b=”+StaticDemo.b);,final,final可以用来修饰成员,方法,类。修饰成员:变量一旦被初始化便不可改变,相当于定义了一常量。修饰方法:final方法是在子类中不能被覆盖的方法 修饰类:final类是无法被任何类继承的。,FinalTest.java,内部类(nested classes),将一个类定义置入另一个类定义中就叫

12、作“内部类”。类中定义的内部类特点1、内部类可以直接访问外部类的成员,反之则不行。2、内部类可以声明为private或protected。3、内部类成员只有在内部类的范围之类是有效的。private内部类调用方式:在外部类的方法中实例化内部类,并调用内部类的方法,将内部类声明为非private的就可以通过外部类创建一个内部类的对象引用,并可通过该引用调用内部类自己定义的方法。,例如:Outer.Inner in=outer.new Inner();in.display();,class Outerint outer_i=100;void test()Inner in=new Inner();i

13、n.display();class Inner void display()System.out.println(display:outer_i=+outer_i);,内部类 类中定义的内部类,1、Inner类是在Outer内部定义的2、在Inner类中可以访问Outer类中的成员属性outer_i;3、在Outer类中可在方法test()中创建内部类Inner的对象;4、通过Outer类的对象调用test()方法最终就可以执行Inner类中的方法,例子:InnerClassDemo.java,小结,掌握类的继承掌握类的this/super/static关键字的用法掌握final关键字用法了解内部类的概念,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号