四章面向对象基础课件.ppt

上传人(卖家):ziliao2023 文档编号:5769846 上传时间:2023-05-07 格式:PPT 页数:106 大小:2.27MB
下载 相关 举报
四章面向对象基础课件.ppt_第1页
第1页 / 共106页
四章面向对象基础课件.ppt_第2页
第2页 / 共106页
四章面向对象基础课件.ppt_第3页
第3页 / 共106页
四章面向对象基础课件.ppt_第4页
第4页 / 共106页
四章面向对象基础课件.ppt_第5页
第5页 / 共106页
点击查看更多>>
资源描述

1、1第第四四章章 面向对象基础面向对象基础主要内容:主要内容:v1.面向对象基本概念 v2.Java的类与对象 v3.成员变量与封装 v4.成员方法 2v 理解面向对象编程的基本概念理解面向对象编程的基本概念v 了解类的封装方法了解类的封装方法v 如何创建类和对象如何创建类和对象v 了解成员变量和成员方法的特性了解成员变量和成员方法的特性 v 学习使用学习使用OOP方式进行程序设计方式进行程序设计 教学目的和要求:教学目的和要求:3重点与难点重点与难点v重点:重点:v 类和对象的概念,及实际应用 v难点:难点:v 类的设计4v4.1 面向对象的基本概念面向对象的基本概念v4.2 类类v4.3 对

2、象对象v4.4 方法方法v4.5 访问控制修饰符访问控制修饰符v4.6 静态修饰符、静态字段和方法静态修饰符、静态字段和方法v4.7 抽象类与抽象方法抽象类与抽象方法v4.8 最终类、最终属性、最终方法与终结器最终类、最终属性、最终方法与终结器v本章小结本章小结目目 录录5上一章内容复习v一、Java 语言的分支语句 条件语句 if-else 多分支语句 switch-case v二、Java 语言的循环语句 while 语句 do-while 语句 for 语句 v三、Java 语言的跳转语句 break 语句 continue 语句v四、Java 语言的注释语句 64.1 面向对象概念v1

3、、对象v2、对象的封装v3、类和实例v4、消息v5、继承v6、对象之间的关系71、对象v对象对象(object):):面向对象技术的核心。面向对象技术的核心。v我们可以把我们所生活的真实世界我们可以把我们所生活的真实世界(Real World)看成是由许多大小不同的对象所组成的。看成是由许多大小不同的对象所组成的。v对象可以是对象可以是有生命有生命的个体,比如一个人或一只鸟。的个体,比如一个人或一只鸟。8对象对象v对象也可以是无生命无生命的个体,比如一辆汽车或一台计算机。9对象对象对象还可以是一件抽象的概念,如天气的变化或者鼠标所产生的事件,或者是一个自然数。10对象的属性和行为v环顾周围的世

4、界,任何地方都可以看到对象,例如:人、狗、汽车、计算机、桌子、椅子等等。v不管是有生命的对象还是无生命的对象,它们都有一些共同的特征共同的特征:属性和行为属性和行为。11对象的属性和行为v例如,人有姓名、年龄、身高、职业姓名、年龄、身高、职业等属性,有工工作、吃饭、运动作、吃饭、运动等行为。v而汽车有形状、颜色、品牌形状、颜色、品牌等属性,有启动、加速、启动、加速、刹车、转弯刹车、转弯等行为。12软件对象v软件对象:软件对象:现实世界中的对象在计算机中的抽象表示,即仿照现实对象而建立的。v软件对象也有状态状态和行为行为,软件对象用变量变量表示对象的状态、用方法方法来实现对象的行为。v一个软件对

5、象就是变量变量和相关方法方法的集合。软件对象软件对象 变量方法变量方法13软件对象的特性对象名:对象名:唯一标识,区别于其它对象的标志,例如car;变量:变量:对象所处的状态,例如汽车行驶的速度速度;方法:方法:通过改变对象的状态,来实现对象的行为,例如通过加速加速这个方法来改变汽车的速度;接口:接口:与外界通信的通道。注意:注意:今后,在不引起歧义的情况下,我们把软件对象简称为对象。14对象和实体的关系v对象是对现实世界中实体的抽象Why?实体太复杂啦!How?取其关心的部分!What?对象是抽象的,对象是部分的!人人抽象 152、对象的封装一个对象的变量(状态)构成这个对象的核心核心,一般

6、不将其对外公布,而是将对变量进行操作的方法方法对外公开,这样变量就被隐藏起来。这种将对象的变量置于方法的保护之下的方式称为封装封装。变量变量 方法方法 外部访问外部访问162、对象的封装例如:可以把汽车抽象成一个对象,用变量表示它当前的状态,如速度、油量、所处的位置速度、油量、所处的位置等,它的行为则可以有加速、刹车、换档加速、刹车、换档等。我们在驾驶汽车时,只需要知道如何操作相应的方法就可以了,不用考虑汽车内部是如何实现诸如提速、刹车提速、刹车等行为。17v封装封装将对象的私有数据隐藏起来,其他对象不能直接访问这些私有数据,必须通过调用该对象的相关方法来间接访问。私有数据私有数据 方法方法

7、方法方法数据数据对象对象A对象对象B公有数据公有数据18对象封装的好处通过将对象进行封装,能把对别的对象来说并不重要的对象的实现细节实现细节隐蔽起来,从而在使用一个对象时,只需知道调用它的方法而无需知道该方法是如何实现的。(1)模块化:一个对象的源代码的编写和维护独立于其他对象的源代码,而且,对象的使用也很方便;(2)信息隐蔽:每个对象都有一个公共接口使得其他对象可以与其通信,但对象的私有信息和方法私有信息和方法则由它自己维护,并且改变这些私有信息和方法不会影响到使用它的其他对象。193、类v在现实世界里,有许多同“种类”的对象。而这些同“种类”的对象可被归类归类为一个“类”。v例如,我们可将

8、世界上所有的动物归为动物类,所有的汽车归类为汽车类。动物类汽车类20对象与类class Taxi int color;int door_number;int speed;void brake()void speedUp()void slowDown()类抽象软件对象归类现实生活中的对象21类的概念v类是对多个具有相似行为相似行为的对象的一种抽象,描述了属于该类型的所有对象的性质,即类定义了所有某种类型的对象的共有的变量和方法共有的变量和方法。v在面向对象的程序设计中,类是程序的基本单元。Athlete22类与实例类与实例(instance)v汽车类有些共同的状态(汽缸排气量、排档数、颜色、轮胎

9、数)和行为(换档、开灯、刹车),但每一台汽车有个别的状态和方法可以不同于其他汽车。v你的汽车只是这世界中许多汽车中的一个。我们就称你的汽车对象汽车对象是汽车类汽车类中的一个实例实例(instance)。汽车类(class)实例(instance)new你的车23对象和类的关系v类是同类对象的集合和抽象学生A、学生B 学生类v对象是类的一个实例化学生类学生A244、消息(message)v单独一个对象一般没有什么用处,在大的应用程序中通常包括许多对象,并通过这些对象之间的交互来完成一个复杂的功能。v例如在多媒体教室教学活动中,包括教师对象教师对象、学学生对象、计算机对象、投影仪对象、扩音器对象生

10、对象、计算机对象、投影仪对象、扩音器对象以及桌子桌子等对象,通过这些对象之间的交互才能顺利完成我们的教学活动。25v通过各个对象之间的交互,程序就可以实现更高级的功能以及更复杂的行为。v软件对象是通过相互间传递消息来实现交互的。对象对象B对象对象 Amessage26v当对象A想让对象B执行某项任务时,对象A就向对象B传递消息。有时,接受消息的对象需要了解更多的信息,以明确它该做什么,这时就需要传递一些参数。v例如,要使汽车加速,必须发给它一个消息,告诉它做何种动作(即加速),以及实现这个动作所需的参数(即需要达到的速度等)。v发送消息的实质就是要调用接受消息的对象的方法,所以发送消息可分为三

11、个步骤:v(1)确定接受消息的对象;v(2)确定调用对象的哪个方法;v(3)传递此方法所需要的参数。27v 一个消息由3个元素所组成:1.消息目标对象(你的汽车)。2.执行方法的名字(换档)。3.执行方法所需用的参数(parameters)(低、高速档)。v消息的好处 1.一个对象的行为是通过它的方法来表达,所以消息传递支持所有对象之间可能的交互。2.发送消息的对象与接受消息的对象不需要在相同的程序中,或者相同的机器上。285、子类和继承v什么是子类什么是子类?v子类是作为另一个类的扩充或修正所定义的一个类。子类是作为另一个类的扩充或修正所定义的一个类。bicycle(super class)

12、Mountain bikesRacing bikesTandem bikessub class29继承的概念 什么是继承什么是继承?继承即子类可以利用父类中定义的方法和变量,就继承即子类可以利用父类中定义的方法和变量,就像它们属于子类本身一样。像它们属于子类本身一样。class Car int color_number;int door_number;int speed;push_break()add_oil()class Trash_Car extends Car double amount;fill_trash()30类层级类层级(class hierarchy)v类的继承关系不仅仅只是一

13、层关系,它可以有好几层。这种树状关系,我们称作类层级(class hierarchy)。至于层级数可依照实际需要而定。Root Class31类层级类层级(class hierarchy)v 子类继承了父类的变量及方法。如此便可重复使用父类中的变量及方法。这就是继承的好处。v 不仅如此,子类不受父类的限制,还可增加自己的变量及方法。v 例如在出租车中加了一个无线电调用方法,或是在轿车里加了一个卫星导航方法。都是按子类特殊的需要新加的。v 因此,我们可以发现越下层的类,其行为越特别。326、类(对象)之间的关系v关联关系v继承关系v聚合关系v实现关系v多态性33类(对象)之间的关联关系v关联关系

14、是最弱的关系v实现:为一个类的方法参数是另一个类的一个实例34继承关系(一般和特殊)vXX是一种XXX(java多重继承机制)35聚合关系(整体和部分)v聚合关系:XX是XXX的一部分v聚集(松耦),组合(紧密)36实现关系v实现关系是多态的基础37多态384.2 类类 类是现实世界某些对象的共同特征类是现实世界某些对象的共同特征(属性和操作属性和操作)的的表示,对象是类的实例表示,对象是类的实例。类的属性:类中所包含的各项数据,如变量或其类的属性:类中所包含的各项数据,如变量或其他类的对象,一般称为类的成员变量。他类的对象,一般称为类的成员变量。类的服务:类的服务:类中所包含的类中所包含的成

15、员方法。成员方法。394.2 类类 vJava语言中,类的来源主要有两种途径:语言中,类的来源主要有两种途径:Java类库类库 用户自定义的类用户自定义的类v所有的类都是所有的类都是Object类的子类。如果在自定义类类的子类。如果在自定义类时,没有写明父类,则默认的父类为时,没有写明父类,则默认的父类为 Object。v从严格意义上讲,从严格意义上讲,Java程序中定义的所有的类程序中定义的所有的类都是子类。都是子类。404.2.1 类的定义类的定义 类成员变量声明类成员变量声明 类方法声明类方法声明修饰符用来说明类的特殊性质,分为三种:访问控制符:public抽象类说明符:abstract

16、最终类说明符:final接口名跟在implements关键字后面,用来说明类中实现了哪个接口定义的功能和方法。接口是Java用来实现多重继 承的一种特殊机制,我们将在后面详细介绍。修饰符修饰符 class 类名类名 extends 父类父类 implements 接口名接口名41v1关于类头关于类头 修饰符修饰符 class 类名类名 extends 父类父类 implements 接口名接口名l class关键字的后面,应跟随我们所定义的类的名称。(注意不要把class写成Class)。l 父类名跟在extends 关键字后面,用来说明当前类是哪个已经存在类的子类。继承是类与类之间的一种非常

17、重要的关系。422关于类体关于类体 n类体的定义要包括类的具体内容,包括类的属类体的定义要包括类的具体内容,包括类的属性性(成员变量成员变量)与方法与方法(成员方法成员方法)。class 43类的属性为简单变量的语法如下:类的属性为简单变量的语法如下:修饰符修饰符 变量类型变量类型 变量名变量名=变量初值变量初值;变量类型和变量名是声明一个变量变量类型和变量名是声明一个变量必不可少的部分;这里的变量的类型是必不可少的部分;这里的变量的类型是基本数据类型,如基本数据类型,如 int、double 等。等。类的属性类的属性修饰符用来说明变量的特殊性质,主要分为三种:访问控制符:public静态修饰

18、符:static最终修饰符:final44类的方法类的方法Java中声明方法的语法如下:中声明方法的语法如下:修饰符修饰符 返回值类型返回值类型 方法名方法名(参数列表参数列表)throws 例外名例外名1,例外名,例外名2,/方法体:方法体:局部变量声明;局部变量声明;语句序列;语句序列;n 类的方法有两种作用:一是对类的属性进行各种操作;类的方法有两种作用:一是对类的属性进行各种操作;二是与其他类或对象进行数据交流、消息传递等操作。二是与其他类或对象进行数据交流、消息传递等操作。方法修饰符分为四种:访问控制符:public抽象修饰符:abstract静态修饰符:static最终修饰符:fi

19、nal454.2.2 用户自定义类用户自定义类n Java程序设计中,大部分精力都要放在创建称程序设计中,大部分精力都要放在创建称为为类类的的用户自定义类型用户自定义类型(user-defined type)上。)上。类也称为类也称为程序员定义的类型程序员定义的类型(programmer-defined type),每个类都含有数据和一组操作数据的方法。),每个类都含有数据和一组操作数据的方法。用户自定义类型(即类)的实例称为对象。用户自定义类型(即类)的实例称为对象。下面是一个简单的下面是一个简单的 Employee 类,类,今后我们今后我们在编写职工工资在编写职工工资系统时,有可能会用到它

20、。系统时,有可能会用到它。46class EmployeeString name;/成员变量成员变量double salary;Date hireDay;public Employee(String n,double s,int year,int month,int day)/构造方法构造方法 name=n;/职工姓名职工姓名 salary=s;/职工工资职工工资 hireDay=new GregorianCalendar(year,month-1,day);/出勤数出勤数public String getName()/方法方法1 return name;/更多的方法更多的方法 474.2.3

21、 构造方法构造方法n 定义好一个类以后,我们需要创建该类的实例。在Java中,构造一个类的实例(对象),编译器需要完成以下三件事情:(1)为对象分配内存空间;(2)初始化对象中的成员变量的值,初始值可以是缺省值,或者指定一个初始值;(3)调用类的构造方法。n 在 Java中,每个类中都至少有一个构造方法。如果没有,则编译器会自动为该类定义一个默认的构造方法。n 构造方法的作用:(1)可以保证用户正确地构造类的对象;(2)可以对对象进行初始化。48构造方法的格式构造方法的格式构造方法的语法形式如下:构造方法修饰符构造方法修饰符 方法名方法名(形式参数列表形式参数列表)throws 异常列表异常列

22、表 方法体方法体 其中,构造方法修饰符与通常的方法修饰符相同。n 一个类的构造方法可以有多个,它们都具有相同的方法名,即类名,只是参数的个数和类型会不同。编译器根据参数的个数和类型来决定调用哪个构造方法。这就是构造方法的多态。没有返回值,也没有void方法名与类名相同49缺省的构造方法缺省的构造方法n 构造方法分为缺省的构造方法(不带参数)和带参数的构造方法。n 如果类的定义中没有编写构造方法,Java语言会自动为用户提供一个缺省的构造方法。缺省的构造方法确保每个 Java类都至少有一个构造方法。n 例如在类 Employee 中,如果我们没有定义构造方法,则 Java自动提供一个缺省的构造方

23、法,如下:public Employee()/缺省的构造方法 50构造方法的例子构造方法的例子【例】下面的例子将建立雇员信息类 EmpInfoA,其中定义了一个构造方法。利用这个构造方法创建一个雇员对象,并初始化该对象,然后打印出该对象的若干信息。51构造方法举例构造方法举例public class EmpInfoA String name;/雇员的姓名雇员的姓名 String designation;/雇员的职务雇员的职务 String department;/雇员的部门雇员的部门 /带参数的构造方法带参数的构造方法 public EmpInfoA(String name,String de

24、signation,String department)this.name=name;this.designation=designation;this.department=department;void print()/成员方法成员方法 System.out.println(name+是是+department+的的+designation);public static void main(String args )/主方法,程序入口主方法,程序入口 EmpInfoA emp=new EmpInfoA(张三张三,经理经理,销售部销售部);emp.print();/调用方法调用方法 prin

25、t()例子:EmpInfoB52类成员变量的初始化类成员变量的初始化对类的成员变量进行初始化,主要有对类的成员变量进行初始化,主要有5种途径:种途径:v每种数据类型都有默认的初始值每种数据类型都有默认的初始值v可以在声明成员变量的同时赋予相可以在声明成员变量的同时赋予相应的初始值应的初始值v在类的成员方法中,为每个类成员在类的成员方法中,为每个类成员变量赋值。例如:在变量赋值。例如:在main()方法中方法中v在类的构造方法中,为每个类成员在类的构造方法中,为每个类成员变量赋值。例如:在前面的构造方变量赋值。例如:在前面的构造方法的例子中法的例子中v利用初始化块对成员变量进行初始利用初始化块对

26、成员变量进行初始化。化。初始化块初始化块是由一对花括号是由一对花括号括起括起的语句块。初始化块不能位于任何的语句块。初始化块不能位于任何方法内方法内53初始化块、构造方法初始化成员变量初始化块、构造方法初始化成员变量class Point int x,y;/成员变量成员变量 /在初始化块中初始化在初始化块中初始化 x=10;y=20;System.out.println(Point initialization block);Point(int dx,int dy)/在构造方法中初始化在构造方法中初始化 x=dx;y=dy;System.out.println(Point construct

27、method);544.3 对象对象n 类是对象的产品模板。在现实世界里,我们使用的是产品类是对象的产品模板。在现实世界里,我们使用的是产品而不是产品的图纸。同样道理,而不是产品的图纸。同样道理,Java中运行的应该是用类创中运行的应该是用类创建的实例化对象。建的实例化对象。当使用一个类创建了一个对象时,我们也当使用一个类创建了一个对象时,我们也称之为给出了这个类的一个实例。称之为给出了这个类的一个实例。n 一个典型的一个典型的Java程序会创建很多对象,它们通过消息传程序会创建很多对象,它们通过消息传递进行相互交流,共同完成程序的功能。一旦任务完成,对递进行相互交流,共同完成程序的功能。一旦

28、任务完成,对象就会被垃圾收集器收回,完成它从创建、使用到清除的生象就会被垃圾收集器收回,完成它从创建、使用到清除的生命三步曲。命三步曲。55对象的创建对象的创建n 首先必须拥有一个合适的类才能创建一个合适的对象,有首先必须拥有一个合适的类才能创建一个合适的对象,有了合适的对象才能完成合适的工作。了合适的对象才能完成合适的工作。n 对象创建的语法格式为:对象创建的语法格式为:类名类名 对象名对象名=new 类类名名(参数列表参数列表);调用类的构造方法声明对象56创建一个对象的三个步骤创建一个对象的三个步骤1、对象的声明、对象的声明格式为:类名格式为:类名 对象名对象名;例如:People zh

29、angPing;2、为声明的对象分配内存、为声明的对象分配内存new 运算符为声明的对象分配内存,然后调用类的构造方法来初始化对象。用new可以为同一个类实例化多个不同的对象,这些对象分别占用不同的内存空间,因此改变其中一个对象的状态不会影响到其他对象的状态。3、执行构造方法,进行初始化、执行构造方法,进行初始化zhangPing=new People(“20040101”);zhangYong=new People(“20040102”);/实例化另一个对象n 上面三个步骤,通常可以写成如下简洁的形式:People zhangPing=new People(“20040101”);类名类名

30、对象名对象名=new 类名类名(参数列表参数列表);57对象创建的例子对象创建的例子【例】下面的例子将建立雇员信息类 EmpInfoB。利用缺省的构造方法创建一个雇员对象。并且在主方法中初始化该对象,然后打印出该对象的若干信息。58 public class EmpInfoB String name;/雇员的姓名雇员的姓名 String designation;/雇员的职务雇员的职务 String department;/雇员的部门雇员的部门 void print()/成员方法成员方法 System.out.println(name+是是+department+的的+designation);

31、public static void main(String args)/主方法主方法 EmpInfoB emp=new EmpInfoB();/调用缺省构造方法创建对象调用缺省构造方法创建对象 emp.name=张三张三;/初始化对象初始化对象 emp emp.designation=经理经理;emp.department=销售部销售部;emp.print();/调用方法调用方法 print()例子:EmpInfoA对象创建举例对象创建举例59对象的使用对象的使用n 创建好一个对象之后,就可以使用这个对象。n (1)访问对象的成员变量:通过运算符“.”格式为:对象名格式为:对象名.成员变量名

32、成员变量名 例如,在前面对象创建的例子中:emp.name=张三;成员变量的访问也可以用new创建对象,然后直接访问,不用声明。例如:new EmpInfoB().name=张三。n (2)调用对象的方法:也是通过运算符 “.”格式为:对象名格式为:对象名.方法名方法名(参数列表参数列表)例如,在前面对象创建的例子中:emp.print();同样,我们也可以用new创建对象,然后直接调用它的方法,不用声明。例如:new EmpInfoB().print()。60对象的清除对象的清除n Java运行时系统通过垃圾收集器周期性地释放无用对象所使用的内存,完成对象的清除。Java的垃圾收集器自动扫描

33、对象的动态内存区,对正在使用的对象加标记,然后把无用对象作为垃圾收集起来并释放。垃圾收集器作为一个线程运行,当系统的内存用尽或程序中调用System.gc()要求进行垃圾收集时,垃圾收集线程与系统同步运行,否则垃圾收集器在系统空闲时异步地执行。在对象作为垃圾被收集器释放前,系统会自动调用对象的方法 finalize(),清除对象所占用的资源。n Java提供自动内存垃圾收集和处理程序。然而,在某些情况下,当一个类被破坏后,需要程序员自己执行一些垃圾收集器不能处理的特殊清理工作。这时可以在类的定义中提供用于对象清除的方法 finalize(),它的格式如下:n protected void fi

34、nalize()throws Throwable /撤销对象 614.4.1 方法概述方法概述4.4 方法方法n Java程序是由一个个类组成的,类有两个部分:属性程序是由一个个类组成的,类有两个部分:属性和方法。属性描述类是什么,和方法。属性描述类是什么,方法描述类做什么方法描述类做什么。n 方法是类的主要组成部分。在一个类中,程序的作用方法是类的主要组成部分。在一个类中,程序的作用主要体现在方法中。主要体现在方法中。n 方法是方法是Java创建的一个有名字的子程序。通常分为一创建的一个有名字的子程序。通常分为一个主方法和若干个子方法。主方法调用其他方法,其他方个主方法和若干个子方法。主方法

35、调用其他方法,其他方法之间也可以互相调用,同一个方法可以被一个或多个方法之间也可以互相调用,同一个方法可以被一个或多个方法调用任意次。法调用任意次。62Java程序的基本结构程序的基本结构 导入导入JavaJava类库;类库;定义用户类定义用户类1 1 定义类定义类1 1的若干变量;的若干变量;定义类定义类1 1的方法的方法1 1;定义类定义类1 1的方法的方法M;定义用户类定义用户类2 2 定义类定义类2 2的若干变量;的若干变量;定义类定义类2 2的方法的方法1 1;定义类定义类2 2的方法的方法N;63设计方法的原则与规律设计方法的原则与规律(1)算法中需要细化的步骤、程序中重复的代码以

36、及)算法中需要细化的步骤、程序中重复的代码以及重载父类方法都可以定义成类的方法。重载父类方法都可以定义成类的方法。(2)界面清晰,大小适中。)界面清晰,大小适中。(3)方法有两种:一种是标准方法,)方法有两种:一种是标准方法,Java API提供了提供了丰富的类和方法,这些方法提供了程序员所需的许多功丰富的类和方法,这些方法提供了程序员所需的许多功能。另一种是用户自定义的方法,以解决用户专门的需能。另一种是用户自定义的方法,以解决用户专门的需要。要。(4)Java 程序的执行是从程序的执行是从main方法开始的,调用其他方法开始的,调用其他方法后又回到方法后又回到main方法方法,在,在mai

37、n方法方法中结束整个程序的中结束整个程序的运行。运行。644.4.2 定义方法定义方法v1声明方法头声明方法头v2声明方法体声明方法体Java中声明方法的语法如下:中声明方法的语法如下:修饰符修饰符 返回值类型返回值类型 方法名方法名(参数列表参数列表)throws 例外名例外名1,例外名,例外名2,/方法体:方法体:局部变量声明;局部变量声明;语句序列;语句序列;65 1、声明方法头声明方法头n 方法头一般由方法名、参数列表、返回类型、方法修饰符和方法抛出的例外五部分组成。n 注意事项:(1)方法名可以是任何有效的标识符,命名规则与标识符命名规则相同。(2)返回类型用来指定方法返回值的类型,

38、方法最多只能返回一个值。(3)参数列表是方法的输入接口,它列出了一系列形式参数的类型和名称。对于每个行参,调用方法时必须有一个实参与之对应,而且该实参的类型必须与行参的类型一致。662、声明方法体声明方法体n 方法头定义了方法的性质,方法体则定义了方法的内容。n 注意事项:(1)在一个方法中定义另一个方法将产生语法错误;(2)方法体包含在一对大括号中,即使方法体中没有语句,一对大括号也是必不可少的。(3)最好避免局部变量“屏蔽”类的成员变量,在一个类中不使用同名的标识符就可以做到这一点;(4)方法头中如果指定了非void的返回值类型,方法体中就必须包含一条return语句保证任何情况下都有返回

39、值。67 声明方法体的例子声明方法体的例子 class Department int m_DeptNo;/部门编号部门编号 String m_DeptName;/部门名称部门名称 int m_DeptTotalEmp;/部门雇员数部门雇员数 int getDeptNo()/获取当前对象的部门号获取当前对象的部门号 return m_DeptNo;/返回这个对象的部门号返回这个对象的部门号 684.4.3 方法的调用方法的调用n Java语言中的方法按其调用方式可分为两类:语言中的方法按其调用方式可分为两类:(1)需要程序员书写专门的调用命令来调用的方法,称为)需要程序员书写专门的调用命令来调用

40、的方法,称为程序调用方法程序调用方法,例如,例如 getDeptNo();(2)运行过程中系统自动调用的方法,称为)运行过程中系统自动调用的方法,称为系统方法系统方法。例。例如如 action()、paint()、init()等。等。n 这两类方法的定义和使用原则有很大差异。这两类方法的定义和使用原则有很大差异。n 在类中调用类自身的方法,可以直接使用这个方法的名在类中调用类自身的方法,可以直接使用这个方法的名称;调用其他对象或类的方法,则需要使用该对象或类作称;调用其他对象或类的方法,则需要使用该对象或类作为前缀。为前缀。69 方法的调用方法的调用(实例实例)class Department

41、 int m_DeptNo;/部门编号部门编号 String m_DeptName;/部门名称部门名称 int m_DeptTotalEmp;/部门雇员数部门雇员数 int getDeptNo()/获取当前对象的部门号获取当前对象的部门号 return m_DeptNo;/返回这个对象的部门号返回这个对象的部门号 public static void main(String args)Department dep=new Department();dep.m_DeptNo=100;System.out.println(部门号为部门号为:+dep.getDeptNo();70回 顾v4.5 访问

42、控制访问控制修饰修饰符:符:public,protected,privatev4.6 静态修饰符静态修饰符 staticv4.7 抽象类与抽象方法抽象类与抽象方法 abstract71 方法的重载方法的重载n 同一个类中的多个方法具有相同的名字,但这些方法具有同一个类中的多个方法具有相同的名字,但这些方法具有不同的参数列表,即形参的数量或类型不能完全相同。方法调不同的参数列表,即形参的数量或类型不能完全相同。方法调用的时候,编译器会根据实参的类型和个数来决定具体调用其用的时候,编译器会根据实参的类型和个数来决定具体调用其中哪个方法。中哪个方法。n 方法重载可以简化程序的编写,用户只要记住一个方

43、法名,方法重载可以简化程序的编写,用户只要记住一个方法名,通过传递不同的实参就可以调用不同的方法来完成不同的功能。通过传递不同的实参就可以调用不同的方法来完成不同的功能。n 构造方法也可以重载,其目的是使对象具有不同的初始值,构造方法也可以重载,其目的是使对象具有不同的初始值,为用户创建不同初始值的对象提供方便。为用户创建不同初始值的对象提供方便。72class Overloading void get(int i)System.out.println(get one int data:i=+i);void get(int x,int y)System.out.println(get two

44、int datas:x=+x+y=+y);void get(double d)System.out.println(get one double data:d=+d);void get(String s)System.out.println(get a string:s=+s);public static void main(String args)Overloading mo=new Overloading();mo.get(1);mo.get(2,3);mo.get(4.5);mo.get(a string);734.4.4 Java API 中的方法中的方法 n 在Java中,Java

45、API(Application Program Interface,也称为Java类库)提供了丰富的类和方法,可以执行常见的算术运算、字符、字符串、输入输出、错误检查等操作。n 1、Math 类的方法类的方法n 2、Math 类方法的调用类方法的调用741、Math类的方法类的方法 方法方法说明说明方法方法说明说明abs(x)x的绝对值的绝对值max(x,y)取取x和和y中较大中较大者者ceil(x)不不小于小于x的最小整数的最小整数(向向上取整上取整)min(x,y)取取x和和y中较小中较小者者cos(x)x的余弦函数值的余弦函数值(x以弧度以弧度为单位为单位)pow(x,y)x的的y次幂次

46、幂exp(x)指数方法指数方法e的的x次幂次幂sin(x)x的正弦函数值的正弦函数值 floor(x)不大于不大于x的最大整数的最大整数(向向下取整下取整)sqrt(x)x的平方根的平方根log(x)x的自然对数的自然对数(以以e为底为底)752、Math类类方法的调用方法的调用 n 例如,要计算并且打印出例如,要计算并且打印出900的平方根,需要调用的平方根,需要调用Math类的类的方法如下:方法如下:System.out.println(Math.sqrt(900);注意:所有Math类方法的调用必须在方法名前加上类名Math和点“.”运算符。764.5 访问控制访问控制修饰修饰符符n J

47、ava新推出新推出“访问控制修饰符访问控制修饰符”的概念,允许的概念,允许类创建者类创建者声声明哪些东西是明哪些东西是类使用者类使用者可以使用的,哪些是不可以使用的。可以使用的,哪些是不可以使用的。n 每个访问控制修饰符都代表一种访问每个访问控制修饰符都代表一种访问控制控制权限。权限。n 这些访问这些访问控制控制权限的级别在权限的级别在“最大最大权限权限”到到“最小最小权限权限”范围之间,分别包括:范围之间,分别包括:public protected default(无修饰符)(无修饰符)private77n为类指定访问权限的格式:为类指定访问权限的格式:public class 类名;n如果

48、一个类没有指定为如果一个类没有指定为public,则该类的访问权限则该类的访问权限就是缺省的。就是缺省的。一、类的访问控制权限(2种)public:公共访问权限default:缺省访问权限78n为类中的属性和方法指定访问权限的格式:为类中的属性和方法指定访问权限的格式:public|private|protected 数据类型 变量名;public|private|protected 返回类型 方法名(参数列表);n如果一个如果一个属性或方法属性或方法没有指定访问控制修饰符没有指定访问控制修饰符,则则该该属性或方法属性或方法的访问权限就是缺省的。的访问权限就是缺省的。二、属性和方法的访问控制权

49、限(4种)public:公共访问权限default:缺省访问权限protected:保护访问权限private:私有访问权限794.5.1 公共访问控制符公共访问控制符 publicn 类的访问控制符只有一个:public。一个类被声明为公共类,表明它可以被所有的其他类所访问和引用。n 注意:这里的类可以被访问和引用不代表类中的成员也可以被访问。只有当这些成员也是公共的,才可以访问。例如:要进入二楼的一个房间,必须首先保证这栋楼的大门是开着的,而且这个房间的门也开着,才可以进入其中。804.5.2 缺省访问控制权限缺省访问控制权限n 如果一个类前面没有访问控制符,则说明它具有缺省的访问控制权限

50、。n 缺省的访问控制权限规定类只能被同一个包包中的类访问和引用,而不可以被其他包中的类使用。418包1包2包3包n类default814.5.3 私有访问控制符私有访问控制符 private n用private修饰的属性或方法只能被该类自身类自身所访问和修改,而不能被任何其他的类,包括该类的子类,来访问和引用。属性1n方法1mprivate 父类属性1n方法1m子类属性1n方法1m其他类82class Employeeprivate String name;/成员变量成员变量,私有访问权限,私有访问权限private double salary;public Employee(String n

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(四章面向对象基础课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|