第8章、类的方法_第1页
第8章、类的方法_第2页
第8章、类的方法_第3页
第8章、类的方法_第4页
第8章、类的方法_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章 类的方法回顾 n类和对象的区别是什么?n数据类型有哪两类?如何使用?public class &Student String name; char sex; int age; public int tostring() return age; public static void main(String args) Student stu = new Student(); name = 神仙姐姐神仙姐姐; sex = F; age = 18; System.out.println(stu.toString(); Student Sstu.sexstu.

2、agel实现输出学生信息,下面代码有哪些错误?学习目标n会定义和使用类的方法n理解变量作用域n会添加类方法的JavaDoc注释/类的方法写出狮子对象的“跑”方法写出狮子对象的“叫”方法/ 电动玩具狮子电动玩具狮子属性:属性:颜色:黄色颜色:黄色行为:行为:跑跑叫叫按此按钮,按此按钮,狮子开始跑狮子开始跑类的方法示例AutoLion类代码实现/public class AutoLion String color = 黄色黄色; public void run() System.out.println(正在以正在以0.1米米/秒的速度向前奔跑秒的速度向前奔跑); public String bar

3、k() String sound = 吼吼 ; return sound; 方法名称方法名称方法体方法体返回类型返回类型如何定义类的方法n类的方法定义类的某种行为(或功能)/ 方法的定义方法的定义 方法的名称方法的名称 方法的主体方法的主体 方法返回的数据类型方法返回的数据类型 定义类的方法定义类的方法public 返回值类型返回值类型 方法名方法名() /这里编写方法的主体这里编写方法的主体步骤一:定义方步骤一:定义方法名以及返回值法名以及返回值步骤二:编写方步骤二:编写方法体法体方法的命名n如何给方法起名字?必须以字母、_或开头可以包括数字,但不能以它开头n遵循的命名规范通常方法名是一个动

4、词,如果有两个以上单词组成,第一个单词的首字母小写,其后单词首字母大写/方法的返回值n两种情况如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型为该返回值的类型如果方法没有返回值,返回类型为void/public class Student String name = 张三张三; public void getName() return name; 返回类型要匹配返回类型要匹配return 表达式;表达式;编译错误编译错误常见错误2-1public class School public static void main(String args) return “北京大学!

5、 ; /返回类型是返回类型是void方法中不能有返回值方法中不能有返回值 常见错误2-2public class Student public double getInfo() double weight = 95.5; double height = 1.69; return weight, height; /方法至多可以返回一个值,方法至多可以返回一个值,不能返回多个值不能返回多个值方法调用n方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果n方法调用:执行方法中包含的语句 /对象名对象名.方法名()方法名();小明过生日,爸爸送他一个电动狮子玩具,编程测试这个狮子能否正常工作 演

6、示示例演示示例1:演示运行效果:演示运行效果 方法调用 /public class AutoLion String color = 黄色黄色; public void run() /方法方法1:跑:跑 System.out.println(正在以正在以0.1米米/秒的速度向前奔跑。秒的速度向前奔跑。); public String bark() /方法方法2:叫:叫 String sound = 吼吼 ; return sound; public String getColor() /方法方法3:获得颜色属性:获得颜色属性 return color; public String showLio

7、n() /方法方法4:描述狮子特性:描述狮子特性 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(); 在类的方法中调用在类的方法中调用该类另一个方法该类另一个方法在在main()方法中方法中调用类的方法调用类的方法 演示

8、示例演示示例2:设置断点演示方法调用执行过程:设置断点演示方法调用执行过程 方法调用小结n方法之间允许相互调用,不需要知道方法的具体实现,提高了效率 情况举例1、类Student 的方法a()调用Student类的方法b(),直接调用public void a() b(); /调用b() 2、类Student的方法a()调用类Teacher的方法b(),先创建类对象,然后使用“.”调用public void a() Teacher t = new Teacher(); t.b(); /调用Teacher类的b() /为什么要用带参数的方法n工作原理新鲜桃汁新鲜桃汁新鲜苹果汁新鲜苹果汁新鲜梨汁新

9、鲜梨汁输输出出三三种种果果汁汁如何使用带参数的方法n定义带参数的方法n调用带参数的方法public class Zhazhi /定义带参数的定义带参数的zhazhi方法方法 public String zhazhi ( String fruit ) String juice = fruit + 汁汁; return juice; /*调用调用zhazhi方法方法*/Zhazhi myZhazhi = new Zhazhi();String myFruit = 苹果苹果;String myJuice = myZhazhi.zhazhi(myFruit);System.out.println(my

10、Juice);参数列表:参数列表:(数据类型数据类型 参数参数1,数,数据类型据类型 参数参数2)调用方法,传递的参数要调用方法,传递的参数要与参数列表一一对应与参数列表一一对应带参数的方法应用2-1输入学期代码,输出该学期的课程信息if (courseCode.equalsIgnoreCase(s1) System.out.println(第一学期的课程是:第一学期的课程是:); for(int i = 0; i s1Course.length; i+) System.out.println(s1Coursei); else if (courseCode.equalsIgnoreCase(s

11、2) System.out.println(第二学期的课程是:第二学期的课程是:); for(int i = 0; i s2Course.length; i+) System.out.println(s2Coursei); else if (courseCode.equalsIgnoreCase(y2) System.out.println(第三学期的课程是:第三学期的课程是:); for(int i = 0; i y2Course.length; i+) System.out.println(y2Coursei); 重复代码:重复代码:实现相同的功能实现相同的功能“根据不同的课根据不同的课程

12、代号输出相应程代号输出相应课程信息课程信息”使用方法可以增使用方法可以增加代码重用加代码重用带参数的方法应用2-2更高效的代码public class AccpSchool public void courseInfo(int courseCode, String course) System.out.println(courseCode + 的课程是:的课程是:); for(int i = 0; i course.length; i+) System.out.println(coursei); 定义定义AccpSchool类的带参类的带参方法:输出课程信息方法:输出课程信息AccpShool

13、 school = new AccpSchool();school.courseInfo(courseCode, s1);调用调用courseInfo方法,方法,并传入相应的课程代号并传入相应的课程代号和课程信息数组和课程信息数组 演示示例演示示例7:使用断点跟踪演示带参数的方法调用过程:使用断点跟踪演示带参数的方法调用过程 /带参数方法的调用编写登录类(Login)编写测试类登录类属性: 用户名 密码方法: 验证登录 使用断点跟踪演示带参数的方法调用过程使用断点跟踪演示带参数的方法调用过程 变量作用域3-1/public class AutoLion String color = “白色白色

14、; public void run() /方法方法1:跑:跑 System.out.println(正在以正在以0.1米米/秒的速度向前奔跑。秒的速度向前奔跑。); public String bark() /方法方法2:叫:叫 String sound = 吼吼 ; return sound; public String getColor() /方法方法3:获得颜色属性:获得颜色属性 return color ; public String showLion() /方法方法4:输出类的描述信息:输出类的描述信息 return 这是一个这是一个 + getColor() + 的玩具狮子的玩具狮

15、子!叫声是叫声是 + sound ; 可以调用吗?可以调用吗? 演示示例演示示例3 3:变量作用域:变量作用域 变量作用域3-2n变量声明的位置决定变量作用域n变量作用域确定可在程序中按变量名访问该变量的区域/for(int i = 0, a = 0; i 4; i+) a+;System.out.println(a);a的作用域仅在的作用域仅在for循环中循环中 代码错误代码错误变量作用域3-3/变量变量1类型类型 变量变量1; 变量变量2类型类型 变量变量2;变量变量3类型类型 变量变量3;public 返回类型返回类型 方法方法1() 变量变量4类型类型 变量变量4;public 返回类

16、型返回类型 方法方法2() 变量变量5类型类型 变量变量5; public class AutoLion AutoLion类的方法类的方法别的类的方法别的类的方法 谁能使用这些变量?谁能使用这些变量? 方法方法1 方法方法2 成员变量成员变量 局部变量局部变量 局部变量局部变量 方法的参数n值类型做参数n引用类型做参数方法调用案例编写成绩计算类(ScoreCalc)编写测试类/成绩计算类属性:3门成绩(Java、C#、DB)方法:计算平均成绩显示平均成绩计算总成绩显示总成绩小结1v编写手机类(Phone):它可以下载音乐,可以播放这些音乐v编写测试类(Test)手机类行为:播放下载的音乐下载

17、演示示例演示示例5:演示效果:演示效果 面向对象的编程思维nScoreCalc类 和 Test类public static void main(String args) Scanner input = new Scanner(System.in); System.out.print(请输入请输入Java成绩:成绩:); int java = input.nextInt(); /*计算并显示输出计算并显示输出*/ int total = java + c + db; double avg = total / 3; System.out.print(总成绩:总成绩: + total); Syste

18、m.out.print(n平均分平均分: + avg);一次还可以接受,如果一次还可以接受,如果还要再执行这个功能,还要再执行这个功能,难道还要重复再写?难道还要重复再写?calcDiffTimecalcTotalScore()ScoreCalcshowTotalScore()calcAvg()showAvg() main() /程序入口程序入口 /计算并输出总成绩计算并输出总成绩 /计算并输出平均分计算并输出平均分 Test调用调用调用调用类的方法实现某个特定的功能,类的方法实现某个特定的功能,别的类不需要知道它如何实现!别的类不需要知道它如何实现!知道了实现此功能的类和它的方法名,知道了实现此功能的类和它的方法名, 就可以直接调用了,不用重复写代码!就可以直接调用了,不用重复写代码! 面向对象(面向对象(OOOO)思想)思想JavaDoc注释n回顾学过的注释方式单行注释:/这里是注释多行注

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论