JavaSE编程基础-05.ppt_第1页
JavaSE编程基础-05.ppt_第2页
JavaSE编程基础-05.ppt_第3页
JavaSE编程基础-05.ppt_第4页
JavaSE编程基础-05.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

第5章面向对象编程 上 2 1 27 2020 本章目标 定义类 属性和方法创建并使用对象对象与引用递归方法方法的重载使用package和import构造方法与构造方法重载继承与多态对象的组合类的初始化块 3 1 27 2020 类与对象9 1 Java是面向对象编程语言 所以这部分内容就显得特别重要 这部分知识中着重讲解两个概念 类 class 与对象 object 关于其概念 原理 关系等我在前面的章节中已经跟大家讲过 在这里主要学习如何定义和具体应用 类的定义 修饰符 class类名 使用 括起来 表示可选项 属性定义 构造方法 自定义方法 4 1 27 2020 类与对象9 2 类的修饰符访问修饰符修饰符 5 1 27 2020 类与对象9 2 类的修饰符访问修饰符与Java文件命名的关系 总结 如果一个Java源文件中定义的所以类都没有使用public修饰符 则这个Java文件的文件名可以是一切合法的文件名 如果这个Java源文件中定义了一个用public修饰符修饰的类 则这个文件的文件名必须与这个public类同名 在一个Java源文件中 只能有一个public修饰符修饰的类 6 1 27 2020 类与对象9 3 访问修饰符与Java语言的package机制 import语句Java语言使用package机制来管理和分类众多的自定义类 package机制是一种与目录结构结合的管理机制 以一个例子来说明 1 创建一个HW java文件 packageaa bb 指定HW java文件生成的HW class文件封装在aa包 publicclassHW bb子包中 publicstaticvoidmain String args System out println HelloWorld publicstaticintadd inta intb 这个方法在后面被调用 returna b 7 1 27 2020 类与对象9 3 访问修饰符与Java语言的package机制 import语句2 编译HW java并运行HW class 发现编译顺利通过 但无法正确运行 8 1 27 2020 类与对象9 3 访问修饰符与Java语言的package机制 import语句3 我在当前目录下创建了个 aa bb 的子目录 把HW class拷贝到 aa bb 目录下 再运行 javaaa bb HW 就可以正确运行了 package机制就是建立目录 子目录层次结构 再将 class文件分门别类的放在这些层次结构中 再封装成 jar或 war的包文件 以 点分模式 访问引用 9 1 27 2020 类与对象9 3 访问修饰符与Java语言的package机制 import语句4 当我在另一个程序中想调用HW类中定义的静态方法add 时 有两种写法 publicclassdow dow class在此前创建的 aa 目录的上一级目录中 publicstaticvoidmain String args System out println aa bb HW add 5 6 点分模式 注意 如果HW类的访问修饰符非 public 即默认访问权限 则 在这里将无法使用add 方法 importaa bb HW 使用import命令引用 aa bb 包中的HW类 publicclassdow publicstaticvoidmain String args System out println HW add 5 6 这里就可以省略包结构了 关于import语句 可以使用通配符 如 importaa bb 只能代替类 不能代替包 上例调用方法 HW add 10 1 27 2020 类与对象9 3 访问修饰符与Java语言的package机制 import语句回忆 在第1章中教大家搭建JavaSE编译运行环境时所设置的环境变量 classpath 当java程序编译或运行时 若是需要调用其它的类文件将从以上路径中查询 这个路径首先是当前运行路径 然后是几个JDK默认所带的jar包 即系统所提供给我们的一些包 11 1 27 2020 类与对象9 3 访问修饰符与Java语言的package机制 import语句系统提供给我们的编程工具包 API应用程序接口 12 1 27 2020 类与对象9 4 属性 也称字段 属性用于定义该类或该类生成的对象中所包含的数据 就类似于一张图纸或事物中的各种数据指标 修饰符 属性类型属性名 初始值 可以理解为一种变量 修饰符 可以省略 有访问修饰符与修饰符 访问修饰符可以和修饰符组合来用 属性类型 可以是Java语言中允许的任何数据类型 13 1 27 2020 类与对象9 4 属性 也称字段 14 1 27 2020 类与对象9 5 方法 旧称函数 用于定义该类或该类生成的对象的行为特征或功能 比如定义人类的行为特征 行走 功能实现 劳动 修饰符 返回值类型方法名 形参类型形参名 throws异常 局部变量 其它语句 修饰符 可以省略 也可以是访问修饰符 修饰符 static进行组合使用 返回值类型 是指方法体内的return语句返回的一个变量或表达式的数据类型 如果没有return语句则需要指定为void 形参 用于向方法体内传入数据 它是一种变量 在方法的使用过程中叫作实参 throws异常子句 将在异常处理一章详细讲解 15 1 27 2020 类与对象9 5 方法 旧称函数 方法的访问修饰符与属性相关内容相同 请参考属性 16 1 27 2020 类与对象9 5 方法 旧称函数 方法体内的return语句当我们定义了一带有返回值的方法 就需要使用return语句向调用这个方法的上一级结构体回传一个值 return语句也可以用来跳出方法体 staticintAdd inta intb Add 方法的返回值类型为int型 returna b 因为Add 指定了返回值类型 就必须包含return语句 且return语句回传的必须是int型值 intc Add 5 6 Add 方法会将5和6相加 然后通过return语句将结 果回传给上一级结构体 c得到回传的值 staticvoidDiv inta intb 定义a除以b的方法 b作为除数不能为0 if b 0 return 所以 如果 b 0 则无条件退出 17 1 27 2020 类与对象9 6 构造方法 又称构造器 这是一个特殊的方法 用于生成类的对象 其定义与方法基本相同 只是不能有返回值类型声明 因为构造器返回的是new出来的对象本身 构造方法的名字必须与类名相同 当我们定义一个类时 不去定义构造方法 则系统会为我们提供一个默认的构造方法 这个默认的构造方法是没有参数的 修饰符 构造方法名 形参类型形参名 方法体内的语句 构造方法名总是与类名相同 18 1 27 2020 类与对象9 7 应用举例 文件名 Person java 第一页 publicclassPerson public修饰的类 要与文件名同名 只能使用一次 privateintAge 属性定义 privateStringName 定义成private 在Person类以外不能被访问 publicstaticvoidmain String args PersonLXL newPerson 系统提供的构造方法 LXL Name 李小龙 CatMiMi newCat System out println MiMi setMaster LXL publicStringgetName 方法定义 returnthis Name 因为Name在Person类以为不能被访问 通过getName 方法 其它类也能访问Name 未完 下一页还有 19 1 27 2020 类与对象9 7 应用举例 文件名 Person java 第二页 classCat Cat类就不可以加public修饰符 privateStringName privateStringMaster publicStringsetMaster PersonaPerson this Master aPerson getName returnthis Master 要将Person类中的Name值赋给Master 只能通过Person类提供的getName 方法 因为Name为Person私有 不能在Cat中被访问 20 1 27 2020 类与对象9 8 实例化对象与使用对象创建对象的根本途径是构造方法 通过new语句来调用构造方法 创建类的对象 PersonsJiang 定义一个Person类型的变量 sJiang newPerson new关键字调用类构造方法创建实例 PersonsJiang newPerson 定义变量与创建实例合而为一 sJiang Name 宋江 为sJiang对象的Name属性赋值 StringaName sJiang getName 调用对象sJiang的getName 方法 PersonjiShiYu sJiang 没有new出新对象 jiShiYu也指向sJiang 21 1 27 2020 类与对象9 8 实例化对象与使用对象this关键字 总是出现在方法体内 用它来访问这个对象中的另一个方法或属性 它的意义就在于代表了一个方法所隶属的对象本身 this关键字不能出现在static修饰的方法中 静态方法不对应任何具体对象 所以this也无从所指 publicStringsetMaster PersonaPerson this Master aPerson getName returnthis Master this在这里代表了setMaster 方法所属的对象 意思是 这个对象的Master属性 因为Master属性在类中被设置为私有 在该类以外的地方不能被访问 而setMaster 方法是公有的 可以在任何地方被使用 而setMaster 方法与Master属性在同一个类中 所以setMaster 可以访问Master 在 任何地方 setMaster 方法就成了我们用来有效控制Master属性的手段 22 1 27 2020 类与对象9 9 小结如何定义类 属性 方法 请举例写出基本格式 类的修饰符有哪些 各有什么用途 属性的修饰符都有哪些 请列举几个并说明用途 方法的修饰符都有哪些 请列举几个并说明用途 什么是构造方法 有什么用途 说明return new this关键字的作用 23 1 27 2020 详解方法8 1 方法在Java语言中不能独立存在 要么属于类 要么属于对象 static修饰的静态方法 独立于对象存在 类似于面向过程编程语言中的函数 只不过其被规划到某个类中了 静态方法与对象无关 例如 我们在定义的 汽车 类中定义了一个 关于汽车的传说 的方法 这个方法只是用来讲述一个关于汽车的故事 跟任何一台具体的汽车都没有关联 这样的方法就适合定义为静态方法 在类外部调用静态方法 类 方法 非静态方法永远跟一个具体的对象紧密的联系在一起 没有对象 这种行为方法就失去了存在的合法性 例如汽车类中的 行驶 方法 没有一台具体的汽车 就不会有行驶的行为 非静态方法调用 对象 方法 24 1 27 2020 详解方法8 2 方法的参数传递机制在方法定义时 小括号内定义的参数被称为 形参 使用方法时 小括号内必须按照定义时的形参类型引入具体的参数称之为 实参 publicStringsetMaster PersonaPerson 被称之为形参 this Master aPerson getName returnthis Master PersonLXL newPerson CatMiMi newCat System out println MiMi setMaster LXL 被称之为实参 25 1 27 2020 详解方法8 2 方法的参数传递机制向方法内传递的实参 是以 值传递 的形式传入方法体内 传入的是变量的一个副本 也就是局部变量 publicstaticvoidmain String args inti 5 intj 6 swap 方法体外 i 5 j 6 swap i j 调用方法时 i 5 j 6 System out println i i j j 结果还是 i 5 j 6 publicstaticvoidswap inta intb inttmp tmp a a b b tmp 在方法体内a与b的值互换了 但无法影响到方法体外 26 1 27 2020 详解方法8 2 方法的参数传递机制如果向方法体内传入的是引用类型数据 对象 数组 集合等 则是将该实参的地址指针拷贝传入方法体内 publicstaticvoidmain String args Swpspa newSwp spa a 5 spa b 6 类Swp中定义了这两个整型变量 swap spa 下面的打印结果能证明两个值在方法体外也成功互换了 System out println spa a spa a spa b spa b publicstaticvoidswap Swpspa 这里传入的是对象的地址指针 inttmp 传入的地址指针变量如发生改变 tmp spa a 不会影响方法体外的地址指针 spa a spa b 也就是说 还是局部变量 spa b tmp 对象的a值与b值成功的互换了 27 1 27 2020 详解方法8 2 方法的参数传递机制定义方法的形参如果是数组 必须放在参数中的最后一个 因为数组的长度不固定 又称之为可变长度形参 并且一个方法中只能定义一个可变长度形参 publicstaticvoidmain String args 可变长度形参 met 5 6 字符串1 字符串2 字符串3 调用方法 way 1 newchar 高 智 震 注意两种不写法的不同用法 publicstaticvoidmet inti intj String str 放在最后 publicstaticvoidway inta char chr 这是数组形式写法 28 1 27 2020 详解方法8 3 方法的内存机制通过例程来说明方法的内存机制 值类型参数传递 publicstaticvoidmain String args inti 5 intj 6 swap i j 注意 书写不规范是为了节省空间 不要学习这种写法 publicstaticvoidswap inta intb inttmp a a b b tmp 29 1 27 2020 详解方法8 3 方法的内存机制引用类型参数传递的内存机制 publicstaticvoidmain String args Swpspa newSwp spa a 5 spa b 6 swap spa 非规范书写 请勿效仿 publicstaticvoidswap Swpspa inttmp spa a spa a spa b spa b tmp 30 1 27 2020 详解方法8 4 方法的递归一个方法体内调用自身 称之为方法的递归 实际上就是一种循环结构 这是从1加到100的递归调用 publicclassdow publicstaticvoidmain String args System out println Ladd 100 publicstaticintLadd inta if a 1 return1 elsereturna Ladd a 1 调用自身 31 1 27 2020 详解方法8 5 方法的重载Java允许在一个类中定义多个同名方法 只要形参列表不同就可以了 这就是方法的重载 publicclassdow publicstaticvoidmain String args method 方法调用时根据实参列表来判断调用哪个方法 method 23 23 2 method 字符串 method newString 字串1 字串2 字串3 注意 带有数组形参的方法调用格式如上面所写才能表述清楚 publicstaticvoidmethod publicstaticintmethod inta doubleb publicstaticvoidmethod Stringa publicstaticvoidmethod String a 注意 方法重载跟返回值与修饰符无关 32 1 27 2020 详解方法8 6 深入构造方法前面提到过构造方法是用来创建类的对象的特殊方法 构造方法也可以自定义 也可以重载 publicclassPerson privateintage 当我们为类自定义构造方法时 默认无参构造publicPerson 方法就不存在了 建议用这种方式予以保留 publicPerson intsetAge 即是自定义又是重载构造方法 this age setAge publicstaticvoidmain String agrs Persona newPerson 根据实参来判断使用哪个构造方法 Personb newPerson 34 33 1 27 2020 详解方法8 6 深入构造方法this关键字在重载构造方法中的作用 publicclassPerson privateintage privateStringname publicPerson publicPerson intsetAge this age setAge publicPerson intsetAge StringsetName this setAge 注意此处实则调用构造方法Person intsetAge this name setName 在构造方法内 调用另一个重载的构造方法 并不会因此生成新的对象 PersonsongJiang newPerson 34 宋江 this在构造方法内代表构造的对象本身 或者重载的构造方法本身 34 1 27 2020 详解方法8 7 归纳总结成员变量与局部变量 35 1 27 2020 详解方法8 7 归纳总结成员变量与局部变量 36 1 27 2020 详解方法8 8 小结请说说方法与类 对象的关系 举例说明 什么是方法的形参 实参 举例说明 什么是可变长度形参 向方法中传递的参数 其中值类型数据与引用类型数据有什么不同 举例说明递归方法的原理 举例说明构造方法的重载以及this关键字在构造方法中的用途 说说什么是成员变量 什么是局部变量 37 1 27 2020 面向对象的三大特征之封装2 1 理解封装问题 当我们定义一个类 Person 用来描述人的特征 它有一个属性 Age 年龄 如果我们直接设置它的值为1000 语法上没有错误 但违背了客观现实 而我们将Age设置为private 不允许随意设置它 然后定义一个公开的方法 用一种可控的手段设置它 避免出现逻辑上的错误 这种手段就是封装的一种应用 publicclassPerson privateintage publicvoidsetAge intinAge if inAge 0 38 1 27 2020 面向对象的三大特征之封装2 1 理解封装封装就是指将对象的属性信息隐藏在对象内部 不允许外部程序直接访问 而是通过该类所提供的方法来实现对内部属性可控的 有约束性的操作和访问 封装可以实现以下目的 隐藏对象的内部细节 有效的约束使用者 拒绝不合理使用 使属性数据可控 可对属性数据进行检查 保证了其完整性与有效性 便于修改 提高了代码的可维护性 实现良好的封装 可从两个方面入手 将对象的属性等细节隐藏起来 不允许外部直接访问 把方法暴露出来 通过方法来操作和访问这些属性 39 1 27 2020 面向对象的三大特征之封装2 2 用于封装的访问控制符 参见属性 方法访问修饰符 访问控制级别图示一般封装法则 publicclassClass private类型attr public类型setAttr 用于修改attr属性的方法 setter 访问控制级别 可根据自己的需要设置 public类型getAttr 用于访问attr属性的方法 getter 40 1 27 2020 面向对象的三大特征之继承3 1 继承是实现代码复用的重要手段 Java的继承是单继承 即每个子类只有一个直接父类 子类应该是父类的子集 如父类 汽车 子类 卡车 实现继承的类称之为子类 也有称之为基类 被继承的类称之为父类 也有称超类 关于代码复用 在软件工程中有一个规则 即 不要把相同的代码段书写两次以上 因为软件是一个需要不断更新的产品 当我们更新代码时 如果需要更新出现重复书写的代码段 就意味着更多处的更新 而被重复引用的代码段 只需要更新最原始的被引用部分即可 充分复用每一段代码 即可以让程序代码更加简洁 也可以有效的降低软件的维护成本 修饰符class子类名称extends父类名称 类定义部分 41 1 27 2020 面向对象的三大特征之继承3 2 重写父类方法子类总是以父类为基础 额外增加新的属性与方法 某些情况下 父类的方法并不适合子类 就需要子类重写父类方法 publicclassAnimal publicvoideat 父类的eat 方法 System out println 动物都需要进食 来维持生命 classCatextendsAnimal publicvoideat 重写父类方法 方法名 形参列表要与父类的相同 System out println 动物都需要进食 来维持生命 System out println 猫的食物有老鼠 鱼等 注意 重写父类方法 要么都是类方法 要么都是实例方法 不能一个是 类方法 一个是实例方法 会造成编译错误 42 1 27 2020 面向对象的三大特征之继承3 2 重写父类方法当子类重写父类方法之后 子类对象如果想调用被重写的父类方法 可以使用 super 方法名 来调用被重写的实例方法 或者使用 父类名 方法名 来调用被重写的类方法 static方法 classCatextendsAnimal publicvoideat super eat 调用父类被重写的实例方法 System out println 猫的食物有老鼠 鱼等 publicstaticvoidsound Animal sound 调用父类被重写的类方法 43 1 27 2020 面向对象的三大特征之继承3 2 重写父类方法super关键字与this关键字一样 只能用于访问实例对象的方法与属性 不能用于访问static静态类方法与属性 publicclassAnimal publicintage 50 publicstaticinta 100 classCatextendsAnimal publicintage 55 publicstaticinta 101 publicvoideat super eat 调用父类被重写的实例方法 System out println super age 调用父类实例属性 打印50 System out println Animal a 调用父类类属性 打印100 44 1 27 2020 面向对象的三大特征之继承3 2 重写父类方法如果对于父类方法不具有访问权限 如父类方法为private权限 或父类方法为默认包权限而子类不在包中 则该方法对子类是隐藏的 也就无法重写该方法 publicclassAnimal privatevoideat 父类的eat 方法为private访问权限 System out println 动物都需要进食 来维持生命 classCatextendsAnimal publicvoideat 即使方法名 形参列表与父类的相同 也不叫重写 45 1 27 2020 面向对象的三大特征之继承3 3 调用父类构造方法子类的构造方法始终会在其方法体内的第一条语句调用父类的构造方法 如果未指定 则隐式调用父类无参构造方法 因此如果父类没有无参构造方法将报错 classAnimal Animal intage inta publicclassCatextendsAnimal publicstaticvoidmain String args Catmimi newCat 报错 构造Cat对象时 找不到父类Animal无参 构造方法 这就是为什么自定义构造方法 也要保留无参构造方法的原因 46 1 27 2020 面向对象的三大特征之继承3 3 调用父类构造方法有两种解决方案 一种是为父类增加无参构造方法 另一种是在子类构造方法中显式调用指定的父类构造方法 classAnimal Animal 为父类增加一个无参构造方法 publicclassCatextendsAnimal publicCat super 50 100 使用super关键字显式调用父类构造方法 super 方法必须是子类构造方法体内第一条语句 由此我们可以看出 子类调用父类构造方法 一直会调用到基类Object 47 1 27 2020 面向对象的三大特征之多态5 1 在Java语言中 子类实际上是一种特殊的父类 因此允许把一个子类对象直接赋值给父类的引用变量 无需任何类型转换 这种子类向父类的转型是由系统自动完成的 注意 只能子类向父类转型 不能父类向子类转型 可以把一只猫说成一种动物 但决不能说动物就是一只猫 当将子类对象赋值给父类引用变量 在调用其方法时 其方法行为总是像子类对象的方法行为 而不是父类对象的方法行为 这将出现相同的父类引用变量 由于赋予了不同子类对象 一个父类可以有很多个子类 执行同一个方法 就会呈现出不同的行为特征 这就是多态 把猫对象赋予动物类引用变量 动物的叫声就是猫的叫声 把狗对象赋予动物类引用变量 叫声就是狗的了 48 1 27 2020 面向对象的三大特征之多态5 2 多态性举例 文件名 Animal java 第一页 publicclassAnimal publicvoidsound System out print 动物的叫声 publicstaticvoidmain String agrs Animalpit newCat pit sound 将会调用Cat子类对象的方法 pit newDog pit sound 将会调用Dog子类对象的方法 同样是引用变量pit的sound 方法 呈现出两种行为特征 未完 下页还有 49 1 27 2020 面向对象的三大特征之多态5 2 多态性举例 文件名 Animal java 第二页 classCatextendsAnimal publicvoidsound 重写父类方法 super sound System out println 喵喵 classDogextendsAnimal publicvoidsound 重写父类方法 super sound System out println 汪汪 50 1 27 2020 面向对象的三大特征之多态5 3 注意 父类引用变量能调用的 只有子类重写过的方法 子类自己定义的新方法 父类引用变量是不能调用的 否则会出现编译错误 publicclassAnimal publicvoidsound publicstaticvoidmain String agrs Animalpit newCat pit sound pit eat 错误 因为类Animal中没有这个方法 classCatextendsAnimal publicvoidsound publicvoideat 51 1 27 2020 面向对象的三大特征之多态5 4 引用类型的强制类型转换只能把一个父类变量转换成子类类型 且转换的目标类型必须是这个变量实际指向的对象的实际类型才行 引用类型的强制类型转换只能发生在父类向子类转换 但仍然可能出现异常 Java语言提供了一个instanceof运算符来判断是否可以成功转换 publicclassClassOne publicstaticvoidmain String agrs Objectobj newString Hello Stringstr String obj 这个可以成功转换 Integering Integer obj 引发ClassCastException异常 Integer与String都是Object的子类 但obj指向的实际对象是String 类型的实例 所以将其转换为Integer是错误的 52 1 27 2020 面向对象的三大特征之多态5 5 instanceof运算符instanceof的前一个操作数通常是一个引用类型的变量 后一个操作数通常是一个类或者接口 一种特殊的类 用于判断前面的对象是否是后一个类或者子类的实例 注意 在使用instanceof时 其前操作数的类型要么是后操作数的相同类 要么是后操作数的父类 否则编译错误 publicclassClassOne publicstaticvoidmain String agrs Objectobj newString Hello objinstanceofObject String属Object子类 结果True objinstanceofString 相同类 结果True objinstanceofInteger Integer属Object子类 结果False Stringstr String obj strinstanceofInteger 错误 不可转换的类型 在程序设计中 可以先用instanceof判断对象能否进行强制类型转换 再进行强制转换 如 if objinstanceofString str String obj 53 1 27 2020 面向对象的三大特征 小结面向对象编程有哪三大特征 什么是封装 简述setter getter的特点 什么是继承 对于面向对象编程 继承的优势在哪里 举例说明super关键字的用途 举例说明什么是重写 什么是多态 举例描述多态的特性 instanceof关键字有什么用途 简述引用类型的强制类型转换的注意事项 54 1 27 2020 对象的组合2 1 继承的缺点 破坏封装继承使代码高度复用 却严重破坏了父类的封装性 封装的特点 隐藏内部信息和实现细节 只暴露出必要的方法供其它类使用 但在继承关系中 子类可以直接访问父类属性和方法 并且可以利用重写技术改变父类方法的实现细节 从而导致子类可以恶意篡改父类方法 为了保证良好的封装性 父类设计应遵循以下原则 尽量把父类属性都设置成private 不让子类直接访问 有效利用修饰符与访问修饰符控制父类方法 不让子类可以随便访问 修改父类方法 即量力开放权限 不要在父类构造方法中调用被子类重写的方法 容易引发空指针异常 55 1 27 2020 对象的组合2 1 不想让自己设计的类被继承 即拒绝继承 可以 用final修饰符将类设计成最终类 把所有的构造方法都设置成private属性 在程序设计中 什么情况下才考虑从父类派生子类呢 需要满足以下两个条件之一 子类需要额外增加属性 而不仅仅是属性值的改变 子类需要增加或者重写自己独有的行为方法 如果只是单纯的出于类的复用目的 而不是去改造 扩充 可以利用组合技术来实现 56 1 27 2020 对象的组合2 2 利用组合技术实现类的复用把旧类对象作为新类的属性嵌入 用以实现新类的功能 就好像现成的工具 直接拿来用 而不是再改造升级 文件名 Cat java 第一页 classAnimal publicvoideat Syste

温馨提示

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

评论

0/150

提交评论