![尚第6章面向对象编程下_第1页](http://file4.renrendoc.com/view/7bdbe237b7cc267d8ed92c8aae44c5eb/7bdbe237b7cc267d8ed92c8aae44c5eb1.gif)
![尚第6章面向对象编程下_第2页](http://file4.renrendoc.com/view/7bdbe237b7cc267d8ed92c8aae44c5eb/7bdbe237b7cc267d8ed92c8aae44c5eb2.gif)
![尚第6章面向对象编程下_第3页](http://file4.renrendoc.com/view/7bdbe237b7cc267d8ed92c8aae44c5eb/7bdbe237b7cc267d8ed92c8aae44c5eb3.gif)
![尚第6章面向对象编程下_第4页](http://file4.renrendoc.com/view/7bdbe237b7cc267d8ed92c8aae44c5eb/7bdbe237b7cc267d8ed92c8aae44c5eb4.gif)
![尚第6章面向对象编程下_第5页](http://file4.renrendoc.com/view/7bdbe237b7cc267d8ed92c8aae44c5eb/7bdbe237b7cc267d8ed92c8aae44c5eb5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6面向
:尚硅谷Java基础知识
性
本章内类的成员之四 类的成员之五6-16-1关键字 都共享这个国家名称,不必在每一 age:age:20age:age:
contry: SportsMans2==" s2.age=32;s2.nation=
SportsMans1==" s1.age=35; class
关键字privatedoublepublicCircle(doublepublicdoublefindArea(){return创建两个Circle对Circlec1=newCirclec2=new
Circle类中的变量radius是一个实例变量(instancevariable),上例中c1的radius独立于c2的 在不同的空间如如果想让一个类的所有实例共享数据,就用类变量类属性、类方法的设计用类方法,从而简化了方法的
关键字随着类的加载而优先于对象修饰的成员,被所有对象所权限允许时,可不创建对象,直接被类调classCircleprivatedoublepublicstaticStringname这是一个publicstaticStringreturnpublicCircle(doubleradius)this.radius=radius;}publicdoublefindArea(){returnMath.PI*radius*radius;}publicvoiddis
publicstaticvoidargs)Circlec1=newCircle(2.0);Circlec2=newCircle(3.0);c1.disy(); }}堆栈类变量(class
+total+total:int=-id:
public privateintpublicstaticinttotal= ()
}
id= privateintpublicstaticinttotal= (){id=total;
类变量应用}publicstaticvoidmain(String total=100;//不用创建对象就可 静态成}}publicclassOtherClasspublicstaticvoidmain(Stringargs[]).total=100;//不用创建对象就可 静态成 方式:类名.类属性,类名.类方 c=new //输出类方法(class没有对象的实例时,可以用类名.方法名()的形 由static标记的类方法在static方法内部只 类的static属性,不 类的非static属性 Theoutputis:NumberoftotalTheoutputis:Numberoftotalis0Numberoftotalisprivatestaticinttotal=publicstaticint () return} (){id=publicclass publicstaticvoidmain(String[]args)System.out.println("Numberoftotalis" //没有创建对象也可 静态方p1= System.out.println("Numberoftotalis 能有this。(也不能有super?YES!)重载的方法需要同时为static的或者非static的 privateintprivatestaticinttotal=publicstaticvoid (int ,在static方法中不能有this,也不能有} ()id=total;publicclass publicstaticvoidmain(String[]args) }练习 单例(Singleton)法以返回类内部创建的对象,静态方法只能类中的静态成class
单例(Singleton)设计模式-饿汉privateSingle(){}privatestaticSingleonlyone=newpublicstaticSinglegetSingle(){return}}publicclasspublicstaticvoidmain(Stringargs[]){Singles1=Single.getSingle();Singles2=Single.getSingle();if
System.out.println("s1isequalstoclass
单例(Singleton)设计模式-懒汉暂时懒汉式还程安暂时懒汉式还程安全问题,讲到多线时,可修private}//2. 类//4.也需要配合static的方法,用static修饰此类 privatestaticSingletoninstance=//3.设置公共的方法 类的实publicstaticSingleton//3.1如果类的实例未创建,那些先要创建,然后返回给调用者:本类因此,需要static修饰if(instance==instance=new}//3.2若有了类的实例,直接返回给调用者return}举例6-26-2理解main理解main方法的命令行参数用法publicclassCommandParapublicstaticvoidmain(String[]args){for(inti=0;i<args.length;i++){System.out.println("args["+i+"]="+}}运行程 javaCommandPara"lisa""bily""Mr输出输出结果args[0]=lisaargs[1]=bilyargs[2]=MrBrown6-36-3类的成员之四:类的成员之四:初对Java类或对象进行初显式初始化、多个初始化块依次被执行(同级别下按先后顺一个类中初始化块若有修饰符,则只能被static修饰,称为静态代码块(staticblock),当类被载入时,类属性的声static块通常用于初始化static(类)属 publicstaticintstatictotal100;//为total}}类的成非静态代码块:没有static修饰的代码 静态代码块:用static修饰的代码 。静态初始化块 publicstaticinttotal;static{total=输出输出instatic}publicclassTestpublicstaticvoidmain(String[]args){System.out.println("total="+ } 举例二6-4关键字在Java中 类、变量和方法时,可使用关键字finalfinal标记的方法不能被子类finl标记的变量成员变量或局部变量即称为常量。名。final标记的成员变量必须 的同时或在每个构造finaldoublefinalfinalclass}classBextends}
final修饰classpublicfinalvoid}}classBextendspublicvoid }}final修饰变量——常classprivatefinalStringINFOatguigu”; publicvoid//INFO尚硅谷}}常量名要大写,内容不可修改。——如同古 关键字final应用举publicfinalclasspublicstaticinttotalNumber=5;publicfinalintID;publicIDtotalNumber;//可在构造方法中给final变量赋}publicstaticvoidmain(String[]args){Testt=newTest();finalintI=finalintJ;J=20;J=30;排错publicclassSomething{publicpublicclassSomething{publicintaddOne(finalintx){return++x;}publicstaticvoidmain(String[]args){Othero=newOther();newSomething().addOne(o);}publicvoidaddOne(finalOthero){}classOtherpublicinti;6-56-5抽象类 抽象 Method(inta含有抽象方法的类必须被为抽象类。不能用修饰属性、私有方法、构造器、静态方classvoidm1(publicvoidm2(
抽象类}}classBextendsA{voidm1(){}}publicclasspublicstaticvoidmain(Stringargs[]){Aa=newB();a.m1(a.m2(}}分别计算工具的效率和抽象类解决方Java允许类设计者指定:超 一个方法但不提供实现,该方法的实现由类提供。这样的方法称为抽象方法。有一个 抽象方法的类称为抽象类Vehicle是一个抽象类,有两个抽象方法 class double //计 效率的抽象方 double }publicclassTruckextendspublicdoublecalcFuelEfficiency( {//写出计算卡车 效率的具体方法publicdoublecalcTripDistance {//写出计算卡车行驶距离的具体方法}publicclassRiverBargeextendspublicdoublecalcFuelEfficiency(){//写出计算驳船的 效率的具体方法}publicdoublecalcTripDistance(){//写出计算驳船行驶距离的具体方法}}注注意:抽象类不能实例化newVihicle() 有奖金(bonus)的属性。请使用继承的思想,设计 模板方法设计模式 解决的问题部实是确分 子现。模板方法设计模式 class publicfinalvoidlongstart=longend=System.out.println("执行时间是:"+(end-} void}classSubTem teextendsTem publicvoidcode(){for(inti=}}6-66-6接口有时必须从几个类中派生出一个子类,继承它们所有的a接口(interface)是抽象方法和常量值的定义的集从本质上讲,接口是一种特殊的抽象类,这种抽象类中实现接口一个类可以实现多个学学习英的技(接口(抽象类学(抽象类篮球动跨栏动中学接口的特点 publicinterfaceRunnerpublicpublicinterfaceRunnerpublicstaticfinalintID=voidvoidvoid}intID=1;voidstart();publicvoidvoid}<modifier>class<name>[extends<superclass>][implements<interface>[,<interface>]*]{<}接口应用举例publicinterfaceRunner{publicvoidstart();publicvoidrun();publicvoidstop();
接口应用举例}publicclass implementsRunner{publicvoidstart(){}publicvoidrun()}publicvoidstop() }interfaceRunner{publicvoid接interfaceSwimmer{publicdouble接classCreator{publicint口classManextendsCreatorimplementsRunner,Swimmer{publicvoidrun(){……}口应publicdoubleswim()应publicinteat()} 与继承关系类似,接口与实现类之间存在多态举publicclass举例publicstaticvoidmain(Stringargs[]){Testt=newTest();例Manm=new}publicStringm1(Runnerf){f.run();}publicvoidm2(Swimmers){s.swim();}publicvoidm3(Creatora){a.eat();}}接口的其他如果实现接口的类中没有实现接口中的全部方法,必须将此类定义为抽象接口也可以继承另一个接口,使用extends关键interfaceStringpublicvoid}interfaceSubInterfaceextendspublicvoid}publicclassSubAdapterimplementsSubInterface{publicvoid}实现类SubAdapter必须给出接口SubInterface以及父接口MyInterface中所有方的实现工厂方法概述 适用性 工厂方法工厂方法总结作延了子类,从而提供了一种扩展的策略,较好的解概述
模式 interfacevoid} ObjectimplementsObjectpublicvoidaction(){ }
classObjectImplpublicvoidaction(){ }}publicclassTest2publicstaticvoidmain(String[]System.out.println("这 obj=new}}
Objectob= 接口用 接口和抽象类之间的 123456789限练习定义一个接口用来实现两个对象的比较interfacepublicintcompareTo(Object //若返回值是0,代表相等;若为正数代表当前对象大;负数代表当前}定义一个Circle定义一个ComparableCircle类,继承 类并且实现 pareObject接口。 定义一个测试类TestInterface建两个ComparableCirclecompareTo方法比较两个类的半径大小思考:参照上述做法定义矩形类和parableRectangle类,在 类中给出pareTo方法的实现,比较两个矩形的面接口的应用6-76-7类的成员之五:类的成 它Innerclass的名字不能与包含它的类名相Innerclass可以使用外部类的私
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年技术提升互助协议
- 2025年中学数学辅导教师合同模板
- 2025年专属权协议
- 2025年住宅翻新半包简约协议范本
- 2025年上海市全球供应链合作框架协议
- 2025年公园道路铺装施工合同范本
- 2025年原始设备生产合同
- 2025年协议离婚全程操作实务
- 2025年产品销售合同文本
- 2025年家电定制产品代理合同范文
- 水土保持方案中沉沙池的布设技术
- 安全生产技术规范 第25部分:城镇天然气经营企业DB50-T 867.25-2021
- 现代企业管理 (全套完整课件)
- 走进本土项目化设计-读《PBL项目化学习设计》有感
- 《网店运营与管理》整本书电子教案全套教学教案
- 教师信息技术能力提升培训课件希沃的课件
- 高端公寓住宅项目营销策划方案(项目定位 发展建议)
- 执业兽医师聘用协议(合同)书
- 第1本书出体旅程journeys out of the body精教版2003版
- [英语考试]同等学力英语新大纲全部词汇
- 2022年肝动脉化疗栓塞术(TACE)
评论
0/150
提交评论