序设计方式来构建一套属于自己的图形环境该怎么做呢

上传人:博****1 文档编号:569949355 上传时间:2024-07-31 格式:PPT 页数:34 大小:227KB
返回 下载 相关 举报
序设计方式来构建一套属于自己的图形环境该怎么做呢_第1页
第1页 / 共34页
序设计方式来构建一套属于自己的图形环境该怎么做呢_第2页
第2页 / 共34页
序设计方式来构建一套属于自己的图形环境该怎么做呢_第3页
第3页 / 共34页
序设计方式来构建一套属于自己的图形环境该怎么做呢_第4页
第4页 / 共34页
序设计方式来构建一套属于自己的图形环境该怎么做呢_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《序设计方式来构建一套属于自己的图形环境该怎么做呢》由会员分享,可在线阅读,更多相关《序设计方式来构建一套属于自己的图形环境该怎么做呢(34页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章抽象类和接口抽象类和接口假假设设我我们们要要用用面面向向对对象象的的程程序序设设计计方方式式来来构构建建一一套套属属于自己的图形环境,该怎么做呢?于自己的图形环境,该怎么做呢?首首先先,假假设设我我们们的的图图形形环环境境中中出出现现的的所所有有的的图图形形都都是是简简单单图图形形,它它们们可可以以圆圆形形、三三角角形形、正正方方形形或或者者其其他他的多边形。的多边形。因因为为这这里里定定义义的的环环境境是是一一个个坐坐标标系系统统,任任何何一一个个图图形形在在这这个个坐坐标标系系统统里里自自然然都都有有它它的的位位置置,所所以以我我们们可可以以先定义出一个基础类,再给其他的类继承

2、。先定义出一个基础类,再给其他的类继承。寞陵舶蔬嵌奉警断傲镭碗篱芥匠醛拓阳堡皮乙毋覆誊杰叙认娃夸瓦晾阉残序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢classShapeintx,y;voidMoveTo(intnewx,newy)x=newx;y=newy;而而对对于于各各个个图图形形,我我们们则则可可以以定定义义不不同同的的类类去去继继承承它它。例如:例如:咐垒执酚读沉抨胜嚏讳秤哺浦邦夫拇肾抚磐栗裸喉托侣刁偿厨燕喊称访净序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢classSquareex

3、tendsShapeintlength;voidDraw()System.out.println(我是正方形我是正方形);classCircleextendsShapeintr;/以以(x,y)为中心,画出一个边长是为中心,画出一个边长是length的正方形的正方形挽蛹容迂桶匠儒蚊询览诧屋水悦曾颂鸟涵机渠痛屡憋涛泅峦圈摈备任鸵隧序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢voidDraw()System.out.println(我是圆形我是圆形);/以以(x,y)为为中中心心,画画出出一一个个半半径径是是r的的圆圆形形现在问题来了,看看下面会

4、发生什么?现在问题来了,看看下面会发生什么?classShapeManagervoidmanage(Shapeobj)obj.Draw();抿髓纶蝉侨锐磕邱辽稀鲁宜新偿姜捍泡颖碟丙炎硬虏胚社苯瓦炯胺肢蘑莆序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢publicclassDemopublicstaticvoidmain(Stringargs)ShapeManagershape_man=newShapeManager();Squaresq=newSquare();Circleci=newCircle();shape_man.manage(sq);

5、shape_man.manage(ci);当当程程序序在在编编译译时时,会会因因为为Shape中中并并没没有有Draw这这个个方方法而造成编译错误。于是最好这样做:法而造成编译错误。于是最好这样做:杜藉萌涛宽扼监棕猩镭阐埋悔鄂昨令扒抱异范闭峪耐拙估花塞敛仗硫喉梦序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢classShapeintx,y;voidMoveTo(intnewx,intnewy)x=newx;y=newy;voidDraw();这这样样以以来来,含含有有abstract所所修修饰饰的的方方法法的的类类也也就就自自动动变成抽象类了。

6、变成抽象类了。abstractabstract玖音束巍贡莆灿眷娠蔬擅甫纂蹬究值橙漂醛司苹焉砾磁摧股额隐奠皂厦束序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢抽象类抽象类(abstractclass)就是用修饰符就是用修饰符abstract修修饰的类。在抽象类中,可以定义用修饰符饰的类。在抽象类中,可以定义用修饰符abstract修修饰的抽象方法。饰的抽象方法。抽抽象象方方法法只只是是一一个个定定义义,不不能能有有具具体体实实现现的的方方法法。通通常常抽抽象象类类不不具具备备实实际际功功能能,只只用用来来派派生生子子类类。抽抽象象方方法也必须在子

7、类中被抑制法也必须在子类中被抑制(overriding)。抽抽象象类类的的唯唯一一目目的的是是为为子子类类提提供供公公有有信信息息,它它是是用用来来被继承的,被继承的,抽象类不能创建对象。抽象类不能创建对象。51抽象类抽象类一、定义一、定义畜誊曝母脚耗焊摩催私衔粹灿厦竣台君嘴巷险攫题侍愧散谎衰牧危疲檄呀序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢abstractpublicclassShapeabstractpublicvoidDraw();在在此此抽抽象象类类中中定定义义了了抽抽象象方方法法Draw(),这这样样所所有有从从Shape中派生

8、的类都必须实现这个中派生的类都必须实现这个Draw()方法。方法。二、应用示例二、应用示例例子一:抽象类的使用程序例子一:抽象类的使用程序(AbstractClass.java)importjava.awt.*;importjava.applet.*;abstractclassShape袍理曙瓤熬湖宫泊询喧柑全天赠埃憾说辙杯翼入富咏猩孽吭镁通凹绸锗键序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢publicintx,y;publicintwidth,height;publicShape(intx,inty,intwidth,intheight)

9、/一个构造方法,在抽象类中也可以有常规的方法一个构造方法,在抽象类中也可以有常规的方法this.x=x;this.y=y;this.width=width;this.height=height;abstractdoublegetArea();/抽象方法只能在抽象类中存在抽象方法只能在抽象类中存在abstractdoublegetPerimeter();播肌菲封箕饺箍溉巴莲赦兔灭涉雹御酶革阻公提何拙砚策宜钩铰贱爬问使序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢classSquareextendsShapepublicdoublegetArea(

10、)/必须在子类中抑制抽象超类的方必须在子类中抑制抽象超类的方法法return(width*height);publicdoublegetPerimeter()/在子类中抑制抽象超类的方在子类中抑制抽象超类的方法法return(2*width+2*height);Square(intx,inty,intwidth,intheight)/构造方法构造方法super(x,y,width,height);磁政撑脸咕窥凉慨谤誓渡碳择扭祸竞薄举匡青皋棍夏栅颇筋匣瘁塑撤仪钥序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢classCircleextendsSh

11、apepublicdoubler;publicdoublegetArea()/抑制抽象超类的方法抑制抽象超类的方法return(r*r*Math.PI);publicdoublegetPerimeter()/抑制抽象超类的方法抑制抽象超类的方法return(2*Math.PI*r);汁匀与捅浸断戈靡障悯且苗俞澡蚊蓄亡诌滦甸莎藐第悯嫡悸眨蜕杀糯育傈序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢Circle(intx,inty,intwidth,intheight)/构造方法构造方法super(x,y,width,height);r=(double

12、)width/2.0;publicclassAbstractClassextendsAppletSquareBox=newSquare(5,l5,20,20);CircleOval=newCircle(5,50,20,20);publicvoidpaint(Graphicsg)g.drawRect(Box.x,Box.y,Box.width,Box.height);g.drawString(Area:+Box.getArea(),50,35);独渭酗踩姐荷便然发瘸蔡鱼兑被佐虞托入也辰敏暗谓盔聘膀径糟隶醇须燎序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该

13、怎么做呢g.drawOval(Oval.x,Oval.y,Oval.width,Oval.height);g.drawString(Area:+Oval.getArea(),50,70);例子二:抽象类的使用例子二:抽象类的使用程序程序(AbstractProduct.java)importjava.awt.*;importjava.applet.*;abstractclassProductdoublePrice,Cost;StringName;雄逃筹痢站贪吝镇氮湾裕合泅届碴免临拉瑞唁小榨喷洪垂躲层秒敬詹蜜债序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境

14、该怎么做呢publicProduct(StringName,doublePrice,doubleCost)this.Name=Name;this.Price=Price;this.Cost=Cost;publicabstractStringShowProduct();classBookextendsProductpublicBook(StringTitle,doublePrice,doubleCost)super(Title,Price,Cost);小甜喉杭孩憎车诛芍添呻涉蹿掀暂钩碴寡鼻募醉沥兄谁公碰原模君娃彬扣序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形

15、环境该怎么做呢publicStringShowProduct()return(Book:+Name+Price:$+Price);classCDROMextendsProductpublicCDROM(StringTitle,doublePrice,doubleCost)super(Title,Price,Cost);publicStringShowProduct()return(CD-ROM:+Name+Price:$+Price);香揖咨卸睬虚劫赵赞峨淳圾捍钉笋含骂憨膛店痪倚肩碎渤湍特耐流标奸拼序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢

16、publicclassAbstractProductextendsAppletBookJavaBook=newBook(JavaProgramming.,39,30);CDROMJavaLibrary=newCDROM(JavaProgrammersLibrary.,49.95,39.95);publicvoidpaint(Graphicsg)g.drawString(JavaBook.ShowProduct(),5,l5);g.drawString(JavaLibrary.Showproduct(),5,45);夺谎金岩拿秒麻妊哪滋呆荔缄孰矫靡屋聚掳来敬伊村斑家瑚惜彻呵钢筏樊序设计方式来构建

17、一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢本程序的本程序的.html文件为文件为:运行结果为:运行结果为:Book:JavaProgramming.Price:$39CD-ROM:JavaProgrammersLibrary.Price:$49.95欲鳖俐猜珠傣皑献牺庙粗外譬茎竹笨板颅瞬壕脉症詹钩邵铣颇本咐嚎散揩序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢5.2接口接口一、为什么要使用接口?一、为什么要使用接口?可可以以将将接接口口理理解解为为一一个个严严格格定定义义的的抽抽象象类类。接接口口是是一一组抽

18、象方法的定义和在类间共享它们的一种方式。组抽象方法的定义和在类间共享它们的一种方式。类继承对于重用超类中的代码很有用,而类继承对于重用超类中的代码很有用,而Java只支只支持单继承持单继承,在遇到需要多继承的情况,可以通过接口,在遇到需要多继承的情况,可以通过接口来帮助实现。(多态性)来帮助实现。(多态性)接接口口的的使使用用是是java的的OOP概概念念中中的的“多多态态性性”的的一一种种表现。表现。解章坑二扮摄祁孵茶渭诣延阎啼蒋蓝跋溉啥仗婿宗序欲捧彭弯回移娘咽蜀序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢例如:例如:类类A类类B类类C吃早

19、餐吃早餐(三明治三明治);吃早餐吃早餐(喝咖啡喝咖啡);吃早餐吃早餐(三明治三明治);吃午餐吃午餐(吃面条吃面条);吃午餐吃午餐(吃苹果吃苹果);吃午餐吃午餐(吃西餐吃西餐);吃晚餐吃晚餐(吃牛排吃牛排);吃晚餐吃晚餐(麦当劳麦当劳);吃晚餐吃晚餐(自助餐自助餐);接口是一组抽象行为,其可以结接口是一组抽象行为,其可以结合到任何类,可以把行为添加到合到任何类,可以把行为添加到没有被超类提供的类中。没有被超类提供的类中。综合为接口:综合为接口:接口接口一日三餐一日三餐吃早餐()吃早餐();吃午餐()吃午餐();吃晚餐()吃晚餐();时被哼汉蝇狰紊柏店团统拷棉抽虹畏着毕镰吸廷芍醋抢作浴捞翘襄腺菩碍

20、序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢53接口的定义及其使用接口的定义及其使用一、定义一、定义接接口口是是一一组组抽抽象象方方法法定定义义和和常常量量的的集集合合,在在接接口口中中没没有提供方法的实现。有提供方法的实现。Java的的接接口口是是为为相相互互没没有有关关系系的的类类实实现现同同样样的的一一组组方方法而提供的一种手段。法而提供的一种手段。接口是用来被使用的。接口是用来被使用的。定义方法为:定义方法为:publicinterface接口名接口名成成员员变变量量:但但它它们们必必须须是是说说明明为为public,static和和

21、final的常量。的常量。泌姿喘正抿绚嵌蹭棱块酶也睦霍扔私输霜神尼榆膀新笛倾债郴胺戊族薛窥序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢成成员员方方法法:这这些些方方法法不不能能够够有有方方法法体体。如如同同抽抽象象方方法法一一样样,是是用用publicabstract修修饰饰的的方方法法。默默认认为为public。说明:说明:(1)象象在在类类中中用用abstract方方法法一一样样,在在接接口口内内的的方方法法不能具有方法体,一个接口是纯设计,不包含实现。不能具有方法体,一个接口是纯设计,不包含实现。(2)用用户户必必须须在在自自己己的的类

22、类中中对对接接口口中中的的所所有有方方法法进进行行说说明明;子子类类可可以以直直接接继继承承使使用用接接口口的的超超类类中中的的各各种种方方法,并能够超越(抑制)或重载它们。法,并能够超越(抑制)或重载它们。酚抉劈吃丰茵哈刊逢霍仍鼓颂斤隅茵骇撕坠棕赡峙辣拌李钎挝杰肌锭筛噬序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢二、二、接口与抽象类的差别接口与抽象类的差别按照类的按照类的封装概念封装概念接接口口抽抽象象类类变量变量常量:必须同时使用常量:必须同时使用public,static和和final3个修饰符个修饰符没有限制没有限制方法方法所有方法只

23、能被声明而不能所有方法只能被声明而不能被定义,并且都是被定义,并且都是public的的至少有一个方法只被至少有一个方法只被声明而没有被定义声明而没有被定义用途用途被使用被使用被继承被继承例如:例如:publicinterfaceShapepublicabstractvoiddraw(Graphicg);厩抬乳吼薪蛮尾帖淑肥蓉没杠品酞赡弓磺额鹃舍兹估羞苏定憾硅匀尹发典序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢publicinterfaceRectextendsShapepublicabstractvoidsetSize(Dimensionsi

24、ze);publicabstractDimensiongetSize();三、使用接口三、使用接口用用implements关键字在类的定义中使用接口关键字在类的定义中使用接口例如例如:public classmyappletextendsAppletimplementsmyInterface类体类体眩前吉恩羞憾秋盅仑昆鹅查胎贮傣酌逃婆丘量蔬邯脯蓖陛去掩海诸凉党恤序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢四、一个实现四、一个实现Java接口的例子接口的例子importjava.awt.*;importjava.applet.*;publici

25、nterfaceShape/定义接口定义接口abstractdoublegetArea();abstractdoublegetPerimeter();classCoordinates/定义类定义类Coordinatesintx,y;梭磨徽遮旦啃泣瀑跋胀机篇挥凌坎诽衣懒取肺獭枣哥谬猴很豪儒记午当跟序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢Coordinates(intx,inty)/构造方法构造方法this.x=x;this.y=y;classSquareextendsCoordinatesimplementsShapes/定义类定义类Coo

26、rdinates的子类的子类Square,并且实现接口,并且实现接口Shapepublicintwidth,height;publicdoublegetArea()return(width*height);/实现接口中的方法,它实现接口中的方法,它必须是必须是public的的曾沙糯住妓位表佑菜谜赵赣吴俺顾居销鸦椿力迅巾瓶诵哦诉宿奥瞳榴缝务序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢publicdoublegetPerimeter()return(2*width+2*height);Square(intx,inty,intwidth,inthe

27、ight)/构造方法构造方法super(x,y);/调用超类的构造方法调用超类的构造方法this.width=width;this.height=height;/类类Square定义结束定义结束扯茅字灵吧提概质靶省吾旬瘴掐炎窑猛塘沿砒婿晒湛道叠厌甸称坷缎鄙帐序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢classCircleextendsCoordinatesimplementsShapes/定定义义类类Coordinates的的子子类类Circle,并并且且实实现现接接口口publicintwidth,height;publicdoubler

28、;publicdoublegetArea()/在使用接口的类中要显示表示在使用接口的类中要显示表示publicreturn(r*r*Math.PI);publicdoublegetPerimeter()/实现接口中的方法实现接口中的方法return(2*r*Math.PI);凄哥售侨足佛必岗蕉疡筒糟靠中粒用壮烁磁室咳伺聘娟丛俄千堂蜗玖施做序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢publicCircle(intx,inty,intwidth,intheight)/构造方法构造方法super(x,y);this.width=width;thi

29、s.height=height;r=(double)width/2.0;/类类Circle定义结束定义结束publicclassExtendAndImplementextendsAppletSquareBox=newSquare(5,15,25,25);CircleOval=newCircle(5,50,25,25);杨绎欲铭凭驴靡惮植眶舀削每蜜翱咏伶沛恳盈渤汉扰臃痉客酞抽冰街买辗序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢publicvoidpaint(Graphicsg)g.drawRect(Box.x,Box.y,Box.width,B

30、ox.height);g.drawString(“Area:”+Box.getArea(),50,35);g.drawOval(Oval.x,Oval.y,Oval.width,Oval.height);g.drawString(“Area:”+Oval.getArea(),50,70);使用接口的好处:使用接口的好处:1先定义一个抽象类的协议而不管其具体实现。先定义一个抽象类的协议而不管其具体实现。2多多个个类类可可共共享享相相同同的的接接口口,相相互互间间不不用用管管其其它它类类是是如如何何定定义义该该接接口口的的方方法法。如如果果你你使使用用了了接接口口,其其它它用用户就可以了解到如何调

31、用这个类的方法。户就可以了解到如何调用这个类的方法。怜隅啄褪欢羞研猾粮宏涨强砷怂房顺孩烟矛国涅吠簧沼啥吹钳唬普吹袒蝴序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢类类爷爷爷爷类类奶奶奶奶类类爸爸爸爸类类妈妈妈妈聪明聪明谦虚谦虚幽默幽默善良善良class小小威威extends爸爸爸爸幽默幽默java不支持多继承,所以小不支持多继承,所以小威威不能不能用多继承的方式继用多继承的方式继承大家的优点:承大家的优点:class小威小威 extends爸爸,妈妈,爷爷,奶奶爸爸,妈妈,爷爷,奶奶3、间接实现对类的多重继承作用、间接实现对类的多重继承作用施梯

32、咏橡壳轩铅濒絮骗照矗佑面帜期藕习杀闻尉损兰恶葵督隆潍粥吐笑英序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢interface遗传遗传聪明;聪明;/爷爷的优点爷爷的优点谦虚;谦虚;/奶奶的优点奶奶的优点善良;善良;/妈妈的优点妈妈的优点class小威小威extends爸爸爸爸implements遗传遗传/完美的小威完美的小威但是他却可以通过接口来达到目的:但是他却可以通过接口来达到目的:巡揽惑很当拒一荣拒尽负狄眠氟燎卿拎岸语茄萄都僧贯钞装蓑现斌掩私镐序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢接

33、口回调是指:可以把接口回调是指:可以把使用某一接口类使用某一接口类创建的对象的引创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口中的方法。调用被类实现的接口中的方法。当接口变量调用被类实现的接口中的方法时,就是当接口变量调用被类实现的接口中的方法时,就是通知通知相应的对象调用接口的方法。相应的对象调用接口的方法。例子:例子:P78例子例子 4.2854 接口回调接口回调寝烦耗桃拆尖瘩恿列蛹榔爸邮罚胞哑妓她芝楞撂答篇虏姿繁瘤怀邵硷粪末序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环

34、境该怎么做呢interfaceShowMessagevoid显示商标显示商标(Strings);/接口中的方法默认都是接口中的方法默认都是publicclassTVimplementsShowMessagepublicvoid显示商标显示商标(Strings)/在使用接口的类中要显示表示在使用接口的类中要显示表示publicSystem.out.println(s);classPCimplementsShowMessagepublicvoid显示商标显示商标(Strings)System.out.println(s);磅枯饿颗潮邀话瓣帧庇限智缎嚼特蔫眨堰填皑踌掣部酝扔冶升悸拯棉痞氏序设计方式来

35、构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢publicclassEXAMPpublicstaticvoidmain(Stringargs)ShowMessagesm;/声明接口变量声明接口变量sm=newTV();/接口变量中存放对象的引用接口变量中存放对象的引用sm.显示商标显示商标(“熊猫电视熊猫电视”);/接口回调接口回调sm=newPC();/接口变量中存放对象的引用接口变量中存放对象的引用sm.显示商标显示商标(“IBMPC”);/接口回调接口回调狮昂嚼伯做笼其金球滩土代掏玩矫模地驱架祷勉粪爬系绍测酵尉支岂瓤雄序设计方式来构建一套属于自己的图形环境该怎么做呢序设计方式来构建一套属于自己的图形环境该怎么做呢

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号