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

下载本文档

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

文档简介

第3章类与对象(成员方法、变量)类和对象的区别是什么?数据类型有哪两类?如何使用?publicclass&Student{Stringname;charsex;intage;publicStringtostring(){returnname+"\t"+sex+"\t"+age;}publicstaticvoidmain(String[]args){

Studentstu=newStudent();name="神仙姐姐";

sex='F';

age=18;

System.out.println(stu);

}}StudenttoStringstu.sexstu.age实现输出学生信息,下面代码有哪些错误?回顾与作业点评会定义和使用类的方法理解变量作用域本章目标类的方法1、写出狮子对象的“跑”方法、“叫”方法电动玩具狮子属性:颜色:黄色行为:跑叫按此按钮,狮子开始叫按此按钮,狮子开始跑类的方法示例publicclassAutoLion{Stringcolor="黄色";

public

void

run(){System.out.println("正在以0.1米/秒的速度向前奔跑");

}

public

String

bark(){Stringsound="大声吼叫";

returnsound;}}AutoLion类代码实现方法体返回类型演示示例1:定义类的方法方法名称如何定义类的方法类的方法定义类的某种行为(或功能)方法的定义方法的名称方法的主体方法返回的数据类型定义类的方法public返回值类型方法名(){

//这里编写方法的主体}步骤一:定义方法名以及返回值步骤二:编写方法体方法的返回值两种情况如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型为该返回值的类型如果方法没有返回值,返回类型为voidpublicclassStudent{Stringname="张三";publicvoidgetName(){

returnname;}……}返回类型要匹配return表达式;编译错误作用:跳出方法给出结果方法调用方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果方法调用:执行方法中包含的语句

对象名.方法名();2、小明过生日,爸爸送他一个电动狮子玩具,编程测试这个狮子能否正常工作

方法调用publicclassAutoLion{Stringcolor="黄色";//颜色

/*跑*/

publicvoidrun(){

System.out.println("正在以0.1米/秒的速度向前奔跑。");

}

/*叫*/

publicStringbark(){

Stringsound="大声吼叫";

returnsound;

}

/*获得颜色*/

publicStringgetColor(){returncolor;}/*显示狮子特性*/

publicStringshowLion(){return"这是一个"+getColor()+"的玩具狮子!";

}}publicclassTestLion{

publicstaticvoidmain(String[]args){AutoLionlion=newAutoLion();System.out.println(lion.showLion());lion.run();System.out.println(lion.bark());}}在类的方法中调用该类另一个方法演示示例2:方法调用在main()方法中调用类的方法方法调用小结方法之间允许相互调用,不需要知道方法的具体实现,提高了效率

情况

举例Student类的方法a()调用Student类的方法b(),直接调用publicvoida(){b();//调用b()}Student类的方法a()调用Teacher类的方法b(),先创建类对象,然后使用“.”调用publicvoida(){Teachert=newTeacher();t.b();//调用Teacher类的b()}publicclassStudent{ publicvoidshowInfo(){ return"我是一名学生";

}}方法的返回类型为void,方法中不能有return返回值!常见错误4-1publicclassStudent{ publicdoublegetInfo(){ doubleweight=95.5; doubleheight=1.69; returnweight,height; }}方法不能返回多个值!常见错误4-2publicclassStudent{ publicStringshowInfo(){ return"我是一名学生";

publicdoublegetInfo(){

doubleweight=95.5;

doubleheight=1.69;

returnweight;

}

}}多个方法不能相互嵌套定义!常见错误4-3publicclassStudent{ publicStringshowInfo(){ return"我是一名学生";

}

publicdoublegetInfo(){ doubleweight=95.5; doubleheight=1.69; returnweight; }}publicclassStudent{ intage=20; if(age<20){ System.out.println("年龄不符合入学要求!");

}

publicvoidshowInfo(){ return"我是一名学生";

}}不能在方法外部直接写程序逻辑代码!常见错误4-4为什么要用带参数的方法工作原理新鲜桃汁新鲜苹果汁新鲜梨汁输出三种果汁如何使用带参数的方法3-1定义带参数的方法调用带参数的方法publicclassZhazhi{

publicStringzhazhi(Stringfruit){Stringjuice=fruit+"汁";

returnjuice;

}}/*调用zhazhi方法*/ZhazhimyZhazhi=newZhazhi();StringmyFruit="苹果";StringmyJuice=myZhazhi.zhazhi(myFruit);System.out.println(myJuice);参数列表:(数据类型参数1,数据类型参数2…)调用方法,传递的参数要与参数列表一一对应如何使用带参数的方法3-2<访问修饰符>返回类型<方法名>(<形式参数列表>){

//方法的主体}该方法允许被访问调用的权限范围方法返回值的类型publicclassStudentsBiz{ String[]names=newString[30];

publicvoidaddName(Stringname){

//增加学生姓名

} publicvoidshowNames(){

//显示全部学生姓名

}}传送给方法的形参列表一个形式参数没有返回值如何使用带参数的方法3-3publicstaticvoidmain(String[]args){

StudentsBizst=newStudentsBiz();Scannerinput=newScanner(System.in);for(inti=0;i<5;i++){System.out.print("请输入学生姓名:");

StringnewName=input.next();

st.addName(newName);}st.showNames();

}实参的类型、数量、顺序都要与形参一一对应先实例化对象,再使用方法演示示例1:带一个参数的方法调用带参数的方法对象名.方法名(实参1,实参2,……,实参n)实参列表//方法定义publicvoidaddName(Stringname){ //方法体}//方法调用对象名.addName(String"张三");调用方法时不能指定实参类型!常见错误4-1对象名.addName("张三");//方法定义publicbooleansearchName(intstart,intend,Stringname){ //方法体}//方法调用Strings="开始";inte=3;Stringname="张三";booleanflag=对象名.searchName(s,e,name);形参和实参数据类型不一致!常见错误4-2//方法定义publicbooleansearchName(intstart,intend,Stringname){ //方法体}//方法调用ints=1;inte=3;booleanflag=对象名.searchName(s,e);形参和实参数量不一致!常见错误4-3//方法定义publicbooleansearchName(intstart,intend,Stringname){ //方法体}//方法调用ints=1;inte=3;Stringname="张三";对象名.searchName(s,e,name);调用方法后没有对返回值作任何处理!常见错误4-4成员变量和局部变量2-1变量声明的位置决定变量作用域变量作用域确定可在程序中按变量名访问该变量的区域…for(inti=0,a=0;i<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;}publicclassAutoLion{}AutoLion类的方法,其他类的方法谁能使用这些变量?方法1方法2成员变量局部变量局部变量作用域不同局部变量的作用域仅限于定义它的方法成员变量的作用域在整个类内部都是可见的初始值不同Java会给成员变量一个初始值Java不会给局部变量赋予初始值在同一个方法中,不允许有同名局部变量;在不同的方法中,可以有同名局部变量两类变量同名时,局部变量具有更高的优先级成员变量和局部变量的区别常见错误请指出下面代码的错误classDog{privateStringname="旺财";//昵称privateinthealth=100;//健康值

privateintlove=0;//亲密度

publicvoidplay(intn){intlocalv;health=health-n; System.out.println(name+""+localv+""+health+""+love);}publicstaticvoidmain(String[]args){Dogd=newDog();d.play(5);}}局部变量没有初始化publicclassTest{intscore1=88;intscore2=98;publicvoidcalcAvg(){intavg=(score1+score2)/2;}publicvoidshowAvg(){System.out.println("平均分是:"+avg);

}}常见错误局部变量avg的作用域仅限于calcAvg()方法静态常量static可以用来修饰属性、方法和代码块static修饰的属性和方法称为类属性(类变量)、类方法不使用static修饰的属性和方法,属于单个对象,通常称为实例属性(实例变量)、实例方法static修饰的变量和方法可以通过类名和对象名访问,而不用static修饰的变量和方法只能通过对象名访问final可以用来修饰属性、方法和类用final修饰的变量成为常量,其值固定不变Penguinpgn1=newPenguin();pgn1.sex=Penguin.SEX_MALE;classPenguin{staticfinalStringSEX_MALE="Q仔";

staticfinalStringSEX_FEMALE="Q妹";}Java中定义常量的语法staticvoidprint(){}用类名调用:Dog.print();使用static定义变量使用static定义方法演示示例:静态常量可否这样赋值?常见错误请指出下面代码的错误classDog{privateStringname="旺财";//昵称privateinthealth=100;//健康值

privateintlove=0;//亲密度

publicvoidplay(intn){staticintlocalv=5; health=health-n; System.out.println(name+""+localv+""+health+""+love);} publicstaticvoidmain(String[]args){Dogd=newDog();d.play(5);}}在方法里不可以定义static变量

面向对象的编程思维ScoreCalc类和

Test类publ

温馨提示

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

评论

0/150

提交评论