第3章_方法 、局部变量和成员变量_第1页
第3章_方法 、局部变量和成员变量_第2页
第3章_方法 、局部变量和成员变量_第3页
第3章_方法 、局部变量和成员变量_第4页
第3章_方法 、局部变量和成员变量_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、第第3章章 类与对象类与对象(成员方法、变量成员方法、变量)n类和对象的区别是什么?n数据类型有哪两类?如何使用?public class &Student String name; char sex; int age; public String tostring ( ) return name + t + sex + t + age; public static void main(String args) Student stu = new Student(); name = 神仙姐姐神仙姐姐; sex = F; age = 18; System.out.println(stu); St

2、udent toSstu.sexstu.age 实现输出学生信息,下面代码有哪些错误?实现输出学生信息,下面代码有哪些错误?回顾与作业点评回顾与作业点评n会定义和使用类的方法n理解变量作用域本章目标本章目标类的方法类的方法n1、写出狮子对象的“跑”方法、 “叫”方法电动玩具狮子电动玩具狮子属性:属性:颜色:黄色颜色:黄色行为:行为:跑跑叫叫按此按钮,按此按钮,狮子开始叫狮子开始叫按此按钮,按此按钮,狮子开始跑狮子开始跑类的方法示例类的方法示例public class AutoLion String color = 黄色黄色; public void run() Sys

3、tem.out.println(正在以正在以0.1米米/秒的速度向前奔跑秒的速度向前奔跑); public String bark() String sound = 大声吼叫大声吼叫 ; return sound; AutoLion类代码实现方法体方法体返回类型返回类型演示示例演示示例1:定义类的方法:定义类的方法方法名称方法名称如何定义类的方法如何定义类的方法n类的方法定义类的某种行为(或功能) 方法的定义方法的定义 方法的名称方法的名称 方法的主体方法的主体 方法返回的数据类型方法返回的数据类型 定义类的方法定义类的方法public 返回值类型返回值类型 方法名方法名() /这里编写方法的

4、主体这里编写方法的主体步骤一:定义方步骤一:定义方法名以及返回值法名以及返回值步骤二:编写方步骤二:编写方法体法体方法的返回值方法的返回值n两种情况n如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型为该返回值的类型n如果方法没有返回值,返回类型为voidpublic class Student String name = 张三张三; public void getName() return name; 返回类型要匹配返回类型要匹配return 表达式;表达式;编译错误编译错误作用:作用: 跳出方法跳出方法给出结果给出结果方法调用方法调用n方法是个“黑匣子”,完成某个特定的

5、应用程序功能,并返回结果n方法调用:执行方法中包含的语句 对象名对象名.方法名方法名();2、小明过生日,爸爸送他一个电动狮子玩具,、小明过生日,爸爸送他一个电动狮子玩具,编程测试这个狮子能否正常工作编程测试这个狮子能否正常工作 方法调用方法调用public class AutoLion String color = 黄色黄色; /颜色颜色 /*跑跑*/ public void run() System.out.println(正在以正在以0.1米米/秒的速度向前奔跑。秒的速度向前奔跑。); /*叫叫*/ public String bark() String sound = 大声吼叫大声吼叫

6、 ; return sound; /*获得颜色获得颜色*/ public 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

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

8、w Teacher( ); t.b( ); /调用Teacher类的b() public class Studentpublic void showInfo() return 我是一名学生我是一名学生; 方法的返回类型为方法的返回类型为void,方法中不能有,方法中不能有return返回值!返回值!常见错误常见错误4-1public class Studentpublic double getInfo() double weight = 95.5; double height = 1.69; return weight, height; 方法不能返回多个值方法不能返回多个值!常见错误常见错误4

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

10、e height = 1.69; return weight;public class Studentint age=20;if(age20) System.out.println(年龄不符合入学要求!年龄不符合入学要求!); public void showInfo()return 我是一名学生我是一名学生;不能在方法外部直接写程序逻辑代码!不能在方法外部直接写程序逻辑代码!常见错误常见错误4-4为什么要用带参数的方法为什么要用带参数的方法n工作原理新鲜桃汁新鲜桃汁新鲜苹果汁新鲜苹果汁新鲜梨汁新鲜梨汁输输出出三三种种果果汁汁如何使用带参数的方法如何使用带参数的方法3-1n定义带参数的方法n调

11、用带参数的方法public class 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(myJuice);参数列表:参数列表:(数据类型数据类型 参数参数1,数据类型数据类型 参数参数2)调用方法,传递的参数要调

12、用方法,传递的参数要与参数列表一一对应与参数列表一一对应如何使用带参数的方法如何使用带参数的方法3-2 返回类型返回类型 () /方法的主体方法的主体该方法允许被访问调用该方法允许被访问调用的权限范围的权限范围方法返回值的方法返回值的类型类型public class StudentsBiz String names = new String30; public void addName(String name)/增加学生姓名增加学生姓名public void showNames ()/显示全部学生姓名显示全部学生姓名传送给方法的形参列表传送给方法的形参列表一个形式参数一个形式参数没有返回值没有

13、返回值如何使用带参数的方法如何使用带参数的方法3-3public static void main(String args) StudentsBiz st = new StudentsBiz(); Scanner input = new Scanner(System.in); for(int i=0;i5;i+) System.out.print(请输入学生姓名:请输入学生姓名:); String newName = input.next(); st.addName(newName); st.showNames(); 实参的类型、数量、顺序实参的类型、数量、顺序都要与形参一一对应都要与形参一一

14、对应先实例化对象,先实例化对象,再使用方法再使用方法演示示例演示示例1:带一个参数的方法:带一个参数的方法 调用带参数的方法调用带参数的方法对象名对象名.方法名(实参方法名(实参1, 实参实参2,,实参,实参n)实参列表实参列表/方法定义方法定义public void addName(String name) /方法体方法体/方法调用方法调用对象名对象名.addName(String 张三张三);调用方法时不能指定实参类型!调用方法时不能指定实参类型!常见错误常见错误4-1对象名对象名.addName(张三张三);/方法定义方法定义public boolean searchName(int s

15、tart ,int end ,String name)/方法体方法体/方法调用方法调用String s=开始开始;int e=3;String name=张三张三;boolean flag=对象名对象名. searchName(s ,e ,name);形参和实参数据类型不一致形参和实参数据类型不一致!常见错误常见错误4-2/方法定义方法定义public boolean searchName(int start,int end,String name)/方法体方法体/方法调用方法调用int s=1;int e=3;boolean flag= 对象名对象名.searchName(s,e);形参和实

16、参数量不一致!形参和实参数量不一致!常见错误常见错误4-3/方法定义方法定义public boolean searchName(int start,int end,String name)/方法体方法体/方法调用方法调用int s=1;int e=3;String name=张三张三;对象名对象名.searchName(s,e,name);调用方法后没有对返回值作任何处理!调用方法后没有对返回值作任何处理!常见错误常见错误4-4成员变量和局部变量成员变量和局部变量2-1n变量声明的位置决定变量作用域n变量作用域确定可在程序中按变量名访问该变量的区域for(int i = 0, a = 0; i

17、 4; i+) a+;System.out.println ( a );代码错误代码错误a的作用域仅在的作用域仅在for循环中循环中 成员变量和局部变量成员变量和局部变量2-2变量变量1类型类型 变量变量1; 变量变量2类型类型 变量变量2;变量变量3类型类型 变量变量3;public 返回类型返回类型 方法方法1() 变量变量4类型类型 变量变量4;public 返回类型返回类型 方法方法2() 变量变量5类型类型 变量变量5; public class AutoLion AutoLion类的方法,类的方法,其他类的方法其他类的方法 谁能使用这些变量?谁能使用这些变量? 方法方法1 方法方法

18、2 成员变量成员变量 局部变量局部变量 局部变量局部变量 n作用域不同n局部变量的作用域仅限于定义它的方法n成员变量的作用域在整个类内部都是可见的n初始值不同nJava会给成员变量一个初始值nJava不会给局部变量赋予初始值n在同一个方法中,不允许有同名局部变量;在不同的方法中,可以有同名局部变量n两类变量同名时,局部变量具有更高的优先级成员变量和局部变量的区别成员变量和局部变量的区别常见错误n请指出下面代码的错误class Dog private String name = 旺财旺财; / 昵称昵称 private int health = 100; / 健康值健康值 private int

19、 love = 0; / 亲密度亲密度 public void play(int n) int localv; health = health - n; System.out.println(name+ +localv+ +health+ +love); public static void main(String args) Dog d=new Dog(); d.play(5); 局部变量没局部变量没有初始化有初始化public class Test int score1 = 88; int score2 = 98; public void calcAvg() int avg = (scor

20、e1 + score2)/2; public void showAvg() System.out.println(平均分是:平均分是: + avg); 常见错误常见错误局部变量局部变量avg的作用域仅限于的作用域仅限于calcAvg()方法方法静态常量nstatic可以用来修饰属性、方法和代码块nstatic修饰的属性和方法称为类属性(类变量)、类方法n不使用static修饰的属性和方法,属于单个对象,通常称为实例属性(实例变量)、实例方法nstatic修饰的变量和方法可以通过类名和对象名访问,而不用static修饰的变量和方法只能通过对象名访问nfinal可以用来修饰属性、方法和类n用fin

21、al修饰的变量成为常量,其值固定不变Penguin pgn1 = new Penguin();pgn1.sex = Penguin.SEX_MALE; class Penguin static final String SEX_MALE=Q仔仔; static final String SEX_FEMALE=Q妹妹; Java中中定义常量定义常量的语法的语法static void print() 用类名调用:用类名调用:Dog.print(); 使用使用static定义变量定义变量 使用使用static定义方法定义方法 演示示例:静态常量演示示例:静态常量 可否这样赋值可否这样赋值?常见错误n

22、请指出下面代码的错误class Dog private String name = 旺财旺财; / 昵称昵称 private int health = 100; / 健康值健康值 private int love = 0; / 亲密度亲密度 public void play(int n) static int localv=5; health = health - n; System.out.println(name+ +localv+ +health+ +love); public static void main(String args) Dog d=new Dog(); d.play(5); 在方法里不可以在方法里不可以定义定义static变量变量 面向对象的编程思维面向对象的编程思维nScoreCalc

温馨提示

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

评论

0/150

提交评论