第5章 java类的定义_第1页
第5章 java类的定义_第2页
第5章 java类的定义_第3页
第5章 java类的定义_第4页
第5章 java类的定义_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

1、JAVA1第第5章章 类的定义类的定义什么是类什么是类5.1定义类定义类5.2方法的定义方法的定义5.3 构造函数构造函数5.4类的定义和使用类的定义和使用5.5 方法重载方法重载5.6对象的使用对象的使用5.7递归递归5.8理解包理解包5.9控制对类成员的访问控制对类成员的访问5.10 嵌套类嵌套类5.11finalize( )finalize( )方法方法5.12本地方法本地方法5.13教学重点教学重点v了解面向对象思想,掌握对象和类的基本概念、了解面向对象思想,掌握对象和类的基本概念、明确明确JavaJava中的类的定义方法、构造方法、方法重中的类的定义方法、构造方法、方法重载和载和th

2、isthis的使用。的使用。 v掌握对象的使用方法,明确封装的作用与方法。掌握对象的使用方法,明确封装的作用与方法。 v了解继承的基本概念,明确方法重写的作用,要了解继承的基本概念,明确方法重写的作用,要注意与重载的区别,掌握注意与重载的区别,掌握supersuper关键字的使用、继关键字的使用、继承中的构造方法调用;了解承中的构造方法调用;了解FinalizerFinalizer。 v掌握多态性的基本概念、明确多态实现的条件,掌握多态性的基本概念、明确多态实现的条件,熟练掌握多态性的代码实现熟练掌握多态性的代码实现 v类的定义:类的定义: 类是一类对象的抽象或原形,它定义了该类对象类是一类对

3、象的抽象或原形,它定义了该类对象的共同的的共同的和和。 用户可以使用类的定义来生成该类的对象,生成用户可以使用类的定义来生成该类的对象,生成的对象将可以使用该类的所以组件。的对象将可以使用该类的所以组件。v类中包含两种内容:类中包含两种内容:(1)成员成员(field)域:是存储数据项的变量。成员域也域:是存储数据项的变量。成员域也称称。(2)方法方法(method):定义了用户可以进行的操作,:定义了用户可以进行的操作,也决定了利用类的对象可以做的事情。也决定了利用类的对象可以做的事情。v例例1. 定义了一个名为定义了一个名为SimplePoint 的类的类public class Simp

4、lePoint public int x = 0; /x为成员变量为成员变量 public int y = 0; /y为成员变量为成员变量 当创建一个新的对象时(对该类实例化),当创建一个新的对象时(对该类实例化), 就会就会为该对象及其成员分配空间,同时对成员变量进行为该对象及其成员分配空间,同时对成员变量进行初始化。初始化。v例例2 2 定义一个名为定义一个名为SimpleRectangleSimpleRectangle类类public class SimpleRectanglepublic class SimpleRectangle public intpublic int width

5、= 0; width = 0;public intpublic int height = 0; height = 0;public SimplePoint origin = new SimplePoint(); 例例3 public class Point public int x = 0; public int y = 0; / a constructor! public Point(int x, int y) this.x = x; this.y = y; new Point(44, 78)new Point(44, 78) 在声明时使用关键字在声明时使用关键字static。 只与类有关,

6、被该类的所有对象共享。只与类有关,被该类的所有对象共享。 未创建该类的对象时,这些变量仍然存在。未创建该类的对象时,这些变量仍然存在。 该类型变量与类的每个实例有关。该类型变量与类的每个实例有关。 该类的每个实例都有他自己的变量的副本和赋值。该类的每个实例都有他自己的变量的副本和赋值。类类Sphere的定义的定义public class Sphere /class variablestatic double PI=3.14;/instance variabledouble xCenter;double yCenter;double zCenter;double radius;3.14Spher

7、e.PI由所有对象共享由所有对象共享globexCenteryCenterzCenterradiusballxCenteryCenterzCenterradius提供了使用类定义中指定的变量进行的操提供了使用类定义中指定的变量进行的操作。作。只可以在特只可以在特定的对象中执行。定的对象中执行。使用使用static进行声进行声明,即使该类没有对象存在也可以执行。明,即使该类没有对象存在也可以执行。v注意:类方法不能引用实例变量。注意:类方法不能引用实例变量。v访问静态成员或静态方法:访问静态成员或静态方法:v例如:例如: double rootPi = Math.sqrt ( Math. PI

8、);v实例变量和实例方法只能通过实例变量和实例方法只能通过来调用,来调用,因为在定义中已经和一个特定的对象相关。因为在定义中已经和一个特定的对象相关。v例如:若有对象例如:若有对象ball存在,则:存在,则: double ballVolume = ball.volume();class 类名类名类的详细定义;类的详细定义; v 例如: class Sphere static final double PI=3.14; static int count=0; double radius; double xCenter; double yCenter; double zCenter; 是一个自包

9、含的代码块是一个自包含的代码块 有自己的名称及可以重复使用的属性有自己的名称及可以重复使用的属性 可以根据需要在程序多个不同的地方被执行可以根据需要在程序多个不同的地方被执行 可以使用其名字来调用方法可以使用其名字来调用方法 方法可以指定返回值的类型,若没有返回值,则方法可以指定返回值的类型,若没有返回值,则应声明方法的返回对象类型为应声明方法的返回对象类型为voidv 方法的基本结构如下:方法的基本结构如下:return_type methodName(arg1,arg2,argn)statement;v 方法的方法的出现在方法名后的大括号中,指定了在出现在方法名后的大括号中,指定了在方法调

10、用时需要向其传递的信息。方法调用时需要向其传递的信息。v 当用户调用方法时提供给形参的值称为当用户调用方法时提供给形参的值称为。v有返回值:有返回值:return return_value;v无返回值:无返回值:return 或或 不写不写v注意:如果方法有返回值,则返回值的类型要与声注意:如果方法有返回值,则返回值的类型要与声明方法时定义的返回值类型保持一致。明方法时定义的返回值类型保持一致。 定义了当调用该方法时传递给该方法的类型定义了当调用该方法时传递给该方法的类型及其值,包括参数类型和参数名,并出现在方法定及其值,包括参数类型和参数名,并出现在方法定义的形参列表中。义的形参列表中。定义

11、了执行方法时传递给形参的值,而且实定义了执行方法时传递给形参的值,而且实参的值通过执行该方法时的形参名来引用。参的值通过执行该方法时的形参名来引用。 (1)实参值的类型一定要和定义方法时对应的形)实参值的类型一定要和定义方法时对应的形参类型保持一致。参类型保持一致。 (2)对于非类对象的数据,实参到形参的数据采)对于非类对象的数据,实参到形参的数据采用用的方法。的方法。 示例程序示例程序: VariableDemovfinal形参形参 意义:如果将方法中的形参声明为意义:如果将方法中的形参声明为final,可以防,可以防止再调用该方法时,实参的值被修改。止再调用该方法时,实参的值被修改。 说明

12、:说明:final形参对于形参对于的方式没有意义,而的方式没有意义,而对于对于的形参有意义,这样做可以防止的形参有意义,这样做可以防止对实参对象的误操作。对实参对象的误操作。 在定义的方法前面加关键字在定义的方法前面加关键字static。v例:例:class Sphereint getCount() return count; v 实例方法可以访问类的任何数据成员,直接使用即可。实例方法可以访问类的任何数据成员,直接使用即可。class Spherestatic final double PI=3.14;static int count=0;double radius;double xCent

13、er;double yCenter;double zCenter; static int getCount() return count; double volume() return 4.0/3.0*PI*radius*radius*radius; v每个实例方法都有一个名为每个实例方法都有一个名为this的变量,它引用调的变量,它引用调用该方法的当前对象,即当一个方法引用类的一个用该方法的当前对象,即当一个方法引用类的一个实例变量时,由编译器默认使用。实例变量时,由编译器默认使用。v例如,类中有实例变量例如,类中有实例变量value、a、b,则如下两条,则如下两条语句等价。语句等价。 va

14、lue = a+b; this.value = this.a+this.b; vthis是是Java的一个关键字,表示某个对象。的一个关键字,表示某个对象。 vthis可以出现在实例方法和构造方法中,但不可以可以出现在实例方法和构造方法中,但不可以出现在类方法中。出现在类方法中。 vthis关键字出现在类的构造方法中时,代表使用该关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。构造方法所创建的对象。 vthis关键字出现在类的实例方法中时,代表正在调关键字出现在类的实例方法中时,代表正在调用该方法的当前对象。用该方法的当前对象。 class Sphere static final

15、 double PI = 3.14; / 初始化静态成员初始化静态成员 double radius = 5.0; /初始化非静态成员初始化非静态成员 double xCenter = 10.0; /初始化非静态成员初始化非静态成员 指位于括号中的一个代码块,它在类的指位于括号中的一个代码块,它在类的对象生成之前执行对象生成之前执行1、静态初始化块:使用、静态初始化块:使用static定义的代码块,当类定义的代码块,当类装载到系统时将执行一次。静态初始化块只能初装载到系统时将执行一次。静态初始化块只能初始化类的静态数据成员。始化类的静态数据成员。2、非静态初始化块:对每个要生成的对象执行一、非静

16、态初始化块:对每个要生成的对象执行一次,可以初始化类的实例变量。次,可以初始化类的实例变量。 函数名与类名相同函数名与类名相同,且不指定返回对象,且不指定返回对象类型,可以有参数,也可以无参数,一个类中可以类型,可以有参数,也可以无参数,一个类中可以有多个构造函数。有多个构造函数。在对象实例化时,系统首先调用构在对象实例化时,系统首先调用构造函数,对生成的对象的实例变量进行初始化,其造函数,对生成的对象的实例变量进行初始化,其由系统默认调用。由系统默认调用。如果类中没有显示声明构造函数,则系统会如果类中没有显示声明构造函数,则系统会提供一个默认的构造函数,其无参,并且不做任何提供一个默认的构造

17、函数,其无参,并且不做任何工作。工作。 例如:例如:class Sphere double radius, xCenter, yCenter, zCenter; Sphere(double theRadius, double x, double y, double z) radius = theRadius; xCenter = x; yCenter = y; zCenter = z; v如果没有为类定义任何构造函数,编译器将自动提如果没有为类定义任何构造函数,编译器将自动提供一个默认构造函数,但其没有任何参数,也没有供一个默认构造函数,但其没有任何参数,也没有任何语句,仅提供一个生成对象的入

18、口。任何语句,仅提供一个生成对象的入口。v注意注意: 如果类中已有构造函数,则系统将不再提供如果类中已有构造函数,则系统将不再提供默认构造函数,如果此时需要一个无参构造函数,默认构造函数,如果此时需要一个无参构造函数,则需要显示定义一个。则需要显示定义一个。 Sphere ball;v生成类对象生成类对象 ball = new Sphere(10.0, 1.0, 1.0, 1.0); 把对象当作实参传递给一个方法的时候,把对象当作实参传递给一个方法的时候,采用引用传递的机制。即实参和形参引用的是同一个对象,采用引用传递的机制。即实参和形参引用的是同一个对象,没有对实际对象进行复制。没有对实际对

19、象进行复制。 对象的生存期由引用它的变量决定,即对象对象的生存期由引用它的变量决定,即对象将在引用它的变量的作用域之外消失。将在引用它的变量的作用域之外消失。v 处理消失对象的过程称为处理消失对象的过程称为。v 程序见:程序见:CreateSpheres.java 和和 Sphere.java注意:将两个源程序放在一个目录下,在注意:将两个源程序放在一个目录下,在JDKJDK编译器下,只需编译包含编译器下,只需编译包含main()main()定义的文件,定义的文件,就可以编译该程序涉及到的所有源文件。就可以编译该程序涉及到的所有源文件。在一个类中,用同样的名字定义的多在一个类中,用同样的名字定

20、义的多个方法。个方法。各重载函数的形参列表必须不相同。各重载函数的形参列表必须不相同。v注意注意: 函数返回值不能作为判断重载的条件。函数返回值不能作为判断重载的条件。方法的方法的统称为统称为签名。签名。v类中的每个方法的签名都必须唯一,编译器将以类中的每个方法的签名都必须唯一,编译器将以此判断该调用那一个函数。此判断该调用那一个函数。v 如果希望通过不同的初始化数据产生产生类的对象,如果希望通过不同的初始化数据产生产生类的对象,则可以采用重载构造函数的方法。例如:则可以采用重载构造函数的方法。例如:Sphere(double x, double y, double z) xCenter =

21、x; yCenter = y; zCenter = z; radius = 1.0; +count;Sphere() xCenter = 0; yCenter = 0; zCenter = 0; radius = 1.0; +count;v在一个构造函数中调用构造函数在一个构造函数中调用构造函数: 类的构造函数类的构造函数可以在其可以在其可执行语句中调用该类的另一个可执行语句中调用该类的另一个构造函数,可以省去大量的重复代码。构造函数,可以省去大量的重复代码。可以使用可以使用this作为名称,在其后面作为名称,在其后面的括号中根据需要列出适当的参数。的括号中根据需要列出适当的参数。Sphere

22、() radius = 1.0; +count;Sphere(double x, double y, double z) this(); / 注意在第一句调用注意在第一句调用 xCenter = x; yCenter = y; zCenter = z; Sphere ball = new Sphere(10.0, 10,0, 0.0); Sphere newBall = ball;v则则newBall将引用与将引用与ball相同的对象,而没有生相同的对象,而没有生成新对象,在修改这个对象时,成新对象,在修改这个对象时,ball和和newBall都发生变化。都发生变化。v可以采用复制构造函数的方

23、法,将原对象作为参可以采用复制构造函数的方法,将原对象作为参数,通过复制对象中的实例变量,来生成新的对数,通过复制对象中的实例变量,来生成新的对象。象。例如:例如:Sphere(final Sphere oldSphere) radius = oldSphere.radius; xCenter= oldSphere.xCenter; yCenter = oldSphere.yCenter; zCenter = oldSphere.zCenter; +count; Sphere ball = new Sphere(10.0, 10,0, 0.0);Sphere newBall = new Sph

24、ere(ball);v本例作为上机练习题,又学生自己调试本例作为上机练习题,又学生自己调试v递归:一个方法调用自己的过程被称为递归。递归:一个方法调用自己的过程被称为递归。v递归分类:递归分类: 直接递归直接递归 间接递归间接递归v例题:编写一个方法计算一个变量的整数幂。例题:编写一个方法计算一个变量的整数幂。v程序见:程序见:PowerCalc.javav本例作为上机练习题,又学生自己调试本例作为上机练习题,又学生自己调试import java.util.Scanner;public class Digui static long fac(int n) if(n=1) return 1; e

25、lse return n*fac(n-1); public static void main(String args) int k; long f; Scanner sc=new Scanner(System.in); System.out.println(请输入请输入K的值的值:); k=sc.nextInt(); f=fac(k); System.out.println(f=+f); 递归级别 执行操作 0 fac(5) 1 fac(4) 2 fac(3) 3 fac(2) 4 fac(1) 4 返回1 fac(1) 3 返回2 fac(2) 2 返回6 fac(3) 1 返回24 fac

26、(4) 0 返回120 fac(5)v为了便于管理大型软件系统中数目众多的类,解决为了便于管理大型软件系统中数目众多的类,解决类命名冲突的问题,类命名冲突的问题,Java引入了包(引入了包(package)。)。javalangSystemioString是有唯一命名的类的集合是有唯一命名的类的集合,应着文件系统应着文件系统的目录层次结构的目录层次结构v 包的作用:在一个包中使用的类名不会影响到另一个包中或包的作用:在一个包中使用的类名不会影响到另一个包中或编写的程序中可能出现的类名。编写的程序中可能出现的类名。v 例如:在默认包中的例如:在默认包中的java.lang中使用的类中使用的类St

27、ring,全名,全名是是java.lang.Stringv package语句必须是文件中的第一条语句。也就是说,在语句必须是文件中的第一条语句。也就是说,在package语句之前,除了空白和注释之外不能有任何语句。语句之前,除了空白和注释之外不能有任何语句。v 如果不加如果不加package语句,则指定为缺省包或无名包。语句,则指定为缺省包或无名包。v 在在package语句中,用语句中,用“.”来指明包(目录)的层次。来指明包(目录)的层次。v 为在包为在包Geometry中包含类中包含类Sphere,文件,文件Sphere.java中应包含如下内容:中应包含如下内容: package G

28、eometry; / 包语句,需放在第一行包语句,需放在第一行 public class Sphere v 其它类若想包含在其它类若想包含在Geometry中,也必须在类定义的开始中,也必须在类定义的开始处包含同一条语句,并且所有的类文件都存储在与包名相同处包含同一条语句,并且所有的类文件都存储在与包名相同的目录下。的目录下。v 注意:若包中的类想被包外访问,则类和类中的函数都应定注意:若包中的类想被包外访问,则类和类中的函数都应定义为义为public。一个包中可以有多个分类,例如已经开发了多一个包中可以有多个分类,例如已经开发了多组处理几何问题的类:组处理几何问题的类:(1)对文件:)对文件

29、:v 处理处理2D图形的文件加入:图形的文件加入:package Geometry.Shapes2D;v 处理处理3D图形的文件加入:图形的文件加入:package Geometry.Shapes3D;(2)对目录:)对目录:v 处理处理2D图形的文件存放在:图形的文件存放在:GeometryShapes2d目录目录下下v 处理处理3D图形的文件存放在:图形的文件存放在:GeometryShapes3d目录目录下下 javac classpath “c:temp” filename.java是指包含该包目录的上一级目录的路径,注意不包含是指包含该包目录的上一级目录的路径,注意不包含该包目录名本

30、身。该包目录名本身。v 例如,包的源文件存储在例如,包的源文件存储在C:tempGeometry下,则包路下,则包路径为:径为:C:temp。 方法一:设置环境变量方法一:设置环境变量CLASSPATH 方法二:使用方法二:使用-classpath来指明包的位置来指明包的位置 例如:例如: 扩展包是扩展包是.java文件,存放在文件,存放在JDK的的ext目录下,在此目录下目录下,在此目录下的的.jar文件,将自动成为可访问的文件,不需要设置文件,将自动成为可访问的文件,不需要设置CLASSPATH环境变量或环境变量或-classpath选项。选项。 命令格式:命令格式: 此命令将生成此命令将

31、生成Geometry.jar,并在其中加入位于,并在其中加入位于Geometry目录下的所有的目录下的所有的.class文件,为使这个包对任何程序都可用,文件,为使这个包对任何程序都可用,可将其复制到可将其复制到JDK的的ext目录下。目录下。把一个包中的所有或任何类加把一个包中的所有或任何类加入到程序代码中,入到程序代码中,v例如引入整个包:例如引入整个包: v例如引入包中的某个类例如引入包中的某个类:v如前例,包如前例,包Geometry.Shapes3D中的类中的类Sphere的全名是的全名是Geometry.Shapes3D.Sphere,这样可以很,这样可以很好的避免了类的重名问题。

32、好的避免了类的重名问题。v 如果不使用导入语句,仍然可以使用某个类,例如果不使用导入语句,仍然可以使用某个类,例如:如: Geometry.Shapes3D.Sphere ball = Geometry.Shapes3D.Sphere(10.0, 1.0, 1.0, 1.0);v计算圆面积公式计算圆面积公式:*r*r;v 这里的这里的Math.PI即为一静态成员,可以通过从类即为一静态成员,可以通过从类Math中导入中导入PI成员名来删除成员名来删除PI前缀前缀Math,例如:,例如: import static java.lang.Math.PI;v也可采用也可采用 import stati

33、c java.lang.Math.* 来来导入该类的所有静态成员,此时即可直接使用导入该类的所有静态成员,此时即可直接使用sqrt(),random()等方法,但这样也增加了名字等方法,但这样也增加了名字冲突的概率。冲突的概率。 一个类的方法和变量根据其设定的访问属性,如一个类的方法和变量根据其设定的访问属性,如果属于同一个包,或其声明为果属于同一个包,或其声明为public,则可以被,则可以被其它类访问。其它类访问。属性属性允许的访问允许的访问default(无访问属性)(无访问属性)来自同一包中任何类的方法访问来自同一包中任何类的方法访问public来自任何类的方法的访问来自任何类的方法的

34、访问private只允许来自该类内部的方法访问只允许来自该类内部的方法访问protected来自同一包中任何类以及该类的来自同一包中任何类以及该类的任何地方的任何子类的方法访问任何地方的任何子类的方法访问u指定类成员的访问属性,必须在声明语句的开指定类成员的访问属性,必须在声明语句的开始部分加上相应的关键字。例如:始部分加上相应的关键字。例如:public class Point public Point(double xVal, double yVal)x=xVal; y=yVal; public double getX() return x; /访问器方法访问器方法 public doub

35、le setX(double inputX) x=inputX; /增变方法增变方法 private double x, y;u一般,一个一般,一个public类的变量应该声明为类的变量应该声明为private,并将其外部调用的方法声明为并将其外部调用的方法声明为public。u注意:注意:1、如果类中一些成员被设置成、如果类中一些成员被设置成final,其又被类,其又被类外使用,可将其声明为外使用,可将其声明为public。2、若成员仅供该类内部使用,应指定为、若成员仅供该类内部使用,应指定为private。3、若某些成员只是一种使用函数和标准数值的、若某些成员只是一种使用函数和标准数值的容

36、器,可将其指定为容器,可将其指定为public。例如。例如Math中的函数。中的函数。在一个类中定义另外一个类,这个类就叫做嵌套在一个类中定义另外一个类,这个类就叫做嵌套类或内部类或内置类类或内部类或内置类。u内部类可以将逻辑上相关的一组类组织起来,并由外部类内部类可以将逻辑上相关的一组类组织起来,并由外部类(outer class)来控制内部类的可见性。来控制内部类的可见性。u当建立一个当建立一个inner class时,其对象就拥有了与外部类对象时,其对象就拥有了与外部类对象之间的一种关系,这是通过一个特殊的之间的一种关系,这是通过一个特殊的this reference形成形成的,的,使得

37、内部类对象可以随意的访问外部类中所有的成员。使得内部类对象可以随意的访问外部类中所有的成员。包含嵌套类,但本身不是嵌套类的类。包含嵌套类,但本身不是嵌套类的类。public class Outside public class Inside class Outer private int index = 100; void print() Inner i = new Inner(); i.print(); class Inner void print() System.out.println(index); class Test public static void main(String a

38、rgs) Outer o = new Outer(); o.print(); public class Outer private String myString = outer; private String outerString =outer outer!; void test() System.out.print(test ); System.out.println(myString); new Inner().testInner(); private void test2() System.out.print(test2 ); System.out.println(myString)

39、; class Inner private String myString = inner; private void testInner() System.out.print(testInner ); System.out.println(myString); System.out.println(outerString); test2(); othisimaino.printi.printthis栈内存栈内存堆内存堆内存OuterOuter类对象类对象InnerInner类对象类对象Outer.thisOuter.thisu将嵌套类声明为将嵌套类声明为static就可以生成独立于外部类对就

40、可以生成独立于外部类对象的嵌套类对象,而不用考虑是否已经生成了外部对象的嵌套类对象,而不用考虑是否已经生成了外部对象。象。注意:注意:1、静态嵌套类可以有静态成员,而非静态嵌套类则、静态嵌套类可以有静态成员,而非静态嵌套类则不能有静态成员。不能有静态成员。2、静态嵌套类的成员可以访问顶层类的静态成员。、静态嵌套类的成员可以访问顶层类的静态成员。3、非静态嵌套类可以访问任何顶层类的成员,并且、非静态嵌套类可以访问任何顶层类的成员,并且可以访问相同顶层类下的静态嵌套类的静态成员。可以访问相同顶层类下的静态嵌套类的静态成员。u在方法中定义的内部类,如果要访问方法中定义的在方法中定义的内部类,如果要访

41、问方法中定义的本地变量或方法的参数,则变量必须被声明本地变量或方法的参数,则变量必须被声明final。u内部类可以声明为内部类可以声明为private或或protected;还可以声;还可以声明为明为abstract或或final。u内部类可以声明为内部类可以声明为static的,但此时就不能再使用的,但此时就不能再使用外部类的非外部类的非static的成员变量和非的成员变量和非static的成员方法;的成员方法;u非非static的内部类中的成员不能声明为的内部类中的成员不能声明为static的,只的,只有在顶层类或有在顶层类或static的内部类中才可声明的内部类中才可声明static成员。成员。u我们为什么使用内部类我们为什么使用内部类1、在内部类(、在内部类(inner class)中,可以随意的访问外)中,可以随意的访问外部类的成员,这可以让我们更好地组织管理我们的代部类的成员,这可以让我们更好地组织管理我们的代码,增强代码的可读性

温馨提示

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

评论

0/150

提交评论