zJava面向对象程序设计第4章_类与对象.ppt
《zJava面向对象程序设计第4章_类与对象.ppt》由会员分享,可在线阅读,更多相关《zJava面向对象程序设计第4章_类与对象.ppt(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java是面向是面向对对象的象的语语言言所有所有Java程序都以类程序都以类class为组织单元为组织单元关键字关键字class定义自定义的数据类型定义自定义的数据类型publicclassHelloWorldpublicstaticvoidmain(Stringargs)System.out.println(HelloWorld!);Java类模板类模板l类将现实世界中的概念模拟到计算机程序中publicclass类名类名/定义属性部分定义属性部分属性属性1的类型的类型属性属性1;属性属性2的类型的类型属性属性2;属性属性n的类型的类型属性属性n;/定义方法部分定义方法部分方法方法1;方法方
2、法2;方法方法m;如何定义类如何定义类l定义一个类的步骤1、定义类名2、编写类的属性3、编写类的方法类示例类示例2-1 School类类属性:属性:学校全称学校全称学校教室数目学校教室数目学校机房数目学校机房数目方法:方法:展示学校信息展示学校信息3、在不同的学校,会感受到相同的环境和教、在不同的学校,会感受到相同的环境和教学氛围,用类的思想输出中心信息学氛围,用类的思想输出中心信息类示例类示例2-2publicclassSchoolStringschoolName;/学校名称学校名称intclassNumber;/教室数目教室数目intlabNumber;/机房数目机房数目/定义学校的方法定
3、义学校的方法publicvoidshowCenter()System.out.println(schoolName+“学生学生n+配备:配备:+classNumber+教教+labNumber+机机);定义类的定义类的showCenter()方法,方法,用于输出类相关的信息用于输出类相关的信息演示示例演示示例1:用类的思想输出学校信息:用类的思想输出学校信息方法方法成员变量成员变量如何创建和使用对象如何创建和使用对象l使用对象的步骤:创建对象l类名 对象名=new 类名();引用对象成员:使用“.”进行以下操作l引用类的属性:对象名.属性l引用类的方法:对象名.方法名()Schoolcente
4、r=newSchool();center.name=“黄山学院黄山学院;/给给name属性赋值属性赋值center.showCenter();/调用调用showCenter()方法方法publicclassInitialSchoolpublicstaticvoidmain(Stringargs)Schoolcenter=newSchool();System.out.println(*初始化成员变量前初始化成员变量前*);center.showCenter();center.schoolName=“黄山学院黄山学院;center.classNumber=100;center.labNumber=
5、10;System.out.println(n*初始化成员变量后初始化成员变量后*);center.showCenter()创建和使用对象示例创建和使用对象示例5-1创建创建“黄山学院黄山学院”对象对象说一说看到说一说看到什么效果?什么效果?演示示例演示示例2:创建和使用对象:创建和使用对象1说一说又看到什说一说又看到什么效果?么效果?创建和使用对象示例创建和使用对象示例5-2 4、编写学生类,输出学生相关信息;编写教、编写学生类,输出学生相关信息;编写教员类,输出教员相关信息员类,输出教员相关信息学生类学生类姓名姓名年龄年龄班级班级爱好爱好显示学员个人信息显示学员个人信息教员类教员类姓名姓名
6、专业方向专业方向教授课程教授课程教龄教龄显示教员个人信息显示教员个人信息publicclassStudentStringname;/姓名姓名intage;/年龄年龄StringclassNo;/班级班级Stringhobby;/爱好爱好/输出信息方法输出信息方法publicvoidshow()System.out.println(name+n年龄:年龄:+age+n就读于:就读于:+classNo+n爱好:爱好:+hobby);创建和使用对象示例创建和使用对象示例5-3成员变量成员变量演示示例演示示例3:创建和使用对象:创建和使用对象2成员方法成员方法publicclassInitialStu
7、dentpublicstaticvoidmain(Stringargs)Studentstudent=newStudent();student.name=张浩张浩;student.age=10;student.classNo=S1班班;student.hobby=篮球篮球;student.show();创建对象创建对象给每个属性赋值给每个属性赋值调用方法调用方法创建和使用对象示例创建和使用对象示例5-4 5、一个景区根据游人的年龄收取不同价格的、一个景区根据游人的年龄收取不同价格的门票。请编写游人类,根据年龄段决定能够购门票。请编写游人类,根据年龄段决定能够购买的门票价格并输出买的门票价格并输
8、出游人类游人类姓名姓名年龄年龄显示姓名及门票价格显示姓名及门票价格publicclassVisitorStringname;/姓名姓名intage;/年龄年龄/显示信息方法显示信息方法publicvoidshow()Scannerinput=newScanner(System.in);while(!n.equals(name)if(age=18&age=60)/判断年龄判断年龄System.out.println(name+“年龄为年龄为+age+“,价格为价格为20元元);elseSystem.out.println(name+的年龄为:的年龄为:+age+,免费,免费);创建和使用对象示例
9、创建和使用对象示例5-5成员方法成员方法成员变量成员变量importjava.util.Scanner;publicclassInitialVistorpublicstaticvoidmain(Stringargs)Scannerinput=newScanner(System.in);Visitorv=newVisitor();System.out.print(请输入姓名:请输入姓名:);v.name=input.next();System.out.print(请输入年龄:请输入年龄:);v.age=input.nextInt();v.show();创建对象创建对象给每个属性赋值给每个属性赋值
10、调用方法调用方法演示示例演示示例4:创建和使用对象:创建和使用对象3面向对象(面向对象(OO)的优点)的优点l与人类的思维习惯一致把人类解决问题的思维过程转变为程序能够理解的过程 l信息隐藏,提高了程序的可维护性和安全性 封装实现了模块化和信息隐藏 封装使得在对象外部不能随意访问对象的属性和方法l提高了程序的可重用性一个类可以创建多个对象实例,增加了重用性 4.2.2类体类体 类类声声明明之之后后的的一一对对大大括括号号“”,“”以以及及它它们们之之间间的的内内容容称称作作类类体体,大大括括号号之之间间的的内内容容称称作作类体的内容。类体的内容。类类体体的的内内容容由由两两部部分分构构:一一部
11、部分分是是变变量量的的声声明明,用用来来刻刻画画属属性性;另另一一部部分分是是方方法法的的定定义义,用用来来刻刻画功能。画功能。4.2.3成员变量和局部变量成员变量和局部变量 类类体体中中变量声明部分所声明的变量被称作类的成员变量。在方法体中声明的变量和方法的参数被称作局部变量。1变变量量的的类类型型:成员变量和局部变量的类型可以是Java中的任何一种数据类型,包括基本类型:整型、浮点型、字符型;引用类型:数组、对象和接口(对象和接口见后续内容)。2变变量量的的有有效效范范围围:成员变量在整个类内都有效,局部变量只在声明它的方法内有效。方法参数在整个方法内有效,方法内的局部变量从声明它的位置之
12、后开始有效。3实实例例变变量量与与类类变变量量:在声明成员变量时,用关键字static给予修饰的称作类变量,否则称作实例变量(类变量也称为static变量,静态变量)。4成成员员变变量量的的隐隐藏藏:如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效。5编程风格编程风格(1)一行只声明一个变量。(2)变量的名字符合标识符规定。(3)变量名字见名知意,避免容易混淆的变量名字。4.2.4方法方法 方方法法的的定定义义包包括括两两部部分分:方方法法声声明明和和方方法法体体。一一般般格格式为:式为:方法声明部分方法声明部分 方法体的内容方法体的内容 1方法声明
13、 方法声明包括方法名和方法的返回类型,如:float area()注:注:方法的返回类型方法的返回类型、方法的参数、方法的名字方法的参数、方法的名字 2方法体 方法声明之后的一对大括号“”,“”以及之间的内容称作方法的方法体。方法体的内容包括局部变量的声明和Java语句。为什么要用带参数的方法为什么要用带参数的方法l工作原理新鲜桃汁新鲜桃汁新鲜苹果汁新鲜苹果汁新鲜梨汁新鲜梨汁输输出出三三种种果果汁汁如何使用带参数的方法如何使用带参数的方法l定义带参数的方法l调用带参数的方法publicclassZhazhipublicStringzhazhi(Stringfruit)Stringjuice=f
14、ruit+汁汁;returnjuice;/*调用调用zhazhi方法方法*/ZhazhimyZhazhi=newZhazhi();StringmyFruit=苹果苹果;StringmyJuice=myZhazhi.zhazhi(myFruit);System.out.println(myJuice);参数列表:参数列表:(数据类型数据类型参数参数1,数,数据类型据类型参数参数2)调用方法,传递的参数要调用方法,传递的参数要与参数列表一一对应与参数列表一一对应如何使用带参数的方法如何使用带参数的方法返回类型返回类型()/方法的主体方法的主体该方法允许被访问调用该方法允许被访问调用的权限范围的权限
15、范围方法返回值的方法返回值的类型类型publicclassStudentsBizStringnames=newString30;publicvoidaddName(Stringname)/增加学生姓名增加学生姓名publicvoidshowNames()/显示全部学生姓名显示全部学生姓名传送给方法的形参列表传送给方法的形参列表一个形式参数一个形式参数没有返回值没有返回值如何使用带参数的方法如何使用带参数的方法publicstaticvoidmain(Stringargs)StudentsBizst=newStudentsBiz();Scannerinput=newScanner(System.
16、in);for(inti=0;i5;i+)System.out.print(请输入学生姓名:请输入学生姓名:);StringnewName=input.next();st.addName(newName);st.showNames();实参的类型、数量、顺序实参的类型、数量、顺序都要与形参一一对应都要与形参一一对应先实例化对象,先实例化对象,再使用方法再使用方法演示示例演示示例1:带一个参数的方法:带一个参数的方法调用带参数的方法调用带参数的方法对象名对象名.方法名(实参方法名(实参1,实参实参2,,实参,实参n)实参列表实参列表带两个参数的方法带两个参数的方法l可以设计一个方法来实现,通过传
17、递两个参数(需要修改的姓名、新姓名)来实现 1、修改学生姓名,输入新、旧姓名,进行、修改学生姓名,输入新、旧姓名,进行修改并显示是否修改成功修改并显示是否修改成功publicclassStudentsBizStringnames=newString30;publicbooleaneditName(StringoldName,StringnewName)booleanfind=false;/是否找到并修改成功标识是否找到并修改成功标识/循环数组,找到姓名为循环数组,找到姓名为oldName的元素,修改为的元素,修改为newNamefor(inti=0;inames.length;i+)if(na
18、mesi.equals(oldName)namesi=newName;find=true;break;returnfind;返回值类型返回值类型带有两个形参带有两个形参返回结果:返回结果:boolean类型类型带两个参数的方法带两个参数的方法2-2publicclassTestModifypublicstaticvoidmain(Stringargs)System.out.print(n请输入要修改的学生姓名请输入要修改的学生姓名:);Stringoldname=input.next();System.out.print(n请输入新的学生姓名请输入新的学生姓名:);Stringnewname=
19、input.next();System.out.println(n*修改结果修改结果*);if(st.editName(oldname,newname)System.out.println(找到并修改成功找到并修改成功!);elseSystem.out.println(没找到该学生没找到该学生!);st.showNames();根据返回值进行处根据返回值进行处理理传递两个实参传递两个实参演示示例演示示例2:带两个参数的方法:带两个参数的方法带带多多个参数的方法个参数的方法l设计方法,通过传递三个参数(开始位置、结束位置,查找的姓名)来实现 2、指定查找区间,查找学生姓名并显示是、指定查找区间,
20、查找学生姓名并显示是否修改成功否修改成功publicbooleansearchName(intstart,intend,Stringname)booleanfind=false;/是否找到标识是否找到标识/指定区间数组中,查找姓名指定区间数组中,查找姓名for(inti=start-1;iend;i+)if(namesi.equals(name)find=true;break;returnfind;返回值类型返回值类型带有三个形参带有三个形参返回结果:返回结果:boolean类型类型带带多多个参数的方法个参数的方法演示示例演示示例3:带多个参数的方法:带多个参数的方法if(st.searchN
21、ame(s,e,name)System.out.println(找到了找到了!);elseSystem.out.println(没找到该学生没找到该学生!);传递三个实参传递三个实参/方法定义方法定义publicvoidaddName(Stringname)/方法体方法体/方法调用方法调用对象名对象名.addName(String张三张三);调用方法时不能指定实参类型!调用方法时不能指定实参类型!常见错误常见错误对象名对象名.addName(张三张三);/方法定义方法定义publicbooleansearchName(intstart,intend,Stringname)/方法体方法体/方法调
22、用方法调用Strings=开始开始;inte=3;Stringname=张三张三;booleanflag=对象名对象名.searchName(s,e,name);形参和实参数据类型不一致形参和实参数据类型不一致!常见错误常见错误/方法定义方法定义publicbooleansearchName(intstart,intend,Stringname)/方法体方法体/方法调用方法调用ints=1;inte=3;booleanflag=对象名对象名.searchName(s,e);形参和实参数量不一致形参和实参数量不一致!常见错误常见错误/方法定义方法定义publicbooleansearchName
23、(intstart,intend,Stringname)/方法体方法体/方法调用方法调用ints=1;inte=3;Stringname=张三张三;对象名对象名.searchName(s,e,name);调用方法后没有对返回值作任何处理调用方法后没有对返回值作任何处理!常见错误常见错误数组类型的方法返回值数组类型的方法返回值l使用Arrays类提供的sort()方法实现l定义一个独立的方法来实现姓名排序,该方法的返回值为数组类型1、编写方法,实现学生的姓名排序、编写方法,实现学生的姓名排序publicclassStudentsBizStringnames=newString5;/学生姓名数组学
24、生姓名数组publicvoidinputNames()/接收用户输入的接收用户输入的5个学生姓名,存放于个学生姓名,存放于names中中/字符串数组作为返回值字符串数组作为返回值publicStringgetNames()Arrays.sort(names);returnnames;返回字符串数组返回字符串数组publicclassTestSortpublicstaticvoidmain(Stringargs)StudentsBizst=newStudentsBiz();st.inputNames();Stringnamesbysort=st.getNames();System.out.pri
25、ntln(*排序后排序后*);for(inti=0;inamesbysort.length;i+)if(namesbysorti!=null)System.out.print(namesbysorti+t);数组类型的方法返回值数组类型的方法返回值演示示例演示示例1:数组类型的方法返回值:数组类型的方法返回值调用方法,返回结果调用方法,返回结果处理返回结果处理返回结果对象类型的参数对象类型的参数l定义学生类,添加属性:三门课的成绩 l定义学生成绩计算类,添加方法,传递对象参数 l定义测试类2、编写学生成绩计算类,计算学生平均分、编写学生成绩计算类,计算学生平均分publicclassStude
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- zJava 面向 对象 程序设计
限制150内