收藏 分销(赏)

第八章-类及对象.ppt

上传人:仙人****88 文档编号:13754721 上传时间:2026-04-10 格式:PPT 页数:25 大小:1.25MB 下载积分:10 金币
下载 相关 举报
第八章-类及对象.ppt_第1页
第1页 / 共25页
第八章-类及对象.ppt_第2页
第2页 / 共25页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,8,章类和对象,回顾,简述,for,循环的执行过程。,break,语句和,continue,语句有什么区别?,预习检查,Java,中如何定义类,?,如何比较两个对象是否相同?,本章任务,定义学生类,定义日期类,本章目标,掌握类的定义,掌握对象的创建,掌握对象的使用,理解对象的比较,面向对象简介,2-1,现实生活中对象表示客观存在的事物,。,现实世界的对象具有两个特征:状态和行为。,面向对象程序设计语言中的对象是以现实世界的对象为模型构造的,也具有状态和行为,状态保存在一组变量中,而行为是通过方法实现的。,面向对象简介,2-2,现实世界中的对象都属于某种类型,同一类型的对象具有共同的特征和行为。,在面向对象程序设计语言中,对象的类型就是类,类是一种模板,它定义了某种类型所有对象都具有的行为和方法。,面向对象的特征,面向对象的特征主要包含:,封装:,将对象的数据和操作数据的方法相结合,通过方法将对象的数据与实现细节保护起来,就称为封装。,继承:,当一个类是另一个类的特例时,这两个类之间具有父子关系。此时,子类继承了父类的数据和方法,可以重用父类的这部分代码。,多态:,多态的含义可以表达为”对外一个接口,内部多种实现”。,面向对象程序设计的优势,通过类库、继承等机制,使得代码能够重用,从而提高了开发的效率,缩短开发周期,同时减少了程序维护的工作量。,通过抽象与封装,使得程序具有模块化的特性,减少了代码间的关联,使得程序更加容易管理和维护。,通过封装、继承、多态使得即使改动了类的代码,只要对外的接口不变,那些调用类的程序就不需要改动,从而增强了程序的可扩展性和可维护性。,定义类,Java,中定义类的基本语法为:,public class,类名,/,定义成员变量,/,定义成员方法,类的定义可以分为两部分,类的声明,类体,在类体部分定义类的成员变量、方法等内容。,类的声明,在类的声明部分,声明类的名字以及类的一些其它属性。,类声明的完整格式如下所示:,public class,类名,extends,父类,implements,接口列表,public,说明了类的属性,是可选的。,class,是定义类的关键字。,extends,关键字说明类继承哪一个类,每个类只能从一个类继承。,implements,关键字说明类实现了哪些接口。一个类可以实现多个接口,多个接口之间用逗号,(,),分隔。,类体,2-1,出现在类声明后大括号内的内容是类体部分。,在类体部分定义类的成员变量以及成员方法。,定义成员变量的一般格式为:,修饰符 数据类型 变量名,=,初始值,;,修饰符可以是,public,、,private,、,protected,等描述访问权限的关键字,也可以包含,final,、,static,等关键字。,数据类型可以是任意类型,包括基本类型和引用类型。,初始值是可选的,如果在定义成员变量时没有为其设定初始值,系统自动将其设为此种类型的缺省值。,类体,2-2,定义方法包括两部分:方法声明和方法体。,定义方法的一般格式为:,修饰符 返回类型 方法名,(,参数列表,),/,方法体,应用举例,4-1,定义描述学生信息的学生类:,Student,。,每一个学生都要包含的信息包括:姓名、性别、年龄、班级、学号等。,类中还需要定义一个输出学生信息的方法,可以采用返回类型为,String,的方法实现。,Student,String name;,String sex;,int,age;,String,toString,(),应用举例,4-2,public class Student,String name;,String sex;,int,age;,public String,toString,(),return,姓名为:,+name+,,性别为:,+sex+,,年龄为:,+age+,。,;,应用举例,4-3,定义描述日期的类,SampleDate,。,日期类的数据由年、月、日组成,因此需要定义三个,int,类型的变量分别描述年、月和日。,为日期类增加一个输出的方法,可以通过返回类型为,String,的方法实现。,SampleDate,int,year;,int,month;,int,date;,String,toString,(),应用举例,4-4,public class,SampleDate,int,year=0;,int,month=0;,int,date=0;,public String,toString,(),return year+,年,+month+,月,+date+,日,;,创建对象,2-1,在,Java,中,采用构造方法创建对象。,构造方法是一类特殊的方法,它的名字与类名相同。,默认情况下,编译器会自动为类增加一个没有任何参数不做任何工作的构造方法。,创建对象需要使用,new,运算符调用构造方法。,例如:,Student,student,=new Student();,创建对象,2-2,对象的引用,值为数据在内存中的起始地址,name,:张三,sex,:男,age,:,20,2000,student,变量名,对象,对象的数据一起存放在,new,开辟的内存空间中,,new,运算符返回新开辟的空间的地址,将该地址设置为引用类型变量的值。因此,引用类型的变量实际存放了该对象的引用地址。严格的说,引用变量和对象是不同的。,访问对象,2-1,当创建一个对象后,可以通过成员运算符,(.),来访问对象的数据和方法。其格式为:,object.field,:引用对象的数据,object.method,(),:调用对象的方法,访问对象,2-2,public class,StudentTest,public static void,main(String,args,),Student,student,=new Student();,student.name,=,张三,;,student.sex,=,男,;,student.age,=20;,System.out.println(student.toString,();,基本数据类型变量与引用类型变量的区别,每一个变量代表了一个存储值的内存单元,声明变量时就告诉编译器变量将存放什么类型的数据。对于基本数据类型的变量来说,对应的内存存储区存放的是数据的值;而对于引用类型的变量来说,对应的内存存储区存放的是对象的存储地址,对象的数据存储在,new,开辟的空间中。,将一个变量赋值给另一个变量时,另一个变量也就有了相同的值。对于基本数据类型的变量来说,是将变量的真实值赋值给了另一个变量;而对于引用类型的变量来说,是将对象的引用赋值给另一个变量,在执行完赋值语句后,两个引用类型的变量指向同一个对象。,对于基本数据类型的变量来说,可以通过,=,运算符比较两个变量的值是否相同;而对于引用类型的变量来说,,=,运算符仅仅比较两个变量的引用是否相同,并不能对对象的值进行比较。,对象的比较,即使两个对象具有相同的值,当采用,=,运算符比较时也会返回,false,。为了能够对对象的值进行比较,必须提供,equals(),方法。,public class Student,public,boolean,equals(Object,object),if(!(object,instanceof,Student),return false;,Student temp=(,Student)object,;,return,temp.name.equals(name,)&,temp.sex.equals(sex,)&(,temp.age,=age);,Java,类库,Java API,主要包括三类包:核心包,java,、功能扩展包,javax,和,org,。,包名,描述,java.lang,语言核心包,自动导入,java.util,工具包,用于网络通讯的类,java.maths,数学运算相关类,java.sql,数据库相关类,java.beans,开发,JavaBean,所需的类,java.io,输入输出流类,java.awt,创建用户界面以及绘制和管理图形、图像的类,java.applet,Applet,相关类,java.awt.event,图形化界面的事件处理,javax.swing,轻量级用户界面组件,总结,采用,class,定义类,在类中可以定义变量和方法。,采用,new,运算符创建对象。,通过成员运算符,(.),调用成员变量或成员方法。,equals(),方法用于比较两个对象的内容是否相同。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服