第3章 Java程序语言及设计_第1页
第3章 Java程序语言及设计_第2页
第3章 Java程序语言及设计_第3页
第3章 Java程序语言及设计_第4页
第3章 Java程序语言及设计_第5页
已阅读5页,还剩150页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1Java语言程序设计2第三章 面向对象特征1.基本概念2.类的定义3.对象4.类的继承和多态5.接口和包6.常用工具类33.1基本概念n什么是编程语言?n人和计算机进行交流的工具和手段n编程语言的发展n机器语言: 0101001n汇编语言: mov, push, add, calln第三代语言: 高级语言,以C语言为代表,过程式编程语言(Procedural Programming Language)n第四代语言: 非过程化/面向对象的编程语言n语言的发展: 抽象的过程4n面向对象(Object Oriented-OO) n面向对象编程(Object Oriented Programming

2、-OOP)n面向对象是一种软件开发的方法,面向对象的分析与设计(OOA&OOD研究生课程)n第一个面向对象的语言: Simula-67n第一个成功的面向对象编程语言: SmalltalknC+, JAVA, C#, PERL等1.用客观世界中描述事物的方法来描述程序中要解决的问题2.万事万物都是对象3.程序便是成堆的对象,彼此通过消息的传递,请求其他对象进行工作 3.1基本概念5n五个基本概念1.对象2.类3.封装性4.继承性5.多态性3.1基本概念61.对象 (object)neverything is an objectn现实世界的对象: 桌子、书、自行车、电视、狗、文件、表格、按

3、钮、窗口n对象包含两个特性n状态: 指对象本身的信息(内部信息/内部变量)n行为: 实现对信息的访问/对象的操作n标志: 代表对象的标识符n山地车的状态(两个车轮、一些齿轮、速度、挡数),行为(刹车、加速、减速和换挡)n书包含很多信息,拥有访问所包含信息的方法,一页一页的看,通过目录找到感兴趣的内容3.1基本概念71.对象 (object)n状态变量(variables)n行为方法(method)n对象就是变量和相关方法的软件集合n一个对象可以由其他对象组合而成,窗口(按钮,菜单条,文本框,状态栏等)n程序就是对象的集合,对象之间相互交互和通信完成任务3.1基本概念82.类 (class)n亚

4、里士多德: the class of fishes and the class of birdsn现实世界中,存在很多同类的对象,很多桌子、书、自行车n一种原型,一种抽象,一种共性,一个模板nEvery object has a typen实例(instance),某类对象的一个特定实体,类是对象的一个抽象n表格(类) 填入不同的个人信息不同的对象3.1基本概念93.封装性n对象本身的数据得到保护/隐藏n其他对象仅仅需要知道对该对象的访问方法(接口/interface)即可n好处n模块化-每个对象的源文件可以是相互独立的,可以被不同的程序调用,每个对象是一块积木,可以搭建不同的形状n信息隐藏-

5、通常定义一个公共接口/方法实现对对象的访问,可以调整对象的私有信息和方法,而不会对其他调用它的对象产生影响n可重用性n黑盒子n电脑的DIYn喷墨打印机,硒鼓坏/彩色硒鼓3.1基本概念104.继承性n为什么会有继承?n建立一个类后,发现另一个新的类有相同的特性,两个选择:重新定义一个新的类;在已有类的基础上,修改(加加/减减)n父类和子类,子类继承(拥有)父类所有的数据和方法,同时子类可以有新的数据和方法,青出于蓝,而胜于蓝n树型结构(层次化结构) n根(基类)3.1基本概念114.继承性运输工具航空运输工具陆地运输工具水上运输工具人力驱动引擎驱动二轮四轮客运货运3.1基本概念124.继承性n多

6、重继承类A类B类C类D类F类Gn一个类拥有多个父类产生二义性,例类C和类D都有一个同名的方法,类G?nJava中仅仅支持单一继承,同时Java采用Interface(接口)实现多重继承而避免父类二义性3.1基本概念135.多态性n表现在继承中方法的重写n子类从父类继承(extends扩展)而来n多个子类同属一个父类,所有子类有相同的父类n继承父类的方法n在不同的子类中有不同的表现形式n表现在用一个类中方法的重载3.1基本概念145.多态性n多态性在继承中的表现3.1基本概念155.多态性class Square extends Shape void draw() System.out.prin

7、tln(Square.draw(); void erase() System.out.println(Square.erase(); class Triangle extends Shape void draw() System.out.println(Triangle.draw(); void erase() System.out.println(Triangle.erase(); class Shape void draw() void erase() class Circle extends Shape void draw() System.out.println(Circle.draw

8、(); void erase() System.out.println(Circle.erase(); 3.1基本概念165.多态性public class Test public static Shape randShape() switch(int)(Math.random() * 3) default: case 0: return new Circle(); case 1: return new Square(); case 2: return new Triangle(); public static void main(String args) Shape s = new Shap

9、e9; for(int i = 0; i s.length; i+) si = randShape(); for(int i = 0; i javac A.javax has private access in A a.x = 100; print() has private access in A a.print(); 2 errors类成员的访问class A private int x;private void print() class B void test() A a = new A();a.x = 100;a.print();32nprotected (保护变量/保护方法)n容许

10、类本身、子类(有一定限制)以及同一个包中所有类访问(先构造对象,再访问)类成员的访问class A protected int x;protected void print() class B void test() A a = new A();a.x = 100;a.print();package abc;class A protected int x;protected void print() package xyz;import abc.A;class B extends A void test(A a, B b) a.x = 100;a.print();b.x = 100;b.pri

11、nt();/illegal/illegal/legal/legal33n无修饰 (友好变量/友好方法)n容许类本身以及同一个包中所有类访问类成员的访问class A int x;void print() class B void test() A a = new A();a.x = 100;a.print();package abc;class A int x;void print() package abc;class B void test() A a = new A();a.x = 100;a.print();34n小结名称访问权修饰符类本身子类包所有类公共public默认-保护prot

12、ected *私有private* 指子类与父类不在同一个包中的情况类成员变量的访问35nstatic (静态变量/静态方法)n类的变量/方法,独立于类的对象,可以直接根据类名调用class S static int A = 12, B = 34;static void print() class Test public static void main(String args) System.out.println(A= + S.A + B= + S.B);S.print();类成员变量36nstatic (静态变量/静态方法)class Test public void print(int

13、 x) System.out.println(x); public static void main(String args) int x = 3;print(x);D:javac Test.javaTest.java:9: non-static method print(int) cannot be referenced from a static context print(x); 1 errorclass Test public void print(int x) System.out.println(x); public static void main(String args) in

14、t x = 3;Test t = new Test();t.print(x);class Test public static void print(int x) System.out.println(x); public static void main(String args) int x = 3;print(x);static方法中仅仅可以调用其他static方法类成员37nfinal 变量/方法nfinal变量: 定义一个常数,即变量值不能改变final double AVOGADRO = 6.022e23;nfinal类: 不能有子类nfinal方法: 方法不能被重写(overrid

15、ing)class ChessAlgorithm . . . final void nextMove(ChessPiece pieceMoved, BoardLocation newLocation) . . . .类成员-变量38n小结n类: public, abstract, final, 无修饰, privaten类成员npublicnprotectednprivaten无修饰nstaticnfinal类成员-变量39n方法: 对象行为的描述n完成某种功能的程序块n定义: 访问权限修饰符 方法返回类型 方法名 () throws 异常名 方法体;n方法参数的传递n变量的作用域n方法的重载

16、(overloading)/重写(overriding)n方法的递归调用类成员-方法40n访问控制修饰符n公共访问控制符public n被所有类访问n默认访问控制符n被同一包中其他类访问n私有访问控制符 privaten被该类自身访问n保护访问控制符 protectedn该类自身、同一个包中的其他类、其他包中的子类访问n私有保护访问控制符private protectedn该类自身、所有子类访问类成员-方法的访问41n非访问控制修符n静态方法staticn属于类的方法n最终方法finaln不能被子类重新定义的方法n抽象方法abstractn只有方法说明,没有具体实现n本地方法nativen以其

17、他语言实现方法功能n同步方法synchronizedn用于多线程程序中的协调和同步类成员-方法的访问42n例成员-方法class Test public static void main(String args) double d_product;Area myArea;myArea = new Area(); d_product = myAduct();System.out.println(myArea的面积是: + d_product);class Area double width, height; void setV(double w, double h) width =

18、 w;height = h; double product() return width*height;43n方法参数成员-方法public static void main(String args) int x=3, y=4;Test p = new Test();System.out.println(x + + y);p.addI(x, y);System.out.println(x + + y);Vector c = new Vector();c.addElement(s1);c.addElement(s2);System.out.println(c.size();p.addV(c);S

19、ystem.out.println(c.size();import java.util.Vector;class Test private void addV(Vector v) v.addElement(s3); private void addI(int i1, int i2) i1 +; i2 +; 形参和实参D:java Parameter3 43 423注意1: 类型匹配注意2:基本类型与复合类型参数传递的结果不同Pass by ValueIn Java methods, arguments are passed by value. When invoked, the method

20、receives the value of the variable passed in. When the argument is of primitive type, pass-by-value means that the method cannot change its value. When the argument is of reference type, pass-by-value means that the method cannot change the object reference, but can invoke the objects methods and mo

21、dify the accessible variables within the object. 44n例成员-方法class Test public static void main(String args) ex A = new ex();A.p();class ex int u, v;void p2(int x, int y) int i, j;for (i=1; i=x;i+) j = y+i; System.out.print(j+ ); void p( ) u=3; v=2; p2(u, v);System.out.println();u+=v; v*=u; p2(u, v); u

22、=3; v=2;u=5; v=10;输出结果:3 4 511 12 13 14 1545n变量的作用域(成员变量/局部变量)成员-方法46n方法的重载(overload)n方法名相同,但方法的参数不同方法描述 方法名(标识符) 参数类型 方法返回值 绝对值 abs(a) int int绝对值 abs(a) long long绝对值 abs(a) float float绝对值 abs(a) double double public static int abs(inta) public static long abs(longa) public static float abs(floata)p

23、ublic static double abs(doublea) 成员-方法47n方法的重载(overload)public class Exam3_5 public static void main(String args) int i1=3, i2=5;char c1 =a, c2=b;float f1 = 3.1f, f2 = 4.1f;double d1 =2.5, d2 = 3.8;System.out.println(add(i1, i2);System.out.println(add(c1,i1);System.out.println(add(i1,f1);System.out.

24、println(add(f1,d2);System.out.println(add(d1,i2);static int add(int i, int j) return i+j; static double add(double i, double j) return i+j;成员-方法48n方法的重写(overriding)n子类重写父类的方法成员-方法class Father void display( ) ; class Son extends Father void display() ; Father f = new Father();f.display();Son s = new

25、Son();s.display();49构造方法n创建对象/实例化对象new 例1: Apple a = new Apple(); (创建对象)例2: Apple a; (对象的说明) a = new Apple(); (实例化对象)1.对象的实例化通过构造方法(constructor)来实现2.构造方法的名字与类名相同3.构造方法没有返回值4.构造方法可以有多个,构成方法的重载(overload)50n例: 对象的实例化和初始化class jex6_8 public static void main(String args) Qangle q1 = new Qangle(); Qangle

26、q2 = new Qangle(20, 50); Qangle q3 = new Qangle(q1); System.out.println(q1.width() + +q1.height(); System.out.println(q2.width() + +q2.height(); System.out.println(q3.width() + +q3.height();class Qangle int a, h;Qangle () a = 10; h = 20;Qangle(int x, int y) a = x; h = y;Qangle(Qangle r) a = r.width(

27、); h = r.height();int width() return a;int height() return h;输出结果:10 2020 5010 20构造方法51n再谈方法的重载(overload)构造方法class Tree int height; Tree() prt(Planting a seeding); height = 0; Tree(int i) prt(Creating new Tree that is + i + feet tall);height = i; void info() prt(Tree is + height + feet height); void

28、 info(String s) prt(s + : Tree is + height + feet height); static void prt(String s) System.out.println(s); for (int i =0; i 5; i+) Tree t = new Tree(i); (); (my tree);new Tree();52n默认构造方法例 class Apple int color; Apple a = new Apple();n对象实例的判断: null例 Apple a; if (a = null) System.out.pri

29、ntln(Day dream);构造方法运行时系统自动赋予一个空构造函数如 Apple() 53n再谈构造方法构造方法 class Cmethod Cmethod (boolean b) public static void main (String args) Cmethod c1 = new Cmethod(); Cmethod c2 = new Cmethod(false); class Cmethod Cmethod (boolean b) public static void main (String args) /Cmethod c1 = new Cmethod(); Cmetho

30、d c2 = new Cmethod(false); class Cmethod Cmethod (boolean b) Cmethod () public static void main (String args) Cmethod c1 = new Cmethod(); Cmethod c2 = new Cmethod(false); 运行时系统自动赋予一个空构造方法,仅仅当该类没定义构造方法的情况下54static变量的初始化class Smember static int i = 100;static boolean b = true;char c = t;public Smember

31、() public static void main(String args) Smember m1 = new Smember();Smember m2 = new Smember();不论产生多少个对象,属于类的静态变量只有一份,即只占有一份存储空间class Smember static int i; static boolean b;static i = 100;b = true;System.out.println(In static block);char c = t;public Smember() System.out.println(In constructor); publ

32、ic static void main(String args) Smember m1 = new Smember();Smember m2 = new Smember();输出结果In static blockIn constructorIn constructor553.2.6 抽象类(abstract class)n一个未完成的类n仅仅抽象类可以包含抽象方法(abstract methods)n抽象方法: 仅仅申明了方法,但未实现n有访问修饰词n返回值类型n方法名n参数列表n无方法体563.2.6抽象类(abstract class)abstract class Point int x

33、= 1, y = 1;void move(int dx, int dy) x += dx;y += dy;alert();abstract void alert();abstract class ColoredPoint extends Point int color;class SimplePoint extends Point void alert() 抽象方法: 有访问修饰词、返回值类型、方法名和参数列表,无方法体573.2.6抽象类(abstract class)n抽象类不能被实例化,例Point p = new Point(); n子类继承抽象类时,必须重写抽象方法,否则仍为抽象类a

34、bstract class Point int x = 1, y = 1;void move(int dx, int dy) x += dx;y += dy;alert();abstract void alert();abstract class ColoredPoint extends Point int color;class SimplePoint extends Point void alert() Point p = new SimplePoint();58抽象类(abstract class)n多态性abstract class Graphics abstract void par

35、ameter();abstract void area();class Rectangle extends Graphics double h, w;Rectangle (double u, double v) h = u; w = v;void parameter() System.out.println(h + + w);void area() System.out.println(0.5*h*w); Rectangle rec = new Rectangle(5.0, 2.0);Circle cir = new Circle(3.0, Red);Graphics g = rec, cir

36、;for (int i = 0; i g.length; i+) gi.parameter(); gi.area();class Circle extends Graphics double r; String c;Circle (double u, String v) r = u; c = v;void parameter() System.out.println(r + + c); void area() System.out.println(Math.PI*r*r); 运行结果1.0 2.02.03.0 Red28.274333882308138多态性(polymorphism)应用场合

37、: 不同子类可以用不同的方式实现同一共同接口,该共同接口建立了一个基本形式59第三章 面向对象特征1.基本概念2.类的定义3.对象4.类的继承和多态5.接口和包6.常用工具类603.3 对象n引用对象的变量n格式: 对象名.变量名n引用对象的方法n格式: 对象名.方法名n例1nVector v = new Vector();nv.addElement(hello world);n例2nint a= 1, 2, 3, 4, 5; nint size = a.length;n例3nSystem.out.println();613.3 对象n通过对象引用对象的成员变量和成员方法class Qangl

38、e int a, h;Qangle () a = 10; h = 20;Qangle(int x, int y) a = x; h = y;Qangle(Qangle r) a = r.width(); h = r.height();void set(int x, int y) a=x; h =y;q1.set(30, 40);q1.a = 30;q1.h = 40;目的相同第一方式更安全、更面向对象(数据封装)直接操纵变量62对象的释放n将对象从内存中清除n内存的管理(枯燥、容易出错)n垃圾回收(Garbage Collection)n垃圾搜集器(Garbage Collector)n周期性

39、地释放不再被引用的对象,自动完成n手动完成,System.gc();npublic static void gc() - Runs the garbage collector. The Java platform allows you to create as many objects as you want (limited, of course, by what your system can handle), and you dont have to worry about destroying them. The Java runtime environment deletes obj

40、ects when it determines that they are no longer being used. This process is called garbage collection. 63对象的使用n访问对象的私有(private)成员n通过定义一个公共方法来实现class Student private String name;private String id;Student(String s1, String s2) name = s1; id = s2;String getName() return name;void setName(String s) name

41、=s;Student st = new Student(aloha, 001);String n = st.getName(); st.setName(csma);n = st.getName(); 64对象的使用n对象作为方法的参数访问权限修饰符 方法返回类型 方法名(参数) throws 异常名方法体;n参数: 类型 变量名, n类型: 基本数据类型/复合类型(对象)n参数的传递nPass by value65n例 对象用作方法的参数对象的使用class jex6_10 public static void main(String args) Spot s = new Spot(2, 3)

42、; System.out.println(s点的坐标: + +s.getX()+,+s.getY(); Trans ts = new Trans(); ts.move(s, 4, 5); System.out.println(s点的坐标: + +s.getX()+,+s.getY();class Spot private int x, y;Spot (int u, int v) setX(u); setY(v);void setX(int x1) x=x1;void setY(int y1) y=y1;int getX() return x;int getY() return y;class

43、Trans void move(Spot p, int h, int k) p.setX(p.getX() + h);p.setY(p.getY() + k);class jex6_10 public static void main(String args) Spot s = new Spot(2, 3); System.out.println(s点的坐标: + s.getX()+,+s.getY(); Trans.move(s, 4, 5); System.out.println(s点的坐标: + s.getX()+,+s.getY();class Spot private int x,

44、y;Spot (int u, int v) setX(u); setY(v);void setX(int x1) x=x1;void setY(int y1) y=y1;int getX() return x;int getY() return y;class Trans static void move(Spot p, int h, int k)p.setX(p.getX() + h);p.setY(p.getY() + k);class jex6_10 public static void main(String args) Spot s = new Spot(2, 3); System.

45、out.println(s点的坐标: + s.getX()+,+s.getY(); s.move(4, 5); System.out.println(s点的坐标: + s.getX()+,+s.getY();class Spot private int x, y;Spot (int u, int v) setX(u); setY(v);void setX(int x1) x=x1;void setY(int y1) y=y1;int getX() return x;int getY() return y;void move(int h, int k)x = x + h;y = y + k;66

46、对象的使用n对象的访问n对象作为方法的返回值访问权限修饰符 方法返回类型 方法名(参数) throws 异常名方法体;n返回类型n有返回值: 基本数据类型/复合类型(对象)n无返回值: void67对象的使用n对象作为方法的返回值n例: 求两点坐标之间的中点坐标n思路: (x1, y1) 和(x2, y2)(x, y)nx=(x1+x2)/2, y=(y1+y2)/2nSpot s1 = new Spot(2, 3);nSpot s2 = new Spot(4, 5);nSpot s = s1.midSpot(s2);68n例 对象用作方法的返回值对象的使用class jex6_13 publ

47、ic static void main(String args) Spot s1 = new Spot(3.0, 5.0); Spot s2 = new Spot(6.0, 8.0); System.out.println(s1点的坐标: + s1.getX()+,+s1.getY(); System.out.println(s2点的坐标: + s2.getX()+,+s2.getY(); Spot s = s1.midSpot(s2); System.out.println(中点的坐标: + s.getX()+,+s.getY();class Spot private double x, y

48、;Spot (double u, double v) setX(u); setY(v);void setX(double x1) x=x1;void setY(double y1) y=y1;double getX() return x;double getY() return y;Spot midSpot(Spot s)double midX=(x+s.getX()/2;double midY=(y+s.getY()/2;return new Spot(midX, midY);69对象的使用n数组: 类型相同的一列元素n简单的数组public class ArrayDemo public s

49、tatic void main(String args) int anArray = new int10; for (int i = 0; i anArray.length; i+) anArrayi = i; System.out.print(anArrayi + ); System.out.println(); 70对象的使用n对象数组class Test public static void main(String args) int a = new int5;for (int i = 0; i a.length; i+) System.out.println(ai);String s

50、= new String5;for (int i = 0; i s.length; i+) System.out.println(si);System.out.println(si.length();71对象的使用n对象数组class Student private String name;private String id;Student (String s1, String s2) name = s1; id = s2; String getName() return name;void setName (String s) name=s; void display () System.o

51、ut.println(name + +id); Student st = new Student10;for (int i = 0; i st.length; i+) sti = new Student();for (int i = 0; i st.length; i+) sti.display();72对象的使用n对象作为另一个对象的成员变量n一个对象中包含另一个对象,组合关系class Student private String name;private String id;Student (String s1, String s2) name = s1; id = s2; String

52、 getName() return name; void setName (String s) name=s; 73对象的使用n对象作为另一个对象的成员变量class MobilePhone private String type;private Watch w;MobilePhone (String s) type = s; void setWatch(Watch a) w = a; long getTime () return w.getTime(); class Watch long getTime() return System.currentTimeMillis(); MobileP

53、hone mp = new MobilePhone(nokia);Watch w = new Watch();mp.setWatch(w);long l = mp.getTime();public static long currentTimeMillis()the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC74对象的使用n关键词 thisnthis指当前对象n应用1: 加强程序可读性(this可有可无)75对象的使用n例1: Demo1.jav

54、a (调用变量)class Demo1 double x, y;Demo1(double i, double j) this.x=i; this.y=j;double ave() return (x+y)/2; public static void main(String args) Demo1 d = new Demo1(3, 4);System.out.println(d.ave();76对象的使用n例2: Demo2.java (调用方法)class Demo2 int x, y, z;Demo2(int a, int b) x =a; y=b; this.sort(a, b); voi

55、d sort(int a, int b) int t;if (x y) t=x; x=y; y=t 77对象的使用n例3: Demo3.java (调用方法)class Demo3 int x, y;Demo3(int a, int b) x =a; y=b;void change (int i, int j) x=i; y=j; this.sort();void sort() int t;if (x y) t=x; x=y; y=t 78对象的使用n关键词 thisnthis指当前对象n应用2: 对同一个对象执行多次方法调用class Leaf int i = 0;Leaf incremen

56、t() i+;return this;void print() System.out.println(i= + i); Leaf x = new Leaf();x.increment().increment().increment().print();79对象的使用n关键词 thisnthis指当前对象n应用3: 在一个构造函数中调用另一个构造函数class Flower String name;int price;Flower () this(tulip, 10);Flower (String s, int i) name = s;price = i; void print () Syste

57、m.out.println(name + + price); public static void main(String args)Flower f = new Flower();f.print(); 80第三章 面向对象特征1.基本概念2.类的定义3.对象4.类的继承和多态5.接口和包6.常用工具类813.4 类的继承n父类与子类的关系 (extends)n基本内容1.子类可调用父类的方法和变量,子类可增加父类中没有的方法和变量2.子类可重新定义父类的静态/实例变量3.子类可重新定义父类的静态/实例方法4.继承中的构造方法5.类成员访问修饰符与继承的关系823.4 类的继承n子类可调用父类

58、的方法和变量n子类可增加父类中没有的方法和变量class Vehicle String brand;void setB(String s) brand = s; void showB() System.out.println(brand); class Bus extends Vehicle int gas;void setG(int g) gas = g; void showG() System.out.println(gas); Bus b = new Bus();b.setB(audi); /*b.setG(100);b.showB(); /*b.showG();子类继承父类的方法和变量

59、,则这些方法和变量就属于子类,则子类对象对这些方法和变量的调用是显而易见的833.4 类的继承n子类可重新定义父类中已有的变量n父类中同名的变量无效(隐藏)n通过super.变量名 和父类名.变量名(static变量)引用class A int i=256, j =64;static int k = 32;final float e = 2.718f;class B extends A public char j=x;final double k =5;static int e =321;void show() System.out.println(i + + j + + k + + e);

60、void showA() System.out.println(super.j + + A.k + + super.e); B b = new B();b.show(); b.showA();256 x 5.0 32164 32 2.718this.变量名this.方法名this()super.变量名super.方法名super()super ? 当前对象/当前对象的父对象/其他84n继承中的super对象3.4 类的继承父类子类实例化一个子类对象thissuper调用父类的变量和方法调用子类的变量和方法85n继承中的构造方法3.4 类的继承public class Cartoon extends D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论