第三章-方法、方法重载、构造方法ppt课件.ppt

上传人:飞****2 文档编号:29293988 上传时间:2022-07-29 格式:PPT 页数:34 大小:1.64MB
返回 下载 相关 举报
第三章-方法、方法重载、构造方法ppt课件.ppt_第1页
第1页 / 共34页
第三章-方法、方法重载、构造方法ppt课件.ppt_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《第三章-方法、方法重载、构造方法ppt课件.ppt》由会员分享,可在线阅读,更多相关《第三章-方法、方法重载、构造方法ppt课件.ppt(34页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、类的方法类的方法 方法:是类或对象的行为特征的抽象方法:是类或对象的行为特征的抽象, ,方法是一个命名的方法是一个命名的代码块,如同数学中的函数代码块,如同数学中的函数 作用:方法只能完成一个特定的功能,它可以把程序中的作用:方法只能完成一个特定的功能,它可以把程序中的特定功能组合到一起,便于多次使用。也使程序变得清晰。特定功能组合到一起,便于多次使用。也使程序变得清晰。 声明格式:声明格式: 修饰符修饰符 返回值类型返回值类型 方法名方法名(形参列表形参列表) 局部变量声明局部变量声明 执行语句执行语句 类的方法类的方法 声明格式:声明格式: 修饰符修饰符 返回值类型返回值类型 方法名方法名

2、(形参列表形参列表) 局部变量声明局部变量声明执行语句执行语句 返回值类型:返回值类型:基本数据类型或引用数据类型基本数据类型或引用数据类型方法名方法名: :符合标识符的命名规则符合标识符的命名规则 方法名后必需加方法名后必需加()()形参:形参:接收方法调用者传递过来的数据,可以是基本数据类型或引用接收方法调用者传递过来的数据,可以是基本数据类型或引用 数据类型,多个参数以数据类型,多个参数以, ,号隔开号隔开 实参实参: :调用方法时实际传递给方法的参数调用方法时实际传递给方法的参数方法返回值:方法返回值:用用return return 语句,把一个确定的值返回给调用者,语句,把一个确定的

3、值返回给调用者,return return 的返回值的返回值 类型必需与声明的返回值类型匹配,无返回类型必需与声明的返回值类型匹配,无返回 值用值用voidvoid关键字关键字 值传递值传递 JavaJava中进行赋值操作或方法调用中传递参数时,遵循值传中进行赋值操作或方法调用中传递参数时,遵循值传递的原则:递的原则: 基本类型数据传递的是该数据的值本身基本类型数据传递的是该数据的值本身 引用类型数据传递的是对对象的引用(句柄),而非对象引用类型数据传递的是对对象的引用(句柄),而非对象本身本身类的方法类的方法 1 1、写出狮子对象的、写出狮子对象的“跑跑”方法、方法、 “ “叫叫”方法方法电

4、动玩具狮子电动玩具狮子属性:属性:颜色:黄色颜色:黄色行为:行为:跑跑叫叫按此按钮,按此按钮,狮子开始叫狮子开始叫按此按钮,按此按钮,狮子开始跑狮子开始跑类的方法示例类的方法示例AutoLionAutoLion类代码实现类代码实现public class AutoLion String color = 黄色黄色; public void run() System.out.println(正在以正在以0.1米米/秒的速度向前奔跑秒的速度向前奔跑); public String bark() String sound = 大声吼叫大声吼叫 ; return sound; 方法体方法体返回类型返回类

5、型方法名称方法名称如何定义类的方法如何定义类的方法类的方法定义类的某种行为(或功能)类的方法定义类的某种行为(或功能) 方法的定义方法的定义 方法的名称方法的名称 方法的主体方法的主体 方法返回的数据类型方法返回的数据类型 定义类的方法定义类的方法public 返回值类型返回值类型 方法名方法名() /这里编写方法的主体这里编写方法的主体步骤一:定义方步骤一:定义方法名以及返回值法名以及返回值步骤二:编写方步骤二:编写方法体法体方法的返回值方法的返回值 两种情况两种情况 如果方法具有返回值,方法中必须使用关键字如果方法具有返回值,方法中必须使用关键字returnreturn返回该值,返回该值,

6、返回类型为该返回值的类型返回类型为该返回值的类型 如果方法没有返回值,返回类型为如果方法没有返回值,返回类型为voidvoidpublic class Student String name = 张三张三; public void getName() return name; 返回类型要匹配返回类型要匹配return 表达式;表达式;编译错误编译错误作用:作用: 跳出方法跳出方法给出结果给出结果方法调用方法调用 方法是个方法是个“黑匣子黑匣子”,完成某个特定的应用程序功能,并,完成某个特定的应用程序功能,并返回结果返回结果 方法调用:执行方法中包含的语句方法调用:执行方法中包含的语句 对象名对

7、象名.方法名方法名();2、小明过生日,爸爸送他一个电动狮子玩具,、小明过生日,爸爸送他一个电动狮子玩具,编程测试这个狮子能否正常工作编程测试这个狮子能否正常工作 方法调用方法调用public class AutoLion String color = 黄色黄色; /颜色颜色 /*跑跑*/ public void run() System.out.println(正在以正在以0.1米米/秒的速度向前奔跑。秒的速度向前奔跑。); /*叫叫*/ public String bark() String sound = 大声吼叫大声吼叫 ; return sound; /*获得颜色获得颜色*/ pub

8、lic String getColor() return color; /*显示狮子特性显示狮子特性*/ public String showLion() return 这是一个这是一个 + getColor() + 的玩具狮子的玩具狮子!; public class TestLion public static void main(String args) AutoLion lion = new AutoLion(); System.out.println(lion.showLion(); lion.run(); System.out.println(lion.bark(); 在类的方法中调

9、用在类的方法中调用该类另一个方法该类另一个方法演示示例演示示例2:方法调用:方法调用在在main()方法中方法中调用类的方法调用类的方法 方法调用小结 方法之间允许相互调用,不需要知道方法的具体实现,提高了效率 情情 况况 举举 例例Student类的方法类的方法a( )调用调用Student类的方法类的方法b( ),直接,直接调用调用public voidpublic void a( ) a( ) b( ); / b( ); /调用调用b( )b( ) Student类的方法类的方法a( )调用调用Teacher类的方法类的方法b( ),先,先创建类对象,然后使用创建类对象,然后使用“.”调

10、用调用public voidpublic void a( ) a( ) Teacher t = Teacher t = newnew Teacher( ); Teacher( ); t.b( ); / t.b( ); /调用调用TeacherTeacher类的类的b()b() public class Studentpublic void showInfo() return 我是一名学生我是一名学生; 方法的返回类型为方法的返回类型为void,方法中不能有,方法中不能有return返回值!返回值!常见错误常见错误4-14-1public class Studentpublic double g

11、etInfo() double weight = 95.5; double height = 1.69; return weight, height; 方法不能返回多个值方法不能返回多个值!常见错误常见错误4-24-2public class Studentpublic String showInfo()return 我是一名学生我是一名学生;public double getInfo() double weight = 95.5; double height = 1.69; return weight; 多个方法不能相互嵌套定义多个方法不能相互嵌套定义!常见错误常见错误4-34-3publi

12、c class Studentpublic String showInfo()return 我是一名学生我是一名学生;public double getInfo()double weight = 95.5; double height = 1.69; return weight;public class Studentint age=20;if(age20) System.out.println(年龄不符合入学要求!年龄不符合入学要求!); public void showInfo()return 我是一名学生我是一名学生;不能在方法外部直接写程序逻辑代码不能在方法外部直接写程序逻辑代码!常见

13、错误常见错误4-44-4小结1 编写电池类(Cell):具有品牌属性,可以续电 编写测试类(TestCell)电池类电池类属性:属性:品牌品牌行为:行为:续电续电成员变量和局部变量成员变量和局部变量2 2-1-1 变量声明的位置决定变量作用域变量声明的位置决定变量作用域 变量作用域确定可在程序中按变量名访问该变量的区域变量作用域确定可在程序中按变量名访问该变量的区域for(int i = 0, a = 0; i b?a:b; double max(double a,double b)return ab?a:b; Math类中两个类中两个max方法,满足重载条方法,满足重载条件件生活中的方法重载

14、生活中的方法重载类类方法方法方法参数方法参数方法实现方法实现司机司机 轿车轿车 巴士巴士 火车火车 驾驶驾驶启动、行驶、启动、行驶、等待乘客上车、启动、等待乘客上车、启动、行驶、到站停车、行驶、到站停车、正点发车、行驶、正点发车、行驶、到站停车、到站停车、如果用代码实现,我们需要三个方法,这些方法的方法名称如果用代码实现,我们需要三个方法,这些方法的方法名称相同,参数类型不同相同,参数类型不同 方法重载的代码示例方法重载的代码示例 1 1 方法重载并不陌生方法重载并不陌生 java.io.PrintStreamjava.io.PrintStream类的类的printlnprintln方法能够打

15、印数据并换方法能够打印数据并换行,根据数据类型的不同,有多种实现方式行,根据数据类型的不同,有多种实现方式public class Test public static void main(String args) int i = 0;char c = z;String str = hello;System.out.println(i);System.out.println(c);System.out.println(str);PrintStreamprintln(int)println(char)println(String)方法名相同,参数类型不同方法名相同,参数类型不同调用不同的调用不同

16、的println方法方法方法重载方法重载方法重载的代码示例方法重载的代码示例 2 2java.lang.Mathjava.lang.Math类的类的max()max()方法能够从两个数字中取出最方法能够从两个数字中取出最大值,它有多种实现方式大值,它有多种实现方式运行时,运行时,JavaJava虚拟机先判断给定参数的类型,然后决定虚拟机先判断给定参数的类型,然后决定到底执行哪个到底执行哪个max()max()方法方法Mathmax(int a,int b)max(float a,float b)max(long a,long b)max(double a,double b)public cla

17、ss Test public static void main(String args) Math.max(1,2);Math.max(1.0F,2.F);Math.max(1.0,2);方法重载方法重载构造方法构造方法重载重载 2-12-1 构造方法重载是方法重载的典型示例构造方法重载是方法重载的典型示例public classTeacher7 private String name; / 教员姓名教员姓名private String school = 长沙长沙; / 所在中心所在中心publicTeacher7(String name) this.name = name; /设定教员姓名设

18、定教员姓名publicTeacher7(String name, String school) this.name = name; /设定教员姓名设定教员姓名this.school = school; /设定教员的所在中心设定教员的所在中心public String introduction() return 大家好!我是大家好!我是 + school + 的的 + name ;构造方法重载构造方法重载构造方法重载构造方法重载 2-22-2 通过调用不同的构造方法来表达对象的多种初始化行为通过调用不同的构造方法来表达对象的多种初始化行为 例如:例如: 默认情况下,教师来自北京中心,初始化时,只

19、需提供教员姓名默认情况下,教师来自北京中心,初始化时,只需提供教员姓名 有时,需要提供所在中心名称及教员姓名有时,需要提供所在中心名称及教员姓名public classTeacher7Test public static void main(String args) Teacher7 teacher1 = newTeacher7(李芳李芳);System.out.println(teacher1.introduction();AccpTeacher7 teacher2 = newTeacher7(张欣张欣, 天津中心天津中心);System.out.println(teacher2.intro

20、duction();大家好!我是北京中心的李芳大家好!我是北京中心的李芳大家好!我是天津中心的张欣大家好!我是天津中心的张欣方法重载方法重载( (常见错误常见错误) )public class Math int Max(int a,int b) return ab?a:b; int max(int b,int b)return ab?a:b; 方法名不相同方法名不相同,不构不构成重载成重载构造方法构造方法 构造方法是一个特殊的方法,用于构造方法是一个特殊的方法,用于创建类的对象创建类的对象,并完成,并完成一些初始化工作,它总是与一些初始化工作,它总是与newnew关键字关键字一起使用来创建对一

21、起使用来创建对象象. . 要求要求: : 方法名必需与类名相同方法名必需与类名相同 不能声明返回类型不能声明返回类型 构造方法不能被子类继承,不能被构造方法不能被子类继承,不能被static,final,abstract,nativestatic,final,abstract,native修饰修饰 重载构造方法重载构造方法 当创建一个对象时,在不同的条件下,可能有不同的初始化行为当创建一个对象时,在不同的条件下,可能有不同的初始化行为,则需定义不同的构造方法,则需定义不同的构造方法构造方法构造方法 默认的构造方法默认的构造方法 默认的构造默认的构造 方法是指方法是指无参数无参数的构造方法,可分

22、为两种的构造方法,可分为两种 隐含的默认构造方法隐含的默认构造方法 程序显示定义的默认构造方法程序显示定义的默认构造方法 在一个类中,没有定义构造方法,在一个类中,没有定义构造方法,javajava编译器会提供一个编译器会提供一个无参数的构造无参数的构造 方法,如果定义了构造方法,则编译器不方法,如果定义了构造方法,则编译器不会提供默认的无参构造方法会提供默认的无参构造方法. .构造方法示例构造方法示例public class PersonString name ;public Person() public Person(String _name) name = _name; 构造方法构造方

23、法重载构造方法重载构造方法构造方法(常见错误)构造方法(常见错误)public class PersonString name ;public void Person() public Person(String _name) name = _name; public static void main(String args ) Person p = new Person(); 方法有返回类型,方法有返回类型,尽管是一个方法,尽管是一个方法,但不是构造方法但不是构造方法编译错误,默认无参数的编译错误,默认无参数的构造方法在自定义了构造构造方法在自定义了构造方法后,方法后,java编译器不再编译

24、器不再提供,无法调用无参构造提供,无法调用无参构造方法创建方法创建Person类的实例类的实例 给定如下给定如下Java代码,请指出代码中的错代码,请指出代码中的错误,并解释原因。误,并解释原因。public class Sample private int x;public Sample() x = 1;public Sample(int i) x = i;public int Sample(int i) x = i;return x+;private Sample(int i, String s)public Sample(String s,int i)private Sampla(int

25、 i)x=i+; private void Sampla(int i)x=i+; 总结总结无参构造方法无参构造方法带参构造方法带参构造方法不是构造方法不是构造方法带参构造方法带参构造方法带参构造方法带参构造方法名称与类名不相同名称与类名不相同不是构造方法不是构造方法小结小结 4 4编写一个类编写一个类Book3,代表教材:,代表教材:具有属性:名称(具有属性:名称(title)、页数()、页数(pageNum)、种类()、种类(type)具有方法:具有方法:detail,用来在控制台输出每本教材的名称、页数、,用来在控制台输出每本教材的名称、页数、种类种类具有两个带参构造方法:第一个构造方法中

26、,设置教材种类为具有两个带参构造方法:第一个构造方法中,设置教材种类为“计算机计算机”(固定),其余属性的值由参数给定;第二个构造(固定),其余属性的值由参数给定;第二个构造方法中,所有属性的值都由参数给定方法中,所有属性的值都由参数给定编写测试类编写测试类Book3Test进行测试:进行测试:分别以两种方式完成对两个分别以两种方式完成对两个Book3对象的初始化工作,并分别调对象的初始化工作,并分别调用它们的用它们的detail方法,看看输出是否正确方法,看看输出是否正确方法递归调用方法递归调用 递归:在方法体内部调用自身称为递归递归:在方法体内部调用自身称为递归 注:递归必需有一个明确的递归结束条件,称之为递归出口注:递归必需有一个明确的递归结束条件,称之为递归出口 计算计算n n的阶乘:调用过程如下的阶乘:调用过程如下static int method(int n)if (n=1)return 1; return n* method(n-1);static int method(int n)if (n=1)return 1; return n* method(n-1);static int method(int n)if (n=1)return 1; return n* method(n-1); n=3n=2n=1Return 1Return 2*1Return 3*2

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com