面向对象的编程基本语法演示文稿_第1页
面向对象的编程基本语法演示文稿_第2页
面向对象的编程基本语法演示文稿_第3页
面向对象的编程基本语法演示文稿_第4页
面向对象的编程基本语法演示文稿_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

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

文档简介

面向对象的编程基本语法演示文稿第一页,共九十一页。优选面向对象的编程基本语法第二页,共九十一页。程序设计语言的发展机器语言-由计算机硬件系统可以识别的二进制指令组成的语言,这种语言中的指令都是由0,1组成的序列,称这样的序列为一条机器指令。如101101110001汇编语言-由机器指令映射出来的容易被人读懂的助记忆符,如ADDDXCX高级语言机器码——低级——高级第三页,共九十一页。面向过程的程序设计设计思路自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。程序结构按功能划分为若干个基本模块,形成一个树状结构。各模块间的关系尽可能简单,功能上相对独立;每一模块内部均由顺序、选择和循环三种基本结构组成。其模块化实现的具体方法是使用子程序。优点有效地将一个较复杂地程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。第四页,共九十一页。面向过程的程序设计的局限在面向过程程序设计中,被操作的数据仍然是嵌入在编程语句中的,并且与程序逻辑混合在一起,计算机的信息世界与现实世界之间的映射关系仍然不直接,不明确。用面向过程的方法开发较大的软件系统,数据缺乏保护。使用面向过程程序设计方法建立的应用程序是很难修改。第五页,共九十一页。面向对象程序设计的概念面向对象程序设计是建立在结构化程序设计基础上的,但它不再是从功能入手,而是从对象(人、地方、事情等)入手;面向对象程序设计以类作为构造程序的基本单位,它具有封装、数据抽象、继承、多态等特点;第六页,共九十一页。面向对象的方法学世界是由什么组成的?名胜人物品动物,植物……

第七页,共九十一页。对象一般意义上的对象是现实世界中的一个实际存在的事物,可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划),是构成世界的一个独立单位,具有:

对象标识:即对象名,是一个对象区别于其他对象标识符。

对象状态:可以用某种数据来描述

对象行为:对象所表现的行为或具有的功能第八页,共九十一页。对象

颜色:灰色

排量:3.0刹车产地:德国行驶名字:保时捷行为状态

颜色:红色

排量:4.0刹车产地:意大利行驶名字:法拉利行为状态有各自不同的状态第九页,共九十一页。对象布兰尼朱丽叶顾客姓名:朱丽叶年龄:28体重:52千克操作:购买商品姓名:布兰尼职衔:收银员年龄:35体重:60千克操作:收款打印账单第十页,共九十一页。对象的特征——属性属性——对象具有的各种特征每个对象的每个属性都拥有特定值例如:布兰尼和朱丽叶的体重不一样

60kg布兰尼属性

35岁收银员布兰尼第十一页,共九十一页。对象的特征——方法方法——对象执行的操作打单收银方法刷卡收银员布兰尼第十二页,共九十一页。对象的属性和方法列出尼古拉斯·凯奇驾驶的这辆法拉利F360Spider的属性和方法列出小狗对象的属性和方法属性:品牌:法拉利型号:F360Spider

颜色:黄色价格:380万元方法:发动停止加速属性:

颜色:白色方法:

叫跑吃第十三页,共九十一页。说一说教室里的对象描述他们的属性和方法颜色:黑色品牌:BENQ投影姓名:张三年龄:20学习第十四页,共九十一页。抽象分类-人类通常的思维方式分类所依据的原则-抽象忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。第十五页,共九十一页。抽象对象类(抽象化)Shape第十六页,共九十一页。从对象抽象出“类”抽取出下列对象的属性和方法的共同特征

轿车顾客第十七页,共九十一页。类面向对象方法中的“类”具有相同属性和方法的一组对象的抽象的描述。类的数据成员是对对象属性的抽象,类的方法成员是对对象行为的抽象,而类本身就是对对象的抽象。类与对象的关系犹如模具和铸件之间的关系,一个属于某类的对象称为该类的一个实例。第十八页,共九十一页。对象类(抽象化)类对象(具体化)王艳2年级3班刘强5年级1班范小飞2年级1班Student类第十九页,共九十一页。类和对象小汽车

颜色:灰色

排量:3.0

刹车产地:德国行驶名字:保时捷行为状态类的实例化,是由类具体化对象类产地车体颜色行驶刹车…归纳一组相似对象的共性对象属性方法第二十页,共九十一页。封装把对象的属性和方法结合成一个独立的系统单位对象的属性和方法通常被封装在一起,共同体现事物的特性,二者相辅相承,不能分割第二十一页,共九十一页。封装封装第一个涵义是,把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。第二个涵义也称作“信息隐蔽”,即尽可能隐蔽对象的内部细节,对外形成一个边界(或者说形成一道屏障),只保留有限的对外接口使之与外部发生联系。第二十二页,共九十一页。继承继承是面向对象语言的另一特性。类与类之间可以组成继承层次,一个类的定义(子类)可以定义在另一个已定义类(父类)的基础上。子类可以继承父类中的属性和操作,也可以定义自己的属性和操作。因而具有继承这一特性所带来的优势,大大增加了程序的重用性。第二十三页,共九十一页。面向对象的方法学继承ShapeTriangleRectangleEllipseSquarePolygonCircle汽车轿车跑有四个轮子跑有四个轮子第二十四页,共九十一页。多态多态性多态性是指不同类型的对象接收相同的消息时产生不同的行为。如电梯系统中,当向按钮对象发送消息pressButton()时,不同按钮对象如电梯内部按钮(ElevatorButton)和楼层按钮(FloorButton)会自动判断自己的所属类并执行相应的服务。第二十五页,共九十一页。消息机制在面向对象技术中,对象间的交互是通过消息的传递来完成的。消息处理方法就是对象的成员方法。Windows操作系统也是以消息为基础,事件为驱动的。第二十六页,共九十一页。3.2类的定义类是对象的模板,使用对象前必须先创建类[修饰符]class

类名[extends父类][implements接口名]

{

成员变量声明; //描述对象的状态方法声明; //实现对象的行为}publicclassCustomer{ publicstring name; publicdouble creditLimit; publicint customerID;}类访问修饰符默认为:friendly

第二十七页,共九十一页。3.2类的定义类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类是用来定义对象的模板。类的实现包括两部分:类声明和类体。“classCustomer”叫做类声明;“Customer”是类名。习惯上类名的第一个字母大写,但这不是必须的。类声明之后的一对大括号“{”,“}”以及它们之间的内容称做类体。第二十八页,共九十一页。3.2类的定义

类修饰符:public公共类、private私有类、protected受保护类;abstract抽象类;final最终类。

class:是关键字,是声明类的必须的符号。

类名:是类设计者指定的标识符。

父类:如果正在定义的类需要从另一个类中继承所有的成员,被继承的类就是父类。第二十九页,共九十一页。类的访问控制顶层类只能是public或默认访问级别public级别的类可以被同一个包或者其他包中的类访问默认级别的类只能被同一个包中的类访问publicclassSample{…}//public级别classSample{…}//默认访问级别protectedclassSample{…}//非法privateclassSample{…}//非法第三十页,共九十一页。classtrapezia

{floatsupside,subside,high,area;//变量定义部分

floatcomputeArea()//方法定义

{area=(supside+subside)*high/2.0f;returnarea;}voidmodifyHigh(floath)//方法定义

{high=h;}}3.2类的定义第三十一页,共九十一页。成员变量成员变量是用来描述事物的静态特征的。修饰符[修饰符]数据类型变量名;public:可被所有其他类引用。private:仅可被该类自身引用和修改,不能被其他任何类(包括子类)引用。protected:该类自身、子类、同一包中的其他类。缺省:本包中的类。static:类成员变量,对所有的实例一致,引用时前缀可使用类名或对象名。final:数值不变常量,定义同时应对其进行初始化。第三十二页,共九十一页。成员变量和局部变量类中变量定义部分所定义的变量被称为类的成员变量。在方法体中定义的变量和方法的参数被称为局部变量。成员变量在整个类内都有效,局部变量只在定义它的方法内有效。如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏。这时如果想在该方法内使用成员变量,必须使用关键字this。第三十三页,共九十一页。变量1类型变量1;变量2类型变量2;变量3类型变量3;public返回类型方法1(){

变量4类型变量4;}public返回类型方法2(){

变量5类型变量5;}publicclassAutoLion{}AutoLion类的方法别的类的方法谁能使用这些变量?方法1方法2成员变量局部变量局部变量成员变量和局部变量第三十四页,共九十一页。publicclassAutoLion{Stringcolor="黄色";publicvoidrun(){//方法1:跑System.out.println("正在以0.1米/秒的速度向前奔跑。");}

publicStringbark(){//方法2:叫Stringsound="吼";returnsound;}

publicStringgetColor(){//方法3:获得颜色属性returncolor;}

publicStringshowLion(){//方法4:输出类的描述信息return"这是一个"+getColor()+"的玩具狮子!叫声是"+sound;}}可以调用吗?成员变量和局部变量第三十五页,共九十一页。类的方法(2)类的方法类的方法,用来规定类属性上的操作,实现类对外界提供的服务,也是类与外界交流的接口。

Java中声明方法的语法如下:

[修饰符]返回值类型方法名(参数列表)throws异常1{//方法体声明局部变量声明;语句序列;}第三十六页,共九十一页。类和对象类:相对对象而言,类似于蓝图包含方法和数据对象:是类的实例使用关键字new创建对象具有行为对象厨房起居室浴室书房饭厅储藏室门廊类第三十七页,共九十一页。3.2.2创建类的实例对象创建一个对象包括对象的声明和为对象分配内存两个步骤。

(1).对象的声明。一般格式为:

PersonzhangPing;类的名字对象名字;如:第三十八页,共九十一页。3.2.2创建类的实例对象(2)为声明的对象分配内存使用new运算符为声明的对象分配内存。如:

zhangPing=newPerson();第三十九页,共九十一页。classPerson{ floatheight,weight; Stringname; voidspeak(Strings){ System.out.println(s);}}classProgram{ publicstaticvoidmain(Stringargs[]){ PersonzhangPing;//声明对象

zhangPing=newPerson(); }}

(3)对象的内存模型3.2.2创建类的实例对象第四十页,共九十一页。当用Person类声明一个变量,即对象zhangPing时,如例子中的对象:

PersonzhangPing;内存模型如左图所示

3.2.2创建类的实例对象当系统见到:zhangPing=newPerson();

时,就会做两件事:第四十一页,共九十一页。①为height,weight,name各个变量分配内存,即Person类的成员变量被分配内存空间。②new运算符在为变量height,weight,name分配内存后,将返回一个引用给对象变量zhangPing。3.2.2创建类的实例对象第四十二页,共九十一页。值类型与引用类型JAVA数据类型分为两类:值类型和引用类型。

值类型:包括简单类型、枚举类型。

引用类型:包括类、接口、数组。

一般把引用类型的变量称为对象。第四十三页,共九十一页。值类型与引用类型区别堆栈堆56ij实际数据12345Hobj第四十四页,共九十一页。publicclassSchool{

//定义属性

StringschoolName;

//学校的全称

intclassNum;

//教室的数目

intlabNum;

//机房的数目

//定义方法

publicStringtoString(){

returnschoolName+"\n"+

"配备:"+classNum+"教室"+labNum+"机房";

}

}定义类的toString()方法,用于输出类相关的信息public

StringtoString(){

return字符串;//方法体}成员变量第四十五页,共九十一页。使用对象使用对象:使用“.”进行以下操作给类的属性赋值:对象名.属性调用类的方法:对象名.方法名()school.Name=“郑州轻工学院";//给属性赋值school.toString();//调用类的方法,该方法中的操作将被执行第四十六页,共九十一页。publicclassInitSchool{

publicstaticvoidmain(String[]args){ Schoolschool=newSchool();System.out.println(school);school.Name=“郑州轻工业学院";school.classNum=100;school.labNum=20;System.out.println(school);}}创建和使用对象示例说一说看到什么效果?第四十七页,共九十一页。编写学生类,输出学生相关信息编写教师类,输出教师相关信息学生类属性:姓名年龄参加的课程兴趣方法:显示学员个人信息教师类属性:姓名专业方向教授的课程教龄方法:显示教师个人信息第四十八页,共九十一页。3.3构造函数Studentzhang=newStudent();zhang.Name="张靓靓";zhang.Age=20;zhang.Hobby="唱歌歌";班级来了新学生添加学生对象学生类实例化对象、设置属性初始属性若太多,设置麻烦能否在实例化时设置属性?publicStudent(stringname,intage,stringhobby){

this.Name=name;this.Age=age;this.Hobby=hobby;}Studentzhang=newStudent("张靓靓",20,"唱歌歌");一次设置完成类中加入这个方法添加的方法叫做构造函数第四十九页,共九十一页。构造函数[访问修饰符]

<类名>(){//构造函数的主体}publicclassEmployee{…

//默认构造函数

Employee()

{ qualification="研究生";

}

…}构造函数名称同类名,并没有返回值。第五十页,共九十一页。构造函数是类中的一种特殊的方法构造函数名与类名相同,不返回任何值可初始化成员变量每次创建类的实例都会调用此方法第五十一页,共九十一页。staticvoidMain(String[]args)

{ //调用默认构造函数EmployeeobjEmployee=newEmployee();System.out.println(“资格="+objEmployee.qualification);(“薪水="+objEmployee.salary);

}}构造函数classEmployee{privateStringname;privatechargender;privateStringqualification;privateintsalary;//默认构造函数privateEmployee()

{qualification=“研究生";

}实例化对象调用构造函数使用new关键字第五十二页,共九十一页。finalize()方法Java中一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存。所以如果使用finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作。使用finalize()方法的一般格式如下:

protectedvoidfinalize(){//finalizationcodehere}

其中关键字protected是防止该类之外的其他对象或代码访问该方法。第五十三页,共九十一页。3.4方法的使用写出狮子对象的“跑”方法写出狮子对象的“叫”方法电动玩具狮子属性:颜色:黄色行为:跑叫按此按钮,狮子开始跑第五十四页,共九十一页。3.4方法的使用publicclassAutoLion{Stringcolor="黄色";

public

void

run(){System.out.println("正在以0.1米/秒的速度向前奔跑");}

publicStringbark(){Stringsound="吼";

returnsound;}}AutoLion类代码实现方法名称方法体返回类型第五十五页,共九十一页。如何定义类的方法方法(Method)是一组程序代码的集合方法是类或对象的行为对象需要做某些事情,在类中添加方法方法的定义方法的名称方法的主体方法返回的数据类型参数列表第五十六页,共九十一页。3.4方法的使用访问修饰符返回类型方法名(参数列表){//方法的主体…}通过return返回值publicprivateintdoublestringvoid…命名规范:单词首字母大写——Pascal命名法参数传递访问修饰符(可选),默认情况下为

private如果不需要返回任何值,方法返回void数据类型方法的声明第五十七页,共九十一页。定义方法时,需要注意以下几点:方法名不能和变量、常数或者类中其它的成员相同。方法可以有参数,也可以没有参数,但是不论是否有参数,小括号都是必需的。结束某个方法的执行,可以使用return语句,程序遇到return语句后,会将执行流程交还给调用此方法的程序代码段。如果声明一个非void类型的方法,则方法中必须至少有一个return语句。3.4方法的使用第五十八页,共九十一页。方法的返回值两种情况如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型为该返回值的类型如果方法没有返回值,返回类型为voidpublicclassStudent{Stringname="张三";publicvoidgetName(){

returnname;}……}返回类型要匹配return

表达式;编译错误第五十九页,共九十一页。常见错误-1publicclassSchool{……publicstaticvoidmain(String[]args){……

return"郑州轻工业学院!";}}返回类型是void方法中不能有返回值第六十页,共九十一页。常见错误-2publicclassStudent{

publicdoublegetInfo(){

doubleweight=95.5;

doubleheight=1.69;

returnweight,height;}}方法至多可以返回一个值,不能返回多个值第六十一页,共九十一页。方法调用方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果方法调用:执行方法中包含的语句

对象名.方法名();第六十二页,共九十一页。方法调用classProgram{

publicintMyMethod(){System.out.println("thisisMyMethod.");inti=10;returni;}publicstaticvoidmain(String[]args){

Programmethod=newProgram();intj=5;j=method.MyMethod();System.out.println("thevalueis:“+j);}}第六十三页,共九十一页。方法参数下面代码输出结果是什么?publicstaticvoidmain(string[]args){intnum1=5,num2=10;//两个数字

System.out.println(“交换前两个数的值分别为:”+num1+“和”+num2);

Swap(num1,num2);//交换两个数的值

System.out.println("交换后两个数的值分别为:”+num1+“和”+num2);}//交换两个数的方法privatestaticvoidSwap(intnum1,intnum2){inttemp;//中间变量

temp=num1;num1=num2;num2=temp;}第六十四页,共九十一页。方法参数传递引用类型时:类:Student参数在程序中被修改//传递引用类型参数Studentscofield=

newStudent("Scofield",Genders.Male,28,"越狱狱");scofield.SayHi();Vote(scofield);scofield.SayHi();引用类型:类人气属性加1的方法第六十五页,共九十一页。方法参数classProgram{publicstaticvoidAddOne(inta) {a++;}publicstaticvoidmain(String[]args){inta=3;System.out.println("调用AddOne之前,a=“+a);AddOne(a);System.out.println("调用AddOne之后,a=“+a); }}1)传递值类型的参数第六十六页,共九十一页。方法参数classProgram{publicstaticvoidAddOne(int[]a){a[0]++;}publicstaticvoidmain(String[]args){int[]a={3};System.out.println("调用AddOne之前,a=“+a[0]);AddOne(a);System.out.println("调用AddOne之后,a=“+a[0]); }}2)传递引用类型的参数第六十七页,共九十一页。JVM在运行时,做完初始化之后,就会查找main()方法,从这里开始整个程序的运行。在main()方法的括号里面有一个形式参数“Stringargs[]”,可以接受系统所传递的参数。在命令行执行一个程序通常的形式是:3.4.6命令行参数的使用参数列表中可以容纳多个参数,参数间以空格或制表符隔开,它们被称为命令行参数。

java

类名

[参数列表]第六十八页,共九十一页。3.5访问控制所谓访问控制是指对象是否可以通过“.”运算符操作成员变量或通过“.”运算符使用成员方法。JAVA中有以下成员访问修饰符:public:任何类都可以不受限制的存取这个类的成员。private:所有方法和数据成员只能在此类中使用protected:

除了类内可以使用之外,继承自此类的子类也可以存取。缺省:在当前包中都可以存取。第六十九页,共九十一页。修饰符与访问控制同一个类同一个包不同包的子类不同包非子类private√缺省√√protected√√√public√√√√第七十页,共九十一页。classStudent{

privatestringname;//姓名

publicintage;//年龄

publicstringidNumber

;//身份证号}…staticvoidMain(string[]args){

StudentmyStudent=newStudent();

myS="张三";

myStudent.age=20;

}类成员访问修饰符私有成员公有成员实例化一个对象可以访问无法访问编译错误

第七十一页,共九十一页。类成员访问修饰符staticvoidMain(string[]args){

StudentmyStudent=newStudent();

myStudent.age=-2;myStudent.idNumber="123456";

}非法数据身份证号不能被修改无法获得数据无法正常赋值有时候将类中的字段公开是不安全的如果设为私有成员能否对这些字段进行规则约束或者只读呢?第七十二页,共九十一页。私有变量和私有方法一个类中创建了另外一个类的对象后,该类不能通过对象名访问其私有变量和私有方法.publicclassDemoPrivate{ publicinta;//公共类型的成员变量

privateintb;//私有类型的成员变量

publicintgetA(){//公共类型的成员方法

returna; } privateintgetB(){//私有类型的成员方法

returnb; } publicDemoPrivate(inta,intb){//构造方法

this.a=a; this.b=b; }第七十三页,共九十一页。私有变量和私有方法

publicstaticvoidmain(Stringargs[]) { DemoPrivateaDemoPrivate=newDemoPrivate(1,2);

//访问公共类型的成员方法

inta=aDemoPrivate.getA(); System.out.println("变量a的值:"+a);

//访问私有类型的成员方法

intb=aDemoPrivate.getB(); System.out.println("变量b的值:"+b); }}尽管成员变量和成员方法定义为私有类型。但由于处于同一类中,仍然能够对成员变量和成员方法进行访问。如果在另一类中,则访问受到限制。第七十四页,共九十一页。2.公有变量和公有方法一个类中创建了另外一个类的对象后,该类能够通过对象名访问其公有变量和公有方法.packagepub1;publicclassDemopub1{//public修饰是必需的。

//公共类型的成员变量

publicinta;

//公共类型的成员方法

publicvoidmethod() { System.out.println(); }}第七十五页,共九十一页。packagepub2;importpub1.*;classDemopub2{ publicstaticvoidmain(Stringargs[]) { Demopub1aDemo1=newDemopub1();

//访问aDemo1中的公共成员方法

aDemo1.method();

//访问aDemo1中的公共成员变量

aDemo1.a=10; inta=aDemo1.a; System.out.println("aDemo1中的公共成员变量a的值:"+a); }}2.公有变量和公有方法第七十六页,共九十一页。3.默认变量和默认方法不用private、public、protected修饰符的成员变量和方法被称为友好变量和友好方法。一个类创建了另外一个类的一个对象后,如果两个类在同一包中,该类中可以通过对象访问其默认变量和默认方法第七十七页,共九十一页。4.受保护的成员变量和方法一个类创建了另外一个类的一个对象后,如果两个类在同一包中,该类能够通过对象访问其protected变量和protected方法在后面学习类的继承时,将讲述protected和“友好”之间在继承方面的区别。第七十八页,共九十一页。//Demopro3.Javapackagepro3;publicclassDemopro3{

//公共类型的成员变量

publicinta;

//保护类型的成员方法

protectedvoidmethod() { System.out.println(); }}【例】不同包中公共类中protected修饰的方法的访问4.受保护的成员变量和方法第七十九页,共九十一页。packagepro4;importpro3.*;publicclassDemopro4{ publicstaticvoidmain(Stringargs[]) { Demopro3aDemo1=newDemopro3();

//不能访问Demopro3中的保护类型成员方法

//原因是该方法是protected类型

//aDemo1.method(); //可以访问Demopro3中的公共成员变量

aDemo1.a=10; inta=aDemo1.a; System.out.println("Demopro3中的公共成员变量a的值:"+a); }}4.受保护的成员变量和方法第八十页,共九十一页。3.5.2static关键字的使用类可以具有静态的成员,如静态字段、静态方法使用static关键字修饰访问修饰符static

数据类型变量名;访问修饰符static返回值类型方法名(参数列表)第八十一页,共九十一页。3.5.2static关键字的使用静态变量属于类在类的实例创建以前完成初始化,并且它在应用程序的整个生存期内一直存在。只开辟一块内存空间存储,被同一个类的所有实例共享,因此static字段也称为类字段classLion

{ publicstaticstringfamily="felidae"; //猫科动物}...//ALionobjectisnotcreatedinthiscodeSystem.out.println("Family:{0}",Lion.family);第八十二页,共九十一页。3.5.2static关键字的使用实例变量必须首先实例化类的一个对象,再通过对象访问,因此称为实例变量classCat{stringname;staticstringfood;}staticvoidMain(){Cat.food=“fish”;//OKC=“Kitty”;//错误

Catcat1=newCat();=“Kitty”;//OK}static变量不依赖于具体对象,可通过类名直接访问,无需先生成一个实例对象,也可以通过实例对象访问类变量第八十三页,共九十一页

温馨提示

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

评论

0/150

提交评论