ImageVerifierCode 换一换
格式:PPT , 页数:64 ,大小:307.50KB ,
资源ID:13360295      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/13360295.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(第四章 类与对象.ppt)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

第四章 类与对象.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Java面向对象,程 序 设 计,第四章 类与对象,类,对象,参数传值,对象组合,static,关键字,this,关键字,包与,import,语句,jar,文件,难点,参数传值与对象组合,包和,import,语句,主要内容,4.1,编程语言的几个发展阶段,客观事物,(,问题域,),计算机,(,硬件,),语言的鸿沟,自然语言,面向对象的语言,非,OO,的高级语言,汇编语言,机器语言,4.1.1,面向机器的语言,机器语言,汇编语言,机器语言,机器语言是计算机能够理解并直接执行的惟一语言。,整个语言只包含“,0

2、和“,1”,两种符号。,机器语言编写的程序,无论是它的指令、数据还是其存储地址,都是由二进制的“,0”,和“,1”,组成的。,汇编语言,用一些易于理解和记忆的符号来代替二进制指令,这便是汇编语言,汇编语言是一种与具体机器有关的语言,也是一种面向机器的语言,称符号化的机器语言。,4.1.2,面向过程的语言,C,语言,Fortran,语言,Pascal,语言,4.2.3,面向对象的语言,封装性,类的抽象,继承性,子类可以继承父类的属性和功能,多态性,同一操作的多个不同状态,类和对象的关系,抽象,实例化,对象:刘丽,静态特征:刘丽,女,讲师,890.00,动态特征:授课,评职称,调工资,数据值,

3、执行的,操作,方法名,数据结构,类:教师,属性:姓名,性别,职称,工资,服务:授课,评职称,调工资,4.2,类,类是组成,Java,程序的基本要素,类封装了一类对象的状态和方法,类是用来定义对象的模板,类的实现,类的实现包括:类声明和类体。,格式,class,类名,类体,class,是关键字,类的声明部分,类体,4.2.1,类声明,class People,class,植物,习惯:,英文类名第一个字母大写,类名的定义应做到见名知意,4.2.2,类体,类体由两部分构成,变量的声明(类的属性),方法的定义(类的功能),例,class,梯形,float,上底,下底,高,面积,;,/,变量声明,梯形,

4、float,x,float,y,float,h),/,方法定义,上底,=x;,下底,=y;,高,=h;,void,修改高,(float height),/,方法定义,高,=height;,4.2.3,成员变量和局部变量,成员变量,类体中声明的变量,局部变量,方法中定义的变量,1.,变量的类型,成员变量,和,局部变量,的类型可以是,Java,中的,任意类型,例:,class People,int,boy;,float a;,void f(),boolean,cool;,workman,zhangboy,;,class Student,double x;,2.,变量的有效范围,成员变量在整个类内

5、都有效,局部变量只在声明它的方法内有效,方法参数在整个方法内有效,方法内的局部变量从声明它的位置之后开始有效。,例,:,class Sun,int,distance;,int,find(),int,a=12;,distance=a;,return distance;,void g(),int,y;,y=a;,例(,P57,),public class A,void f(),int,m=10,sum=0;,if(m,9),int,z=10;,z=2*,m+z,;,for(int,i=0;i,m;i,+),sum=,sum+i,;,m=sum;,z=,i+sum,;,4.2.3,成员变量和局部变量

6、类体中,变量声明部分所声明的变量被称作类的成员变量。在方法体中声明的变量和方法的参数被称作局部变量。,1变量的类型:,成员变量和局部变量的类型可以是,Java,中的任何一种数据类型,包括基本类型:整型、浮点型、字符型;引用类型:数组、对象和接口(对象和接口见后续内容)。,2变量的有效范围:,3实例变量与类变量:,在声明成员变量时,用关键字,static,给予修饰的称作类变量,否则称作实例变量(类变量也称为,static,变量,静态变量)。,4成员变量的隐藏:,如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效。,5,编程风格,(1)一行只声明一个变量

7、2)变量的名字符合标识符规定。,(3)变量名字见名知意,避免容易混淆的变量名字。,4.2.4,方法,方法的定义包括两部分:方法声明和方法体。一般格式为:,方法声明部分,方法体的内容,1,方法声明,方法声明包括方法名和方法的返回类型,如:,float area(),注:,方法的返回类型,、,方法的参数、方法的名字,2,方法体,方法声明之后的一对大括号“”,“”以及之间的内容称作方法的方法体。方法体的内容包括局部变量的声明和,Java,语句。,4.2.5,方法重载,方法重载的意思是:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。

8、4.2.6,构造方法,构造方法是一种特殊方法,,它的名字必须与它所在的类的名字完全相同,而且没有类型,构造方法也可以重载。,4.2.7,类方法和实例方法,方法声明时,方法类型前面不加关键字,static,修饰的是实例方法、加,static,修饰的是类方法(静态方法)。,4.2.8 几,个值得注意的问题,1,对成员变量的操作只能放在方法中,方法可以对成员变量和该方法体中声明的局部变量进行操作。,2,需要注意的是:实例方法既能对类变量操作也能对实例变量操作,而类方法只能对类变量进行操作。,3,一个类中的方法可以互相调用,实例方法可以调用该类中的其它方法;类中的类方法只能调用该类的类方法,不能调用

9、实例方法。,4.3,对象,4.3.1,创建对象,1,对象的声明,People,zhangPing,;,2.为声明的对象分配内存,zhangPing,=new People();,例4-1,例4-2,3对象的内存模型,(1),声明对象时的内存模型,(2),对象分配内存后的内存模型,4,创建多个不同的对象,4.3.2,使用对象,1通过使用运算符“.”对象操作自己的变量(对象的属性),2使用运算符“.”,对象调用类中的方法(对象的功能),例4-3,4.3.3,对象的引用和实体,当用类创建一个对象时,类中的成员变量在分配内存空间,这些内存空间,称作,该对象的实体或对象的变量,而对象中存放着引用。,一个

10、类创建的两个对象,如果具有相同的引用,那么就具有完全相同的实体。,4.4,参数传值,4.4.1,基本数据类型参数的传值,对于基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别,。,例4-4,4.4.2,引用类型参数的传值,当参数是引用类型时,“传值”传递的是变量中存放的“引用”,而不是变量所引用的实体。,例4-5,4.4.3,可变参数,可变参数是指在声明方法时不给出参数列表中从某项直至最后一项参数的名字和个数,但这些参数的类型必须相同。可变参数使用“”表示若干个参数,这些参数的类型必须相同,最后一个参数必须是参数列表中的最后一个参数。,例如:,public void,f(int,

11、x),例4-6,4.4.4,有理数的类封装,面向对象编程核心思想之一就是将数据和对数据的操作封装在一起。,1Rational(,有理数)类,2,用,Rational,对象做运算,Rational.java,MainClass.java,4.5,对象的组合,一个类可以把对象作为自己的成员变量,如果用这样的类创建对象,那么该对象中就会有其它对象,也就是说该对象将其他对象作为自己的组成部分,或者说该对象是由几个对象组合而成。,例4-7,4.6,static,关键字,用,static,修饰的变量,类变量,没有用,static,修饰的变量,实例变量,方法声明中,用,static,修饰的方法,类方法,方

12、法声明中不,用,static,修饰的方法,实例方法,4.6.1,实例变量和类变量的区别,如果类中有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。也就是说对象共享类变量。,例4-8,4.6.2,实例方法和类方法的区别,当用类创建对象后,类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对象调用执行。,对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址。,例4-9,4.7,this,关键字,this,是,Java,的一个关键字,表示某个对象。,this,可以出现在实例方法和构造方法中,但不可以出现在类方法中。,

13、4.7.1,在构造方法中使用,this,this,关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。,例4-10,4.7.2,在实例方法中使用,this,当,this,关键字出现实例方法中时,代表正在调用该方法的当前对象。,当实例成员变量在实例方法中出现时,默认的格式是:,this.,成员变量。,当,static,成员变量在实例方法中出现时,默认的格式是:,类名.成员变量。,4.8,包,包是,Java,语言中有效地管理类的一个机制。,包名的目的是有效的区分名字相同的类。,4.8.1,包语句,通过关键字,package,声明包语句。,package,语句作为,Java,源文件的第一条

14、语句,为该源文件中声明的类指定包名。,package,语句的一般格式为:,package,包名;,4.8.2,有包名的类的存储目录,程序如果使用了包语句,例如:,package,tom.jiafei,;,那么存储文件的目录结构中必须包含有如下的结构,tom,jiafei,如:,c:1000tomjiafei,并且要将源文件编译得到的类的字节码文件保存在目录,c:1000tomjiafei,中(源文件可以任意存放)。,4.8.3,运行有包名的主类,如果主类的包名是,tom.jiafei,,,那么主类的字节码一定存放在,tom,jiefei,目录中,运行时必须到,tom,jiefei,的上一层(即

15、tom,的父目录)目录中去运行主类。,假设,tom,jiefei,的上一层目录是1000,那么,必须如下格式来运行:,C:1000java,tom.jiafei,.,主类名,注:主类名是:“包名.主类名”,例4-11,4.9,import,语句,一个类可能需要另一个类声明的对象作为自己的成员或方法中的局部变量,如果这两个类在同一个包中,当然没有问题。,如果一个类想要使用的那个类和它不在一个包中,要使用,import,语句完成使命。,4.9.1,引入类库中的类,如果用户需要类库中的类就必须使用,import,语句,如:,import,java.until.Date,;,例4-12,4.9.2,

16、引入自定义包中的类,用户程序可以使用,tom.jiafei,包,中的类,,即使用,非类库,中有包名的类,也要使用,import,语句,如:,import,tom.jiafei,.*;,例4-13,例4-14,4.9.3,使用无包名的类,如果一个类想使用无名包中的类,只要将这个无包名的类的字节码和当前类保存在同一目录中即可。,例4-15,4.9.4,避免类名混淆,1区分无包名和有包名的类,如果想同时使用,tom.jiafei,包中的,A,类和无名包中的,A,类,就不能省略包名,例如:,A a1=new A();,tom.jiafei.A,a2=new,tom.jiafei.A,();,2,区分有

17、包名的类,如果一个源文件引入了两个包中同名的类,那么在使用该类时,不允许省略包名,比如:,tom.jiafei.A,bird=new,tom.jiafei.A,();,.A,goat=new,.A,();,4.10,访问权限,访问限制修饰符有,private,、,protected,和,public,,,都是,Java,的关键字,用来修饰成员变量或方法。,4.10.1,私有变量和私有方法,用关键字,private,修饰的成员变量和方法称为私有变量和私有方法。,对于私有成员变量或方法,只有在本类中创建该类的对象时,这个对象才能访问自己的私有成员变量和类中的私有方法。,例4-16,例4-17,4.

18、10.2,共有变量和共有方法,用,public,修饰的成员变量和方法被称为共有变量和共有方法,。,我们在任何一个类中用类,Tom,创建了一个对象后,该对象能访问自己的,public,变量和类中的,public,方法(也可以通过类名来操作成员变量、方法)。,4.10.3,友好变量和友好方法,当在另外一个类中用类,Tom,创建了一个对象后,如果这个类与,Tom,类在同一个包中,那么该对象能访问自己的友好变量和友好方法。,在任何一个与,Tom,同一包中的类中,也可以通过,Tom,类的类名访问,Tom,类的类友好成员变量和类友好方法。,4.10.4,受保护的成员变量和方法,用,protected,修饰

19、的成员变量和方法被称为受保护的成员变量和受保护的方法。,4.10.5,public,类与友好类,类声明时,如果在关键字,class,前面加上,public,关键字,就称这样的类是一个,public,类。,可以在,任何另外一个类,中,使用,public,类创建对象。,如果一个类不加,public,修饰,这样的类被称作友好类。,在另外一个类中使用友好类创建对象时,要保证它们是在,同一包中,。,4.11,基本类型的类包装,Java,的基本数据类型包括:,byte、int、short、long、float、double、char,。,Java,提供了基本数据类型相关的类,实现了对基本数据类型的封装。,

20、这些类分别是:,Byte、Integer、Short、Long、Float、Double,和,Character,类。这些类在,java.lang,包中。,4.11.1,Double,和,Float,类,Double,类和,Float,类实现了对,double,和,float,基本型数据的类包装。,Double,类的构造方法:,Double(double,num),Float,类的构造方法:,Float(float,num),Double,对象调用,doubleValue,(),方法,可以返回该对象含有的,double,型数据,。,Float,对象调用,floatValue,(),方法,可以返

21、回该对象含有的,float,型数据,。,4.11.2,Byte、Short,、,Integer、Long,类,上述个类的构造方法分别,:,Byte(byte,num),Short(short,num),Integer(int,num),Long(long,num),Byte、Short、Integer,和,Long,对象分别调用,byteValue,()、,shortValue()、intValue,(),和,longValue,(),方法,返回该对象含有的,基本型数据,。,4.11.3,Character,类,Character,类实现了对,char,基本型数据的类包装。,Character

22、类的构造方法:,Character(char,c),Character,类中的一些常用类方法:,public static,boolean,isDigit(char,ch,),如果,ch,是数字字符方法返回,true,否则返回,false。,public static,boolean,isLetter(char,ch,),如果,ch,是字母方法返回,true,,否则返回,false。,public static,boolean,isLetterOrDigit(char,ch,),如果,ch,是数字字符或字母方法返回,true,,否则返回,false。,public static,boolea

23、n,isLowerCase(char,ch,),如果,ch,是小写字母方法返回,true,,否则返回,false。,public static,boolean,isUpperCase(char,ch,),如果,ch,是大写字母方法返回,true,,否则返回,false。,public static char,toLowerCase(char,ch,),返回,ch,的小写形式。,public static char,toUpperCase(char,ch,),返回,ch,的大写形式。,public static,boolean,isSpaceChar(char,ch,),如果,ch,是空格返回,

24、true。,例4-18,4.11.4,自动装箱与拆箱,所谓自动装箱,就是允许把一个基本数据类型的值直接赋值给基本数据类型相对应的类的实例,例如:,Integer number=100;,自动拆箱,就是允许把基本数据类型相对应的类的实例直接赋值给相应的基本数据类型变量或把基本数据类型相对应的类的实例当作相应的基本数据类型来使用,例如:,number,是一个,Integer,对象,那么允许:,int,x=,number+number,;,例4-19,4.12,反编译和文档生成器,4.12.1,javap,反编译,JDK,提供的反编译器,javap.exe,可以将字节码反编译为源码,查看源码类中的,

25、public,方法名字和,public,成员变量的名字,例如:,javap,java.util.Date,4.12.2,javadoc,制作文档,使用,JDK,提供的,javadoc.exe,可以制做源文件的,html,格式文档。,假设,D:test,有源文件,Example.java,,,用,javadoc,Example.java,生成,Example.java,的,html,格式文挡。,例4-20,4.13,jar,文件,我们可以使用,jar.exe,命令把一些类的字节码文件压缩成一个,jar,文件,然后将这个,jar,文件存放到,Java,运行环境的扩展中,即将该,jar,文件存放在,

26、JDK,安装目录的,jre,libext,文件夹中。这样,,Java,应用程序就可以使用这个,jar,文件中的类来创建对象了。,(1)有包名的类:,TestOne,和,TestTwo,类的包名为,moon.star,首先编写一个清单文件:,hello.mf(Manifestfiles,),保存到,C:1000,目录中,Manifest-Version:1.0,Class:,moon.start.TestOne,moon.star.TestTwo,Created-By:1.6,jar,命令,C:1000jar,cfm,Jerry.jar,hello.mf,moonstar,TestOne.cla

27、ss,moonstar,TestTwo.class,(2),无包名的类:,TestOne,和,TestTwo,类没有包名,只需将,TestOne.java,和,TestTwo,保存到,C:1000,中、编译得到字节码文件,将(1)中清单文件中类的包名去掉后保存到,c:1000,中。,使用,jar,命令:,C:1000jar,cfm,Jerry.jar,hello.mf,TestOne.class,TestTwo.class,4.14,小结,1.,类是组成,Java,源文件的基本元素,一个源文件是有若干个类组成的。,2类体可以有两种重要的成员:成员变量和方法。,3成员变量分为实例变量和类变量。类

28、变量被该类的所有对象共享;不同对象的实例变量互不相同。,4.除构造方法外,其它方法分为实例方法和类方法。类方法不仅可以由该类的对象调用,也可以用类名调用;而实例方法必须由对象来调用。,5实例方法即可以操作实例变量也可以操作类变量,当对象调用实例方法时,方法中的成员变量就是指分配给该对象的成员变量,其中的实例变量和其它对象的不相同,即占有不同的内存空间;而类变量和其它对象的相同,即占有相的内存空间。类方法只能操作类变量,当对象调用类方法时,方法中的成员变量一定都是类变量,也就是说该对象和所有的对象共享类变量。,6在编写,Java,源文件时,可以使用,import,语句引入有包名的类;也可以使用静态导入引入有包名类的类变量。,7对象访问自己的变量以及调用方法受访问权限的限制。,

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服