- 13
- 0
- 约1.21万字
- 约 49页
- 2016-12-03 发布于河南
- 举报
第6讲 Jav类的特性
主要内容 Java类和对象的概念 (oop思想-?内功 语言?外功) 类的结构(包含属性和行为)以及如何生成对象 类的3大特性:封装,继承,多态 打包的使用 常用方法:包装类、equals、toString等 this引用 每个方法内部,都有一个this引用变量,指向调用该方法的对象。一般情况下,成员前加不加this都行,这就好像同一个学校的学生在谈论自己学校的事时,不必说学校名字一样,当然为了强调,可以加上“咱们学校”的前缀 但在有些情况下,非得用this关键字不可 1、类成员变量和方法参数名字相同(这有利于程序的可读性,为了区分,使用this关键字) Class Date { int year; public void setDate(int year) { this.year=year;} } this引用(续) 2、构造方法是在对象产生时由Java自动调用的,我们在程序中不能象调用其它方法一样去调用构造方法,但可以在一个构造方法中用this(参数表)的形式来调用另一个构造方法,有时可大大简化程序 注意: this(参数表)必须是使用它的方法的 第一条语句 面向对象编程的特性 我们已经了解了类和对象,现在我们来了解一下面向对象编程的一些特性: 继承、封装、多态 面向对象编程的三大特点 封装性(Encapsulation):实现模块化(modularity)和信息隐藏(information hiding),有利于程序的可移植性。 继承性(Inheritance):可以定义一套对象之间的层次关系,下层的对象继承了上层对象的特性,籍此可以实现程序代码重用,并且有效的组织整个程序。 多态性(Polymorphism):根据程序运行时对象的实例类型来选择不同的信息处理。提高程序的可读性和灵活性。 继承 继承举例 继承 被继承的类称为父类 继承父类的类称为子类 执行继承时,子类将获得父类的属性,并具有自身特有的属性。 extends关键字 extends关键字用于继承类。 声明一个继承父类的类的通常形式如下: class subclass-name extends superclass-name { //类体 } Java中所有类都由Object类派生而来,若没有extends,则默认父类为Object(在lang包中) 每个类只能有一个直接父类,即单继承, Java中用接口实现多继承 直接继承和间接继承 直接继承 class A{ } class B extends A //A是B的直接父类 { } 间接继承 class A{ } class B extends A { } class C extends B //A是C的间接父类 { } 继承的例子 成员变量的隐藏 子类通过隐藏父类的成员变量和重写父类的方法,可以把父类的状态和行为改变为自己的状态和行为。 class A{ int x; void setX(){ x = 0; } } class B extends A //A是B的直接父类 { int x; //隐藏了父类中的变量X void setX(){ //重写了父类中的方法setX() x = 5; } } super关键字 Java提供一个super引用变量表示父类 super关键字用来解决如何直接访问或初始化从父类继承来的成员。 在写子类无参数构造方法时,不用显式调用父类无参数构造方法,系统会自动提供 但在写子类带参数构造方法时,应在第一句写super(参数)来初始化父类成员变量 见下页 Super的例子一 class Father { int x; Father(){ x = 3; System.out.println(“Calling Father : x=”+x); } void doSomething(){ System.out.println(“Calling Father.doSomething”); } } 继承示例 class Person { String name; //姓名 int age; //年龄 Person() { name = ”Tom”; age = 18; } Person(String n, int a) { name = n; age = a; } public String getName() { return name; } public int getAge(){ return age;}} 继承的进
您可能关注的文档
- 第5章 面向对编程基础.ppt
- struts总.ppt
- 《java语言序设计》第4章.ppt
- 第四章 面向对高级编程.ppt
- 第3章 Serlet编程-1.ppt
- 4-Validtor验证框架.ppt
- 任务19学生基信息管理程序设计.ppt
- 第01章 J2E基础.ppt
- 高中英语必修四nit1 Learning about language.ppt
- 02-类图-对图-包图.ppt
- 2026年沪教版六年级下册第四单元“教学评一体”教学设计:百分数.docx
- 2026年全球氢燃料电池汽车智能网联与自动驾驶技术融合.docx
- 2026年量子计算助力药物设计智能化趋势.docx
- 2026年机械制造行业工业互联网平台建设及应用趋势研究报告.docx
- 2026年苏教版三年级下册第二单元“教学评一体”教学设计:千米和吨.docx
- 2026年云计算行业市场规模预测及发展潜力研究报告.docx
- 2026年桑蚕养殖产业升级路径与趋势报告.docx
- 2026年生物医药研发投入与市场规模前瞻分析报告.docx
- 2026年生物医药行业政策环境及2026年市场规模预测报告.docx
- 2026年新能源光伏发电站并网协议签订指南报告[001].docx
原创力文档

文档评论(0)