《JAVA语言程序设计》第3章课件

PPT
  • 阅读 39 次
  • 下载 0 次
  • 页数 26 页
  • 大小 286.559 KB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档15.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
《JAVA语言程序设计》第3章课件
可在后台配置第一页与第二页中间广告代码
《JAVA语言程序设计》第3章课件
可在后台配置第二页与第三页中间广告代码
《JAVA语言程序设计》第3章课件
可在后台配置第三页与第四页中间广告代码
《JAVA语言程序设计》第3章课件
《JAVA语言程序设计》第3章课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 26
  • 收藏
  • 违规举报
  • © 版权认领
下载文档15.00 元 加入VIP免费下载
文本内容

【文档说明】《JAVA语言程序设计》第3章课件.ppt,共(26)页,286.559 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-45114.html

以下为本文档部分文字说明:

1对象和类(续)对象的创建对象的使用对象的释放对象的访问2对象的创建对象成员(变量和方法)静态(static)成员:属于类实例成员:属于对象创建对象/实例化对象—new例1:Applea=newApple();(创建对象)例2:Applea;(对象的说明

)a=newApple();(实例化对象)1.对象的实例化通过构造方法(constructor)来实现2.构造方法的名字与类名相同3.构造方法没有返回值4.构造方法可以有多个,构成方法的重载(overload)3例:对象的实例化和初始化publicstatic

voidmain(Stringargs[]){Squares1=newSquare();Squares2=newSquare(20,50);Squares3=newSquare(s1);System.out.println(s1.width()+“”+s

1.height());System.out.println(s2.width()+“”+s2.height());System.out.println(s3.width()+“”+s3.height());}}classSquare{inta,h;Square(){a=10;h=

20;}Square(intx,inty){a=x;h=y;}Square(Squares){a=s.width();h=s.height();}intwidth(){returna;}intheight(){returnh;}计算结果:102020501020对象的创建4默认构造方法例cla

ssApple{intcolor;}Applea=newApple();对象实例的判断:null例Applea;if(a==null)System.out.println(“Daydream”);对象

的创建运行时系统自动赋予一个空构造函数如publicApple(){;}5再谈构造方法对象的创建classMyTest{MyTest(booleanb){}publicstaticvoidmain(St

ringargs[]){//MyTestm1=newMyTest();MyTestm2=newMyTest(false);}}classMyTest{MyTest(booleanb){}MyTest(){}publicstaticvoidmain(Stringargs[]){

MyTestm1=newMyTest();MyTestm2=newMyTest(false);}}运行时系统自动赋予一个空构造方法,仅仅当该类没定义构造方法的情况下6对象和类(续)对象的创建对象的使用对象的释放对象的访问7对象的使

用通过对象引用对象的成员变量和成员方法classSquare{inta,h;Square(){a=10;h=20;}Square(intx,inty){a=x;h=y;}Square(Squarer){a=r.width()

;h=r.height();}intwidth(){returna;}intheight(){returnh;}voidset(intx,inty){a=x;h=y;}}q1.set(30,40);q1.a=30;q1.h=40;目的相同第一方式更安全、更面向对象(数据封装)避免直接操纵

变量8对象的使用引用对象的变量格式:对象名.变量名引用对象的方法格式:对象名.方法名例1Vectorv=newVector();v.addElement(“s1”);例2inta[]={1,2,3,4,5};intsize=a.length;例3Syste

m.out.println();9对象和类(续)对象的创建对象的使用对象的释放对象的访问10对象的释放将对象从内存中清除内存的管理(枯燥、容易出错)垃圾回收(GarbageCollection

)TheJavaplatformallowsyoutocreateasmanyobjectsasyouwant(limited,ofcourse,bywhatyoursystemcanhandle),andyou

don'thavetoworryaboutdestroyingthem.TheJavaruntimeenvironmentdeletesobjectswhenitdeterminesthattheyarenolongerbeingused.Th

isprocessiscalledgarbagecollection.11对象的释放垃圾搜集器(GarbageCollector)周期性地释放不再被引用的对象,自动完成手动完成,System.gc();(java.lang.System中)publicstaticvoidgc()

--Runsthegarbagecollector.12对象和类(续)对象的创建对象的使用对象的释放对象的访问13对象的访问访问对象的私有(private)成员通过定义一个公共方法来实现classStudent{privateStringnam

e;privateStringid;Student(Strings1,Strings2){name=s1;id=s2;}StringgetName(){returnname;}voidsetName(Strings){name=s;}}Students

t=newStudent(“李忠”,“001”);Strings=st.getName();……st.setName(“李晓”);s=st.getName();……14对象的访问对象作为方法的参数[访问权限修饰符]方法

返回类型方法名(参数)[throws异常名]{方法体;}参数:类型变量名,……类型:基本数据类型/复合类型(对象)参数的传递Passbyvalue15例对象用作方法的参数对象的访问classTest{publicstaticvoidmain(

Stringargs[]){Spots=newSpot(2,3);System.out.println(“s点的坐标:”+s.getX()+“,”+s.getY());Transts=newTrans();ts.move(s,4,5);System.

out.println(“s点的坐标:”+s.getX()+“,”+s.getY());}}classSpot{privateintx,y;Spot(intu,intv){setX(u);setY(v);}voidsetX(in

tx1){x=x1;}voidsetY(inty1){y=y1;}intgetX(){returnx;}intgetY(){returny;}}classTrans{voidmove(Spotp,in

th,intk){p.setX(p.getX()+h);p.setY(p.getY()+k);}}D:\javaTests点的坐标:2,3s点的坐标:6,816例对象用作方法的参数对象的访问classTest{publicstaticvoidmain(Strin

gargs[]){Spots=newSpot(2,3);System.out.println(“s点的坐标:”+s.getX()+“,”+s.getY());Spot.move(s,4,5);System.out.println(“s点的坐标:”+s.getX()+“,”+s.get

Y());}}classSpot{privateintx,y;Spot(intu,intv){setX(u);setY(v);}voidsetX(intx1){x=x1;}voidsetY(inty1){y=y1;}intgetX(){returnx;}intget

Y(){returny;}staticvoidmove(Spotp,inth,intk){p.setX(p.getX()+h);p.setY(p.getY()+k);}}D:\javaTests点的坐标:2,3s点的坐标:6,817例对象用作方法的参数对象

的访问classTest{publicstaticvoidmain(Stringargs[]){Spots=newSpot(2,3);System.out.println(“s点的坐标:”+s.get

X()+“,”+s.getY());s.move(4,5);System.out.println(“s点的坐标:”+s.getX()+“,”+s.getY());}}classSpot{privateintx,y;Spot(intu,intv){setX(u);setY(v);

}voidsetX(intx1){x=x1;}voidsetY(inty1){y=y1;}intgetX(){returnx;}intgetY(){returny;}voidmove(inth,intk){x=x+h;y=y+k;}}D:\ja

vaTests点的坐标:2,3s点的坐标:6,818对象的访问对象的访问对象作为方法的返回值[访问权限修饰符]方法返回类型方法名(参数)[throws异常名]{方法体;}返回类型有返回值:基本数据类型/复合类型(对象)无返回值:void19对象的访问对象作为方法的返

回值例:求两点坐标之间的中点坐标思路:(x1,y1)和(x2,y2)(x,y)x=(x1+x2)/2,y=(y1+y2)/2Spots1=newSpot(2,3);Spots2=newSpot(4,5);

Spots=s1.midSpot(s2);20例对象用作方法的返回值对象的访问classTest{publicstaticvoidmain(Stringargs[]){Spots1=newSpot(3.0,5.

0);Spots2=newSpot(6.0,8.0);System.out.println(“s1点的坐标:”+s1.getX()+“,”+s1.getY());System.out.println(“s2点的坐标:”+s2.get

X()+“,”+s2.getY());Spots=s1.midSpot(s2);System.out.println(“中点的坐标:”+s.getX()+“,”+s.getY());}}classSpot{privatedoublex,y;

Spot(doubleu,doublev){setX(u);setY(v);}voidsetX(doublex1){x=x1;}voidsetY(doubley1){y=y1;}doublegetX(){returnx;}doublegetY(){

returny;}SpotmidSpot(Spots){doublemidX=(x+s.getX())/2;doublemidY=(y+s.getY())/2;returnnewSpot(midX,midY);}}D

:\javaTests1点的坐标:3.0,5.0s2点的坐标:6.0,8.0中点的坐标:4.5,6.521对象的访问数组:类型相同的一列元素作为一个对象看待publicclassArrayDemo{publicstaticvoidmain(String

[]args){int[]anArray=newint[10];for(inti=0;i<anArray.length;i++){anArray[i]=i;System.out.print(anArray[i]+

"");}System.out.println();}}22对象的访问对象数组classStudent{privateStringname;privateStringid;Student(Strings1,

Strings2){name=s1;id=s2;}StringgetName(){returnname;}voidsetName(Strings){name=s;}voiddisplay(){System.out.println(name+“”+id);}

}Studentst[]=newStudent[10];for(inti=0;i<st.length;i++){st[i]=newStudent(…);}for(inti=0;i<st.length;i++){st[i].d

isplay();}23对象的访问对象作为另一个对象的成员变量一个对象中包含另一个对象,组合关系classMobilePhone{privateStringtype;privateWatchw;MobilePhone(Strings){type=s;}voidsetWat

ch(Watcha){w=a;}longgetTime(){returnw.getTime();}}classWatch{longgetTime(){returnSystem.currentTimeMillis();}}MobilePhonemp=newMob

ilePhone(“nokia”);Watchw=newWatch();mp.setWatch(w);longl=mp.getTime();publicstaticlongcurrentTimeMillis()thedi

fference,measuredinmilliseconds,betweenthecurrenttimeandmidnight,January1,1970UTC24对象的访问关键词thisthis指当前对象应用1:加强程序可读性(this可有可无)classDemo1{do

ublex,y;Demo1(doublei,doublej){this.x=i;this.y=j;}doubleave(){return(x+y)/2;}publicstaticvoidmain(Stringargs[]){Demo1d=newD

emo1(3,4);System.out.println(d.ave());}}classDemo2{intx,y,z;Demo2(inta,intb){x=a;y=b;this.swap(a,b);}voidswap(inta,intb){intt;if(x<

y){t=x;x=y;y=t;}}}25对象的访问关键词thisthis指当前对象应用2:对同一个对象执行多次方法调用classLeaf{inti=0;Leafincrement(){i++;r

eturnthis;}voidprint(){System.out.println(“i=”+i);}publicstaticvoidmain(Stringargs[]){Leafx=newLeaf();

x.increment().increment().increment().print();}}D:\javaLeafi=326对象的访问关键词thisthis指当前对象应用3:在一个构造函数中调用另一个构造

函数classFlower{Stringname;intprice;Flower(){this("tulip",10);}Flower(Strings,inti){name=s;price=i;}voidprint(){System.out.

println(name+""+price);}publicstaticvoidmain(Stringargs[]){Flowerf=newFlower();f.print();}}D:\javaFlowertulip10

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?