您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > linux/Unix相关 > Java类的属性与方法
教师:班级:第11讲类的方法回顾1.成员的访问权限有哪些?–当一个成员被声明为时,所有其他类,无论是属于哪个包,都可以访问该成员;–当一个成员被声明为时,不能被该成员所在类之外的任何类中代码访问;–当一个成员没有任何访问限制修饰符时,其只包内的类是可见的;–当一个类被声明为时,只对包内的类可见,包外的类可通过继承访问该成员。2.类的两大组成要素是什么?˗属性、方法3.类命名规则publicprivateprotectdefault类命名规则:1、不能使用Java关键字2、首字母可以为字母,也可以是“_”或“$”(建议不要这样)3、不能包含空格或“.”号本章任务以OO方式:•计算并显示总成绩•计算并显示平均成绩•理解变量作用域•会定义和使用类的方法•理解类的构造方法•理解变量作用域本章目标类的方法•写出狮子对象的“跑”方法•写出狮子对象的“叫”方法电动玩具狮子属性:颜色:黄色行为:跑叫按此按钮,狮子开始跑类的方法示例publicclassAutoLion{Stringcolor=黄色;publicvoidrun(){System.out.println(正在以0.1米/秒的速度向前奔跑);}publicStringbark(){Stringsound=吼;returnsound;}}AutoLion类代码实现方法名称方法体返回类型访问类型如何定义类的方法•类的方法定义类的某种行为(或功能)方法的定义方法的名称方法的主体方法返回的数据类型定义类的方法public返回值类型方法名(){//这里编写方法的主体}方法的访问类型1234方法的命名•如何给方法起名字?–只能以字母、‘_’或‘$’开头–可以包括数字,但不能以它开头•遵循的命名规范–通常方法名是一个动词,如果有两个以上单词组成,第一个单词的首字母小写,其后单词首字母大写方法的返回值•两种情况–如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型为该返回值的类型–如果方法没有返回值,返回类型为voidpublicclassStudent{Stringname=张三;publicvoidgetName(){returnname;}……}返回类型要匹配return表达式;编译错误常见错误2-1publicclassSchool{……publicstaticvoidmain(String[]args){……return“苏州工业职业技术学院!;}}返回类型是void方法中不能有返回值常见错误2-2publicclassStudent{publicdoublegetInfo(){doubleweight=95.5;doubleheight=1.69;returnweight,height;}}方法至多可以返回一个值,不能返回多个值方法调用•方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果•方法调用:执行方法中包含的语句对象名.方法名();小明过生日,爸爸送他一个电动狮子玩具,编程测试这个狮子能否正常工作方法调用publicclassAutoLion{Stringcolor=黄色;publicvoidrun(){//方法1:跑System.out.println(正在以0.1米/秒的速度向前奔跑。);}publicStringbark(){//方法2:叫Stringsound=吼;returnsound;}publicStringgetColor(){//方法3:获得颜色属性returncolor;}publicStringshowLion(){//方法4:描述狮子特性return这是一个+getColor()+的玩具狮子!;}}publicclassLionTest{publicstaticvoidmain(String[]args){AutoLionlion=newAutoLion();System.out.println(lion.showLion());lion.run();System.out.println(lion.bark());}}在类的方法中调用该类另一个方法在main()方法中调用类的方法必需先创建对象方法调用小结•方法之间允许相互调用,不需要知道方法的具体实现,提高了效率情况举例1、同一个类中方法的互相调用——直接调用publicvoida(){b();//调用b()}2、不同类中的方法调用——先创建类对象,然后使用“.”调用publicvoida(){Teachert=newTeacher();t.b();//调用Teacher类的b()}publicclassTest{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);inta=input.nextInt();}}方法调用案例•编写成绩计算类(ScoreCalc)•编写测试类成绩计算类属性:3门成绩(Java、C#、DB)方法:计算平均成绩显示平均成绩计算总成绩显示总成绩成绩计算类测试类编程实践–编写手机类(Phone):它可以下载音乐,可以播放这些音乐,可以进行充电–编写电池类(Cell):自动续电–编写测试类(Test)手机类行为:播放下载的音乐下载充电电池类属性:品牌行为:续电手机类电池类测试类手机的“充电”方法是通过调用电池的“续电”方法实现的编程实践–编写手机类(Phone):它可以下载音乐,可以播放这些音乐,可以进行充电–编写电池类(Cell):自动续电–编写测试类(Test)手机类电池类测试类手机类属性:无方法:play()显示“播放……”,调用下载音乐方法downloadMusic()返回下载的音乐名称chargeCell()充电,调用Cell类的续电方法电池类属性:brand品牌方法:getPower()“续电”方法,显示充电信息手机测试类测试手机的播放音乐和充电方法构造方法(构造函数)•构造方法是一种特殊的方法。–构造方法的名字和所存在的类是一样的;–构造方法没有返回类型;–主要作用:完成对象的初始化;–当创建对象时被调用。PhoneStudent=;newStudent()publicStudent(){this.name=“张三”;this.age=18;}初始化属性123构造方法(构造函数)•不带参数的构造方法•带参数的构造方法publicStudent(){this.name=“张三”;this.age=18;}publicStudent(Stringname,intage){this.name=name;this.age=age;}Studentstu1=newStudent();Studentstu2=newStudent(“张三”,18);变量作用域3-1publicclassAutoLion{Stringcolor=黄色;publicvoidrun(){//方法1:跑System.out.println(正在以0.1米/秒的速度向前奔跑。);}publicStringbark(){//方法2:叫Stringsound=吼;returnsound;}publicStringgetColor(){//方法3:获得颜色属性returncolor;}publicStringshowLion(){//方法4:输出类的描述信息return这是一个+getColor()+的玩具狮子!叫声是+sound;}}可以使用吗?变量作用域3-2•变量声明的位置决定变量作用域•变量作用域确定可在程序中按变量名访问该变量的区域…for(inti=0,a=0;i4;i++){a++;}System.out.println(a);…a的作用域仅在for循环中代码错误变量作用域3-3类型1变量1;类型2变量2;类型3变量3;public返回类型方法1(){类型4变量4;}public返回类型方法2(){类型5变量5;}publicclassAutoLion{}AutoLion类的方法别的类的方法谁能使用这些变量?方法1方法2成员变量局部变量局部变量面向对象的编程思维•ScoreCalc类和Test类publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System.out.print(请输入Java成绩:);intjava=input.nextInt();……/*计算并显示输出*/inttotal=java+c+db;doubleavg=total/3;System.out.print(总成绩:+total);System.out.print(\n平均分:+avg);}一次还可以接受,如果还要再执行这个功能,难道还要重复再写?calcDiffTimecalcTotalScore()ScoreCalcshowTotalScore()calcAvg()showAvg()main(){//程序入口//计算并输出总成绩//计算并输出平均分}Test调用调用类的方法实现某个特定的功能,别的类不需要知道它如何实现!知道了实现此功能的类和它的方法名,就可以直接调用了,不用重复写代码!定义类的方法的步骤是什么?类中的一个方法如何调用类的另一个方法?类中的一个方法如何调用另一个类的方法?总结
本文标题:Java类的属性与方法
链接地址:https://www.777doc.com/doc-7028103 .html