资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,本作品采用,知识共享署名,-,非商业性使用,2.5,中国大陆许可协议,进行许可。,专业交流,模板超市,设计服务,NordriDesign,中国专业,PowerPoint,媒体设计与开发,本作品的提供是以适用知识共享组织的公共许可(简称“,CCPL”,或“许可”)条款为前提的。本作品受著作权法以及其他相关法律的保护。对本作品的使用不得超越本许可授权的范围。,如您行使本许可授予的使用本作品的权利,就表明您接受并同意遵守本许可的条款。在您接受这些条款和规定的前提下,许可人授予您本许可所包括的权利。,查看全部,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,教师:,班级:,第,11,讲 类的方法,回顾,1.成员的访问权限有哪些?,当一个成员被声明为 时,所有其他类,无论是属于哪个包,都可以访问该成员;,当一个成员被声明为 时,不能被该成员所在类之外的任何类中代码访问;,当一个成员没有任何访问限制修饰符时,其只包内的类是可见的;,当一个类被声明为 时,只对包内的类可见,包外的类可通过继承访问该成员。,2.,类的两大组成要素是什么?,属性、方法,3.,类命名规则,public,private,protect,default,类命名规则:,1,、不能使用,Java,关键字,2,、首字母可以为字母,也可以是“,_”,或“,$”(,建议不要这样,),3,、不能包含空格或“,.”,号,本章任务,以OO方式:,计算并显示总成绩,计算并显示平均成绩,理解变量作用域,会定义和使用类的方法,理解类的构造方法,理解变量作用域,本章目标,类的方法,写出狮子对象的“跑”方法,写出狮子对象的“叫”方法,电动玩具狮子,属性:,颜色:黄色,行为:,跑,叫,按此按钮,,狮子开始跑,类的方法示例,public class,AutoLion,String color=,黄色,;,public,void,run(),System.out.println(,正在以,0.1,米,/,秒的速度向前奔跑,);,public,String,bark(),String sound=,吼,;,return,sound;,AutoLion类代码实现,方法名称,方法体,返回类型,访问类型,如何定义类的方法,类的方法定义类的某种行为(或功能),方法的定义,方法的名称,方法的主体,方法返回的数据类型,定义类的方法,public,返回值类型 方法名,(),/,这里编写方法的主体,方法的访问类型,1,2,3,4,方法的命名,如何给方法起名字?,只能以字母、_,或开头,可以包括数字,但不能以它开头,遵循的命名规范,通常方法名是一个动词,如果有两个以上单词组成,第一个单词的首字母小写,其后单词首字母大写,方法的返回值,两种情况,如果方法具有返回值,方法中必须使用关键字,return,返回该值,返回类型为该返回值的类型,如果方法没有返回值,返回类型为,void,public class Student,String name=,张三,;,public,void,getName(),return,name;,返回类型要匹配,return,表达式;,编译错误,常见错误2-1,public class School,public static,void,main(String args),return,“苏州工业职业技术学院!,;,返回类型是,void,方法中不能有返回值,常见错误2-2,public class Student,public,double,getInfo(),double,weight=95.5;,double,height=1.69;,return,weight,height;,方法至多可以返回一个值,不能返回多个值,方法调用,方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果,方法调用:执行方法中包含的语句,对象名,.,方法名(),;,小明过生日,爸爸送他一个电动狮子玩具,编程测试这个狮子能否正常工作,方法调用,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 showLion()/,方法,4,:描述狮子特性,return,这是一个,+getColor()+,的玩具狮子,!;,public class,LionTest,public static void,main(String args),AutoLion lion=,new,AutoLion();,System.out.println(lion.showLion();,lion.run();,System.out.println(lion.bark();,在类的方法中调用,该类另一个方法,在,main(),方法中调用类的方法,必需先创建对象,方法调用小结,方法之间允许相互调用,不需要知道方法的具体实现,提高了效率,public class,Test,public static void,main(String args),Scanner input=new Scanner(System.in);,int a=input.nextInt();,14,方法调用案例,编写成绩计算类(ScoreCalc),编写测试类,成绩计算类,测试类,编程实践,编写手机类(Phone):它可以下载音乐,可以播放这些音乐,可以进行充电,编写电池类(Cell):自动续电,编写测试类(Test),手机类,电池类,测试类,手机的,“充电”,方法是通过调用,电池的,“续电”,方法实现的,编程实践,编写手机类(Phone):它可以下载音乐,可以播放这些音乐,可以进行充电,编写电池类(Cell):自动续电,编写测试类(Test),手机类,电池类,测试类,手机测试类,测试手机的播放音乐和充电方法,构造方法(构造函数),构造方法是一种特殊的方法。,构造方法的名字和所存在的类是一样的;,构造方法没有返回类型;,主要作用:完成对象的初始化;,当创建对象时被调用。,Phone Student=;,new,Student,(),public Student(),this.name=,“张三”;,this.age=18,;,初始化属性,1,2,3,构造方法(构造函数),不带参数的构造方法,带参数的构造方法,public Student(),this.name=,“张三”;,this.age=18,;,public Student(String name,int age),this.name=name,;,this.age=age,;,Student stu1=new Student();,Student stu2=new Student(“,张三,”,18);,变量作用域3-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 showLion()/,方法,4,:输出类的描述信息,return,这是一个,+getColor()+,的玩具狮子,!,叫声是,+sound ;,可以使用吗?,变量作用域3-2,变量声明的位置决定变量作用域,变量作用域确定可在程序中按变量名访问该变量的区域,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,返回类型 方法,2(),类型,5,变量,5,;,public class AutoLion,AutoLion,类的方法,别的类的方法,谁能使用这些变量?,方法,1,方法,2,成员变量,局部变量,局部变量,面向对象的编程思维,ScoreCalc类 和,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);,System.out.print(n,平均分,:+avg);,一次还可以接受,如果,还要再执行这个功能,,难道还要重复再写?,calcDiffTime,calcTotalScore(),ScoreCalc,showTotalScore(),calcAvg(),showAvg(),main()/,程序入口,/,计算并输出总成绩,/,计算并输出平均分,Test,调用,调用,类的方法实现某个特定的功能,,别的类不需要知道它如何实现!,知道了实现此功能的类和它的方法名,,就可以直接调用了,不用重复写代码!,定义类的方法的步骤是什么?,类中的一个方法如何调用类的另一个方法?,类中的一个方法如何调用另一个类的方法?,总结,
展开阅读全文