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

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/13358903.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。

注意事项

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

清华大学Java课件 f.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,面向对象程序设计基础(下),类属性,类方法,包,限定符,接口,内部类,行,言,类,变量(静态变量),类变量为类的各实例共享的变量。,static,静态变量;,位于类的内存区域中,为该类的各个对象共享.,无此限定符的变量是实例变量。,class ex,int,i;,static,int,j;,static final,int,k=10;,-,为节省空间,,final,常量可同时,定义为,static,类ex,j,k=10,对象1,i :3,对象2,i :5,类变量(静态变量),实现各实例之间的通讯。,跟踪创建的实例数。,publ

2、ic class Count,private,int,serial;,/,成员变量,private static,int,counter=0;/,类变量,public Count(),counter+;,serial=counter;,静态变量类似于某些语言中的全局变量。,类变量(静态变量),非,private,的静态变量无须创建实例就可以从类的外部访问。,public class,StaticVar,public static,int,x ;,public class test,public void m(),int,m=,StaticVar,.x;,1,类变量(静态变量),class Ph

3、oneCard200,static final String,connectNumber,=“200”;,static double,additoryFee,;,long,cardNumber,;,int,password;,boolean,connected;,double balance;,2,类变量(静态变量),public class a ,public static void main(String,args,),PhoneCard200 my200_1=new PhoneCard200();,PhoneCard200 my200_2=new PhoneCard200();,Phon

4、eCard200.,additoryFee,=0.1;,System.out.,println,(“,第一张200卡的接入号码:”+,my200_1.,connectNumber,);,System.out.,println,(“200,卡接入号码:”+,PhoneCard200.,connectNumber,);,System.out.,println,(“,第二张200卡的附加费:”+,my200_2.,additoryFee,);,System.out.,println,(“200,卡类的附加费:”+,PhoneCard200.,additoryFee,);,类方法(,静态方法),类,方

5、法:,static,方法名(),使用类方法不用创建类的对象。调用这个方法时,应该使用类名做前缀,而不是某一个具体的对象名。,非,static,的方法是对象方法(或称实例方法)。,类方法中不能访问实例变量,而只能访问类变量(,static,方法,static,域)和自己的方法参数。,类方法中不能直接使用本类中的实例方法,只能使用其他的,static方法,。,类方法中没有,this,值。,类方法(静态方法),public class a,public static void main(String,args,),System.out.,println,(Math.round(3.54);,Stri

6、ng s=to_char(2.718);,System.out.,println,(“e=“+s);,static String to_char(double x),return Double.,toString,(x);,3,类方法(静态方法),main,方法是静态方法,这是为了系统在没有任何实例化对象之前可以运行一个应用程序。,如果,main,方法要调用本类的其它方法:,将这些方法设计成静态方法,,创建对象,使用对象方法。,一个静态方法不能被一个非静态方法所覆盖。,类的初始化-静态初始化器,由关键字,static,引导的一对大括号括起的语句组。用来完成类的初始化的工作,,与构造方法的区别:

7、构造方法是对每个新创建的对象初始化,而静态初始化器是对类自身进行初始化;,构造方法是在用,new,运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载入内存时由系统调用执行;,不同于构造方法,静态初始化器不是方法,没有方法名、返回值和参数列表。,4,小结类与对象,面向对象的数据和方法:,一个类的对象虽然具有相同的属性,但对象却各不相同(属性值不同)。,一个类的对象方法虽然具有相同的代码,但表现不同,因为方法所操作的对象(数据)不同。,共享的数据和方法:,类属性 在同一类的实例中共享数据(该数据不属于一个对象,而属于一个类)。,类方法 不需要实例就能使用静态的方法和数据,虽然它

8、们也能通过实例来访问。,小结类与对象,类名.域名,静态域,在类的空间里,是该类对象共享的单元,类名.方法名,静态方法 类方法的调用,类方法及域也可以用对象名调用,但最好用类名,对象名.属性名,实例变量。提倡通过方法操作属性。,对象名.方法名,方法调用又称“消息传递”,实际上就是给指定对象发送消息:告诉它做什么,向它要信息(方法的返回值)。,小结类与对象,访问一个类:,创建该类的对象,并使用该类对象的可见属性与方法。,调用该类的可见静态方法,访问该类的可见静态属性。,继承该类。,final,final,类不能被继承。,final,方法不能被覆盖。,final,域不能被修改。,包(,package

9、),在操作系统中,目录用来组织文件,设置权限。,Java,利用包来组织相关的类,并控制访问权限。,包是一种松散的类的集合。一般不要求处于同一个包中的类有明确的相互关系,如包含、继承等等。,由于同一包中的类在缺省情况下可以互相访问,所以为了方便编程和管理,通常把需要在一起工作的类放在一个包里。,利用包来管理类,可实现类的共享与复用(类库)。,编译单元,一个,java,源代码文件称之为一个编译单元。,一个编译单元中只能有一个,public,类,该类名与文件名相同。编译单元中的其他类是该主,public,类的支撑类。,经过编译,编译单元中的每个类都产生一个,.,class,文件。,java,的工作程

10、序是一串.,class,文件,,JAVA,解释器负责寻找、加载和解释这些文件。,(不象其它语言最终生成一个.,exe,的可执行文件),类的,名字空间,所有类成员的名字都是相互隔离的。类,A,中的方法,m1,与类,B,中的方法,m1,互不相干,但类名就有冲突的问题了。,在一个,Java,程序运行过程中,某些类会从,internet,上自动下载,而用户并不知晓。所以在,java,中需要名字空间的完全控制,以便可以建立一个唯一的类名。,包用于类的名字空间管理。,作为包的设计人员,利用包来划分名字空间以避免类名冲突(,package,和,import),包与,目录,一个包要放在指定目录下。,class

11、path,指定搜寻包的路径。,一个包可以包含若干个类文件,还可包含若干包。,包名本身又对应一个目录(用一个目录表示)。,包名可以有层次,以小数点分割。包名一般全小写(类名第一个字母大写)。,p3,p2,d1,d2,类,classpath,=,d:d1;d:d1d2,p1,包,编译单元与包,对象三步曲:,打开包(,import,package),加载类(程序中只有类定义的一份拷贝),建对象(用,new,运算符可以创建一个类的若干实例),编译,单元,当前包,package,其他包,其他包,import,编译单元与当前包,显式指定编译单元的当前包。,package,包,名;,编译单元对当前包可以读写

12、在一个编译单元中,只能有一个,package,语句,且为第一个语句。,如果编译单元中无,package,语句,则隐含的当前包是一个无名包(放在当前目录下)。,无名包中 的类是为了局部应用。,不管“当前包”是显式指定还是采用隐含值,总是当前名字空间的一部分。,使用其他包中的类,import,语句将指定包中的类引入当前的名字空间,即告诉编译到哪去找程序中使用的类。,import,语句不加载包中的类。,import,语句必须出现在所有类定义之前。,例:,import java.util.*;,该语句引入整个,utility,类库(标准,Java,库的一部分),例:,import java.uti

13、l.Vector;,该语句只引入,Vector,类,但,utility,类库中的其他类不可用。,从包中加载类,当程序需要建立一个类的对象,或是第一次访问类的静态成员时,会动态加载类文件。,JAVA,解释器加载类过程:,将环境变量,CLASSPATH,包含的一个或多个目录作为起始目录。,解释器取出包名,将小数点换成斜杠,产生以,CLASSPATH,目录为起点的查找路径。,查找目录下的.,class,文件,import p1.p2.*,转换为,p1p2*.class,或,p1/p2/*.class,(,取决于操作系统),创建包、添加类,package,mypk,;,public class,myc

14、javac,d d:,myc,.java,会在,指定目录下建包,import,mypk,.*;,public class,testa,public static void main(String,args,),myc,c=new,myc,();,.,set CLASSPATH=.;d:;%CLASSPATH%,5,jar,文件,jar,cf,j.jar *.class,建立,jar,文件,jar,tf,j.jar,列表,jar,文件,java -cp j.jar test,执行,jar,文件中的类,访问控制符,访问控制符是一组起到限定类、域或方法是否可以被程序里的其他部分访问和调用的修饰符。

15、类访问控制符,公共类 :,public,类名,一般类,一个包中的类只能访问另一个包中的,public,类。,一般类只能在同一包中使用,一个包中的类不用说明可相互访问。,把常在一起协同工作的类放在一个包里是很自然的。,一个类作为整体对程序的其他部分可见,并不能代表类内的所有域和方法也同时对程序的其他部分可见,前者只是后者的必要条件,域和方法的可见性,域和,方法的访问限定符,public,公共域和公共方法,可被任何类使用。,protected,可被同包中其他类使用。,可 被子类继承(包括位于不同包中的子类),无访问限定符,可被同包中其他类使用。,private,只限在本类内使用。,6,域和方法的

16、访问限定符,为了使对象具有良好的封装性,一般将类的实例变量设计成私有。,为了使其它类或对象能够访问私有实例变量,本类必须提供访问私有变量的方法(公共方法)。,按照惯例,读私有变量的方法取名为,get,写私有变量的方法取名为,set,接口,“接口”是抽象类的概念。,接口中的方法都是没有方法体的抽象方法。,接口中只能定义,static final,属性。,接口定义的仅仅是实现某一特定功能的一组方法的对外接口和规范,而并没有真正地实现这个功能。,接口的功能实现是在“继承”了这个接口的各个类中完成的,由这些类来具体定义接口中所有抽象方法的方法体。,通常把对接口的“继承”称为“实现”。,接口的实现,Ob

17、ject,类,Abstract class,class,final class,接口,class,java,单重继承,继承,实现,接口的定义,public interface,接口名,extends,父接口名列表,/,常量域声明,public static final,域类型,域名,=,常量值;,/,抽象方法声明,public abstract,返回值类型,方法名,(,参数列表,),;,接口是由常量和抽象方法组成的特殊类。,接口的实现,public class,MyApplet,extends Applet,implements,Runnable,MouseListener,一个类只能有一个父

18、类,但是它可以同时实现若干个接口。如果把接口理解成特殊的类,那么这个类利用接口实际上就获得了多个父类,即实现了多继承。,instanceof,运算符可用来判断一个对象的类是否实现了某个接口。,接口例,interface,CalArea,double pi=3.14;,double cal(double r);,class a implements,CalArea,public,double cal(double r),return pi*r*r ;,7,接口的规定,类定义中使用,implements,指定实现某一接口,类中,必须具体实现该,interface,中定义的抽象方法。,实现的方法必须

19、指定为public限定符。,实现接口的类要实现接口的全部方法。如果不需要某个方法,也要定义成一个空方法体的方法。,Public,方法名(),接口的应用,声明多个类必须实现的方法。,编程者可以把用于完成特定功能的方法组织成相对独立的集合体接口。凡是需要实现这种特定功能的类,都必须实现这个接口。,利用接口模拟多继承。,java,程序中的类层次结构是树状结构,这种树状结构在处理某些复杂问题时会显得力不从心。,接口在保持单继承优点的前提下,使,Java,程序的类层次结构更加合理,更符合实际情况。,只说明对象的编程接口,而不揭示实际的类体。,类库分发,系统定义的接口,public interface,A

20、ctionListener,extends,EventListener,public abstract void,actionPerformed,(,ActionEvent,e);,该接口代表了监听并处理动作事件的功能,它包含了一个抽象方法,actionPerformed,所有希望能够处理动作事件(如单击按钮、在文本框中回车等)的类都必须具有,ActionListener,接口定义的功能,也就是要实现这个接口,,内部类(,inner class),在某个类的内部定义的类称之内部类。,内部类的定义方法,定义命名的内部类:,可以在类中(甚至方法中)定义内部类,并在类的内部多次使用(创建多个对象)。

21、定义匿名内部类(一次性使用),:可以在,new,关键字后定义内部类,并立即创建一个对象,内部类的类文件命名方法,设外层类名为,Myclass,,,则该类的内部类名为:,Myclass,$c1.class (c1,为命名内部类名),Myclass,$1.class (,表示类中定义的第一个匿名内部类),类中的内部类,在类中如同使用其他类一样使用自己的内部类。,内部类拥有对在外层类中定义的所有属性和方法的访问权。,其他类如果要使用一个类的内部类时,要使用类前缀。,8-Parcel2,类中的内部类,一般类只能是,public,和非,public,,而内部类可以指定为,private,和,prote

22、cted。,如果内部类为,private,,只有本类可以使用它。,如果内部类为,protected,,只有外层类、与外层类处于同一包中的类、以及外层类的子类可以访问它。,内部类可以实现接口及抽象类中的抽象方法。,外层类可以将上述实现细节、乃至内部类都隐藏起来,给外界提供一个指向基类及接口的处理句柄。,8-Parcel3,方法中的内部类,内部类还可以定义在一个方法里,其作用域仅限于该方法的范围内(进一步隐藏),在其它方法里定义也没有名字冲突问题,。,实现一个接口,但只返回一个句柄,在一编写好的代码中加一个类,但又不想公开化。,8-Parcel4,条件分支中的内部类,在条件分支中的内部类并不表示有

23、条件的建立,同其他类一样,在编译时就一道解决了,内部类只是限定它的作用域(在条件分支中使用)。,if(e),类定义,8-Parcel5,实现接口的无名内部类,return new Contents()/,调用隐含构造函数,private,int,i=11;/Contents,是接口,public,int,value()return i;,;,/,分号表示表达式的结束,该语句将返回值同表示返回值类型的类定义结合在一起。它相当于:,class,MyContents,implements Contents,private,int,i=11;,public,int,value()return i;,r

24、eturn new,MyContents,();,8-Parcel6,有名内部类例,public class,MyFrame,extends Frame,button1.,addActionListener,(,new Button1Adapter();,class Button1Adapter,implements,ActionListener,public void,actionPerformed,(,ActionEvent,e),.,/end of Button1Adapter class,/end of Frame1 class,匿名内部类例,匿名类可实例化一个接口,button1.,addActionListener,(new,ActionListener,(),public void,actionPerformed,(,ActionEvent,e),.,);,使用接口创建对象的一般途径是创建实现该接口的一个类定义,然后使用类来创建一个对象)。,

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服