《Java语言》课件第2章Java与面向对象

上传人:Ron****an 文档编号:142921140 上传时间:2020-08-24 格式:PPT 页数:76 大小:872KB
返回 下载 相关 举报
《Java语言》课件第2章Java与面向对象_第1页
第1页 / 共76页
《Java语言》课件第2章Java与面向对象_第2页
第2页 / 共76页
《Java语言》课件第2章Java与面向对象_第3页
第3页 / 共76页
《Java语言》课件第2章Java与面向对象_第4页
第4页 / 共76页
《Java语言》课件第2章Java与面向对象_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《《Java语言》课件第2章Java与面向对象》由会员分享,可在线阅读,更多相关《《Java语言》课件第2章Java与面向对象(76页珍藏版)》请在金锄头文库上搜索。

1、第2章 Java与面向对象,广东工业大学计算机学院,2,面向对象程序设计基础,面向对象程序设计(OOP)围绕的几个主要概念: 抽象数据类型(封装) 类 继承性 多态性,传统的过程式语言,如C,由于它的设计方式与客观世界之间存在差距,使得程序的编写首先必须定义所要实现的功能,然后确定需采取的步骤,即所谓的“逐步求精”的结构程序设计方法。实际开发中,当程序大到一定程度的时候,其调试和维护就变得很困难,使用过程式语言就会感到力不从心了。,前面我们说过, Java是一种纯面向对象的编程语言,而面向对象程序设计是近些年来才发展起来的程序设计方法,其基本思想是将现实世界中的事物抽象为对象,抽象出来的对象被

2、赋给相应的状态和行为,通过对消息的响应完成一定的任务。,在现实生活中,任何事物都可以被认为是对象(Object),如: 电梯 街头的自动售货机 街上跑的汽车 自行车 人 ,上面列举的对象都有两个共性: (1) 具有一定的状态和特性。比如汽车有轮胎、发动机、方向盘等。 (2) 每个对象对应一组特定的操作。比如汽车需保养、加油、清洗等。 面向对象程序设计方法就是把现实世界中对象的状态和操作抽象为程序设计语言中的对象,达到二者的统一。,广东工业大学计算机学院,7,面向对象的概念,class Car int color_number; int door_number; int speed; void

3、brake() ; void speedUp() ; void slowDown() ; ,数据抽象类型,广东工业大学计算机学院,8,什么是类 类是描述对象的“基本原型”,它定义一种对象所拥有的数据和能完成的操作,在面向对象的程序设计中,类是面向对象程序设计的基本单元。,程序中的对象是类的一个实例,是一个软件单元,它由一组结构化的数据和在其上的一组操作构成。,面向对象的概念(续),广东工业大学计算机学院,9,变量:对象所知道的状态 方法:对象的功能单元 消息: 软件对象通过相互间传递消息来相互作用和通信。 一个消息由三部分组成: 1. 接受消息的对象 2. 要完成方法的名字 3. 方法需要的参

4、数 在java.lang.awt.event 包中详细定义了各种常用的事件。,message,面向对象的概念(续),广东工业大学计算机学院,10,在程序中操作对象是类的一个实例,即对象 创建一个对象 Hello hobj = new Hello(); 调用方法 hobj.showString(“Hello World!”),public class Hello ,private String s;,public void showString () System.out.println(s); public void changeString(String str) s=str; return

5、 s; ,面向对象的概念 举例,广东工业大学计算机学院,11,封装把对象的所有组成部分组合在一起。实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。,封装定义程序如何引用对象的数据?,面向对象的概念封装,广东工业大学计算机学院,12,子类:对另一个类的扩充或修正而得到的类,与父类之间是一种特殊与一般的关系。,(super class),subclass,面向对象的概念子类,广东工业大学计算机学院,13,即“is - a”关系。子类利用父类中定义的方法和变量就像它们属于子类本身一样.,public class Car int color_number; int door_nu

6、mber; int speed; push_break( ) ; add_oil( ) ; ,public class Trash_Car extends Car double amount; void fill_trash( ) ; ,面向对象的概念继承,广东工业大学计算机学院,14,面向对象的概念继承(续),方法的覆盖:在子类中重新定义父类中已有的方法,class Car int color_number; int door_number; int speed; void push_break() speed = 0; ,class Trash_Car extends Car double

7、 amount; void fill_trash() void push_break() speed = speed - 10; ,广东工业大学计算机学院,15,面向对象的概念多态性,方法的重载(多态性) 在同一个类中有可能出现两个或多个方法同名的情况,但它们有不同的参数。,类,void show(int int_num),void show(double double_num),void show(int int_ um, float float_um),123,1.23,123,1.23,注意:如果被重载的两个方法仅仅是返回类型不同,而参数完全相同的话,将不能通过编译。,广东工业大学计算机

8、学院,16,类之间的关系(续),依赖: 描述了一个事物的规格说明的变化可能会影响到使用它的另一个事物(反之不一定)。例如赛车手与赛车的关系。 聚合:也叫关联,描述的是一个整体和组成部分的关系,即“has a”关系,意思是整体对象拥有部分对象,例如学校和学生的关系。 继承:即“is a”关系。 实现:指的是一个类元描述了另一个类元保证实现的契约。对类来说,就是一个类实现了一个接口。,广东工业大学计算机学院,17,学习JAVA面向对象编程更好方法,开源项目 ,对象和类,构造方法 重载方法 覆盖方法 访问控制 static变量,方法和初始代码块 this引用的用途 final类,方法和变量 abst

9、ract类和方法,接口 解释如何以及何时使用内部类 降级,以及如何把Java程序从JDK的低版本升级到高版本,interface MyIFC void method1(); void method1(int a); abstract class Base public void method1() System.out.println(hi); protected abstract void method2(); class Sub extends Base implements MyIFC private int a; private static int b; public static

10、final int C=1; Sub()this(-1); Sub(int a)this.a=a; public void method1()a+; public void method1(int a)this.a=a; public void method2()a-; public static void method3()b+; ,构造方法,声明构造方法的语法规则 重载构造方法,参见Employee.java 默认构造方法, 参见Sample1.java 子类调用父类的构造方法,参见Son.java,构造方法的语法规则,一个新对象的初始化的最终步骤是去调用对象的构造方法。 构造方法必须满足

11、以下条件: 方法名必须与类名称完全相匹配; 不要声明返回类型; 不能被static、final、synchronized、abstract、native修饰。 public class Sample int x; public Sample() / No-arg constructor x=1; public Sample(int x) /int-arg constructor this.x=x; ,构造方法的语法规则,public class Sample int x; public void Sample() x=1; public static void main(String args

12、) Sample s=new Sample(); System.out.println(s.x); ,重载构造方法,public class Employee private String name; private int salary; public Employee(String n, int s) name = n; salary = s; public Employee(String n) this(n, 0); public Employee() this( Unknown ); ,Employee tom=new Employee(Tom,1000); Employee jack

13、=new Employee(Jack); Employee someone=new Employee();,默认构造方法,默认构造方法是没有参数的构造方法,你可以显式定义类的默认构造方法。 为了保证每个类至少有一个构造方法,如果定义的类中一个构造方法也没有写,Java将自动提供一个默认构造方法。该构造方法没有参数,用public 修饰,而且方法体为空。格式如下: public ClassName() 只要类中显式定义了一个或多个构造方法,而且所有显式定义的构造方法都带参数,那么将失去默认构造方法。,默认构造方法,public class Sample1 public class Sample2

14、 public Sample2(int a)System.out.println(“My Constructor”); public class Sample3 public Sample3()System.out.println(“My Default Constructor”); ,Sample1 s1=new Sample1(); Sample2 s2=new Sample2(); /非法 Sample2 s22=new Sample2(1); Sample3 s3=new Sample3();,在构造子类对象时,JVM会先调用父类的构造方法 子类构造方法中通过super语句调用父类构造

15、方法 如果子类构造方法中没有通过super语句调用父类构造方法,那么JVM会调用父类的默认构造方法,如果不存在默认构造方法,将导致编译错误,子类调用父类构造方法,class Father String fatherName; Father() this.fatherName=“未知; Father(String fatherName) this.fatherName=fatherName; class Son extends Father String sonName; Son(String sonName) this.sonName=sonName; Son(String sonName,S

16、tring fatherName) super(fatherName); this.sonName=sonName; ,子类调用父类构造方法,Son son1=new Son(王小毛,王大毛); Son son2=new Son(张三); System.out.println(son1.sonName); System.out.println(son1.fatherName); System.out.println(son2.sonName); System.out.println(son2.fatherName);,修饰符,修饰符的类型 访问控制修饰符(public,protected,private) static,abstract,final 修饰符的修饰内容(类,方法,变量) 修饰符的作用 使用修饰符的限制,成员变量

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号