第三章面向对象编程精选PPT.ppt

上传人:石*** 文档编号:49408165 上传时间:2022-10-08 格式:PPT 页数:63 大小:6.81MB
返回 下载 相关 举报
第三章面向对象编程精选PPT.ppt_第1页
第1页 / 共63页
第三章面向对象编程精选PPT.ppt_第2页
第2页 / 共63页
点击查看更多>>
资源描述

《第三章面向对象编程精选PPT.ppt》由会员分享,可在线阅读,更多相关《第三章面向对象编程精选PPT.ppt(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第三章面向对象编程第三章面向对象编程第1页,本讲稿共63页本章知识要点:本章知识要点:定义继承、多态、重载、覆盖和虚拟方法调用定义继承、多态、重载、覆盖和虚拟方法调用使用访问修饰符使用访问修饰符protectedprotected和和“友元包友元包”描述构造器和方法重载的概念描述构造器和方法重载的概念描述完整的对象构造和初始化操作描述完整的对象构造和初始化操作在在javajava程序中识别下列内容程序中识别下列内容重载方法和构造器重载方法和构造器使用使用thisthis来调用重载的构造器来调用重载的构造器覆盖方法覆盖方法调用超类方法调用超类方法父类构造器父类构造器调用父类构造器调用父类构造器类

2、设计第2页,本讲稿共63页面向对象的思想概述面向对象的思想概述1.面向对象的编程思想力图使对计算机语言中对事物的的描述与现实世界中该事物的本来面目尽可能的一致。2.类(class)和对象(object)是面向对象方法的核心概念。类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)。第3页,本讲稿共63页类和对象类和对象(1)对象表示现实世界中某个具体的事物。对象表示现实世界中某个具体的事物。抽象是从特定的实例中抽取共同的性质以形抽象是从特定的实例中抽取共同的性质以形成一般化概念的过程。成一般化概念的过程。对象具有两方面的含义:对象具有

3、两方面的含义:9 在现实世界中:在现实世界中:是客观世界中的一个实体是客观世界中的一个实体9 在计算机世界中:在计算机世界中:是一个可标识的存储区域是一个可标识的存储区域第4页,本讲稿共63页类和对象类和对象(2)类是具有共同属性类是具有共同属性和行为的对象的抽和行为的对象的抽象。象。类可以定义为数据类可以定义为数据和方法的集合。和方法的集合。类也称为模板,因类也称为模板,因为它们提供了对象为它们提供了对象的基本框架。的基本框架。类对象抽抽象象实实例例化化属性或状态属性或状态操作或行为操作或行为数据或变量数据或变量方法方法封装的实体=数据+方法第5页,本讲稿共63页创建类创建类 classna

4、metypevariable1;typevariableN;typemethodname1(parameter-list)/方法体方法体typemethodnameN(parameter-list)/方法体方法体 在类中,属性是通过成员变量体现在类中,属性是通过成员变量体现的,而操作是用成员函数(又称为的,而操作是用成员函数(又称为方法)实现的。方法)实现的。Java中定义类的通用格式:成员变量(对象属性)成员方法(对象行为或操作)第6页,本讲稿共63页类和对象举例定义一个类定义一个类:class Person int age;int getAge()return age;void setAg

5、e(int i)age=i;声明并创建一个声明并创建一个Person类的对象,将该对象命名为类的对象,将该对象命名为a:Person a=new Person();调用对象调用对象a中的方法中的方法:a.setAge(36);第7页,本讲稿共63页声明属性语法格式:type =defaultValue;举例:public class Person private int age;public String name=“Lila”;第8页,本讲稿共63页定义方法定义方法定义方法的一般格式:定义方法的一般格式:accesstypemethodname1(parameter-list)/方法体方法体

6、发往某个对象的消息对应于一发往某个对象的消息对应于一个方法调用。作为对消息的响个方法调用。作为对消息的响应,对象将执行一个类似于过应,对象将执行一个类似于过程体的方法。方法是包含在类程体的方法。方法是包含在类中的函数。中的函数。方法名称返回类型修饰符,可选参数列表,可选举例:举例:publicvoidsetdate(intday,intmonth,intyear)day=23;month=7;year=2003;第9页,本讲稿共63页构造方法构造方法构造函数名称与类名称相同构造函数名称与类名称相同构造函数没有返回类型构造函数没有返回类型其任务是在创建对象时初始化其内部状态其任务是在创建对象时初

7、始化其内部状态class Fruit boolean seedLess;boolean seasonal;float price;Fruit(boolean seed,boolean season,float p)seedLess=seed;seasonal=season;price =p;第10页,本讲稿共63页默认的构造方法(默认的构造方法(1)Java语言中,每个类都至少有一个构造方法;如果类的定义者没有显式的定义任何构造方法,系统将自动提供一个默认的构造方法:默认构造方法没有参数默认构造方法没有方法体Java类中,一旦类的定义者显式定义了一个或多个构造方法,系统将不再提供默认的构造方法

8、;第11页,本讲稿共63页默认的构造方法(默认的构造方法(2)类的定义:public class Person private int age;public void setAge(int w)age=w;等价于:public class Person private int age public Person()public void setAge(int w)age=w;应用举例:public class Test public static void main(String args)Person d=new Person();d.setAge(120);第12页,本讲稿共63页创建对象

9、创建对象使用下列语法可创建对象:使用下列语法可创建对象:new 构造函数构造函数关键字关键字 new 通常称为创建运算符,用于分通常称为创建运算符,用于分配对象内存,并将该内存初始化为缺省值。配对象内存,并将该内存初始化为缺省值。一旦一旦 new 完成分配和初始化内存,它就将完成分配和初始化内存,它就将调用构造函数来执行对象初始化。调用构造函数来执行对象初始化。当创建一个类时,只是创当创建一个类时,只是创建了一种新的数据类型。建了一种新的数据类型。对象是类的一个实例。对象是类的一个实例。classFruitDemopublicstaticvoidmain(Stringargs)Fruitf=n

10、ewFruit(true,false,50.0F);创建对象第13页,本讲稿共63页练习分析并编译、运行下面的源文件,体会类的定义、对象的创建、对象分析并编译、运行下面的源文件,体会类的定义、对象的创建、对象成员方法的调用、类的定义和应用程序在源文件结构上的不同;成员方法的调用、类的定义和应用程序在源文件结构上的不同;/源文件源文件A.javapublic class A public void m1()System.out.println(hi);/源文件源文件Test.javapublic class Test public static void main(String args)A h

11、ello=new A();hello.m1();第14页,本讲稿共63页面向对象的应用举例(1)程序程序BirthDate.java:public class BirthDate private int day;private int month;public int year;public void setDay(int d)day=d;public void setMonth(int m)month=m;public void setYear(int y)year=y;public int getDay()return day;public int getMonth()return mon

12、th;public int getYear()return year;public void show()System.out.println(day+-+month+-+year);第15页,本讲稿共63页面向对象的应用举例(2)程序程序ObjectOperating.java:public class ObjectOperating public static void main(String args)BirthDate b=new BirthDate();b.setDay(25);b.setMonth(12);b.setYear(2003);b.day=2;b.year=2003;b.

13、show();第16页,本讲稿共63页JavaJava中的访问修饰符中的访问修饰符JavaJava中共有四种访问修饰符:中共有四种访问修饰符:1 1、public public:完全公开,没有类或包的限制完全公开,没有类或包的限制2 2、protectedprotected:强调继承关系,没有包的限制强调继承关系,没有包的限制3 3、defaultdefault:有包的限制,没有类的限制,有包的限制,没有类的限制,对于同一包对于同一包中的类来说,相当于中的类来说,相当于publicpublic修饰符。也可叫做修饰符。也可叫做package package privateprivate4 4、p

14、rivate:private:有包的限制,同时也有类的限制,只能被有包的限制,同时也有类的限制,只能被同一个类中的成员函数或内部类访问。同一个类中的成员函数或内部类访问。第17页,本讲稿共63页关于访问权限的习题测试privatefriendlyprotectedpublic同一类同包不同类同包子类不同包子类不同包不同类calssuseYYYYNYYY NYYY NNYYNNNY下题每空5分,测测您的分数:第18页,本讲稿共63页实例验证在在同同一一个个类类中中package accessdemo;public class SuperClasspublic void testPublic()S

15、ystem.out.println(a public method in superclass);protected void testProtected()System.out.println(a protected method in superclass);void testFriendly()System.out.println(a friendly method in superclass);private void testPrivate()System.out.println(a private method in superclass);public static void m

16、ain(String args )SuperClass sc=new SuperClass();sc.testPublic();sc.testProtected();sc.testFriendly();sc.testPrivate();第19页,本讲稿共63页实例验证同一同一包不包不同类同类package accessdemo;import accessdemo.SuperClass;public class SamePackOtherClasspublic static void main(String args)SuperClass s=new SuperClass();s.testPub

17、lic();s.testProtected();s.testFriendly();s.testPrivate();s.testPrivate();第20页,本讲稿共63页实例验证同一同一包子包子类类package accessdemo;import accessdemo.SuperClass;public class SamePackSubClass extends SuperClasspublic static void main(String args)SamePackSubClass s1=new SamePackSubClass();s1.testPublic();s1.testPro

18、tected();s1.testFriendly();s1.testPrivate();s1.testPrivate();第21页,本讲稿共63页实例验证不同不同包子包子类类package accessdemo.otherpack;import accessdemo.SuperClass;public class OtherPackSubClass extends SuperClasspublic static void main(String args)OtherPackSubClass s1=new OtherPackSubClass();s1.testPublic();s1.testPr

19、otected();s1.testFriendly();s1.testPrivate();s1.testFriendly();s1.testPrivate();第22页,本讲稿共63页实例验证不同不同包不包不同类同类package accessdemo.otherpack;import accessdemo.SuperClass;public class OtherPackOtherClasspublic static void main(String args)SuperClass s=new SuperClass();s.testPublic();s.testProtected();s.t

20、estFriendly();s.testPrivate();s.testProtected();s.testFriendly();s.testPrivate();第23页,本讲稿共63页继承 继承表示一个类从其它类中获得结构和行为(子类/父类)又名普遍化 交通工具是一个父类 地面交通工具和空中交通工具是子类VehicleGroundVehicleAirVehicleThe arrow points toward the superclass第24页,本讲稿共63页继承继承通常被称为“is-a”或“kind-of”一个子类的实例也“is a”父类的实例 一个子类的实例是“kind-of”父类第2

21、5页,本讲稿共63页多层次A Car is a kind of GroundVehicle which is a kind of VehicleVehicle and AirVehicle areancestors of AirplaneAirVehicle and Airplane are descendants of VehicleVehicleGroundVehicleAirVehicleCarTruckAirplaneHelicopter第26页,本讲稿共63页继承操作属性在继承结构的最高一层定义所有子类的实例能够继承这些操作每个子类可以增加或重新定义继承的属性GroundVehicl

22、elicenseNumberweightregister()CarTrucktonnagecalculateTax()A truck has three attributes:licenseNumberweighttonnageand two operations:registercalculateTax第27页,本讲稿共63页继承关系 关系也可以继承 每个子类都可以分享继承的关系GroundVehiclelicenseNumberweightregister()A truck has an ownerCarTrucktonnagecalculateTax()OwnerPerson1.*and

23、 a car has an owner1owner第28页,本讲稿共63页覆盖方法 子类可以修改从父类继承的行为。子类可以创建同父类的方法不同功能的方法,但方法名、返回值类型、参数列表必须一致。要求:1.方法声明形式一致 2.方法权限不允许缩小 3.覆盖的方法不允许抛出比父类方法更多的异常第29页,本讲稿共63页方法覆盖的示例classA1voidcallme()System.out.println(“在在A1的的callme()成员函数里成员函数里”);classB1extendsA1voidcallme()System.out.println(“在在B1的的callme()成员函数里成员函

24、数里”);publicclassDispatchpublicstaticvoidmain(Stringargs)A1a=newA1();a.callme();A1b=newB1();b.callme();示例II:6-10 练习第30页,本讲稿共63页Super关键字super关键字引用使用该关键字的类的超类。它用于引用超类的成员变量和方法。1).点取父类中被子类隐藏了的数据成员2).点取已经覆盖了的方法 3).作为方法名表示父类构造方法注:在创建子类对象时,缺省沿继承链调用所有父类无参的构造方法,也可以用super关键字来显示调用直接父类的构造方法 第31页,本讲稿共63页使用supersu

25、per关键字示例classApublicinti;publicA()publicA(inti)this.i=i;intget()returni;classBextendsApublicB()super(3);publicstaticvoidmain(Stringargs)Bb=newB();intx=b.get();System.out.println(“所得值为:所得值为:+x);示例II:6-12 练习第32页,本讲稿共63页执行结果第33页,本讲稿共63页多 态1、方法的重载(overload)2、方法的覆盖(override)3、一个引用变量可以指向多个不同形式的对象第34页,本讲稿共

26、63页成员方法的重载成员方法的重载方法的重载:方法的重载:就是在一个类的定义中有多个名称相同的成员就是在一个类的定义中有多个名称相同的成员方法,每个方法的参数列表必须不同。返回值类型方法,每个方法的参数列表必须不同。返回值类型可以不同。可以不同。方法的重载如下例所示:方法的重载如下例所示:void getArea(int w,int h);void getArea(int w,int h);void getArea(float w,float h);void getArea(float w,float h);程序实例见备注。程序实例见备注。第35页,本讲稿共63页成员方法重载实例 class

27、Test public int max(int a,int b)return ab?a:b;public double max(double a,double b)return ab?a:b;public String max(String a,String b)return a.length()b.length()?a:b);public static void main(String s)A a=new A();a.max(5,6);a.max(4.5,6.7);a.max(“abc”,“def”);第36页,本讲稿共63页构构造造器器重重载载classpersonStringname=“

28、neusoft;intage=45;person()person(Stringa)name=a;person(Stringa,intb)name=a;age=b;publicvoiddisplay()System.out.println(Name=+name+,+Age=+age);publicclassOverloadedDemopublicstaticvoidmain(Stringargs)persond1=newperson();persond2=newperson(zhou);persond3=newperson(zhou,27);d1.display();d2.display();d

29、3.display();第37页,本讲稿共63页重载时使用this关键字 class A int i=0,j=0;public A(int i,int j)this.i=i;this.j=j;public A(int k)this(k,k);public static void main(String s)A a1=new A(3,5);A a2=new A(8);表示方法名时,只能出现在构造方法里,且为第一句第38页,本讲稿共63页父类构造器的调用控制父类构造器的调用控制 class Bee extends Queen int a;Bee(int a)this.a=a;Bee()this(1

30、2);class Queen int a;Queen(int a)this.a=a;class Bee extends Queen int b;Bee(int b)super(15);this.b=b;第39页,本讲稿共63页调用构造器的相关规则调用构造器的相关规则从一个类创建对象时,可以调用此类的父类的构造器。从一个类创建对象时,可以调用此类的父类的构造器。调用方法为在类的构造器的方法体中的第一条语句使用调用方法为在类的构造器的方法体中的第一条语句使用supersuper。如果一个类的构造器中的第一条语句没有用如果一个类的构造器中的第一条语句没有用supersuper来调来调用其父类的构造器

31、,用其父类的构造器,编译器将在构造器中使用编译器将在构造器中使用supersuper调用调用父类的不带参数的构造器父类的不带参数的构造器。但如果父类中所有的构造器。但如果父类中所有的构造器都是必须带参数的,将会产生错误。都是必须带参数的,将会产生错误。如果某个类的构造器的第一条语句使用了如果某个类的构造器的第一条语句使用了thisthis来调用本来调用本类的另一个构造器,类的另一个构造器,则则JavaJava系统就不会默认此构造器需系统就不会默认此构造器需要调用父类的构造器了要调用父类的构造器了。一个构造器用一个构造器用thisthis调用本类的另一个构造器时,如果被调用本类的另一个构造器时,

32、如果被调用的构造器又是调用父类的构造器而又没有用调用的构造器又是调用父类的构造器而又没有用supersuper,此时,此时,JavaJava编译器将会默认它含有编译器将会默认它含有supersuper语句语句。如父类中。如父类中没有不带参数的构造器,编译将出错。没有不带参数的构造器,编译将出错。第40页,本讲稿共63页方法的覆盖 子类可以修改从父类继承的行为。子类可以创建同父类的方法不同功能的方法,但方法名、返回值类型、参数列表必须一致。要求:1.方法声明形式一致 2.方法权限不允许缩小 3.覆盖的方法不允许抛出比父类方法更多的异常第41页,本讲稿共63页Instanceof操作符一个引用变量

33、可以指向多个不同形式的对象第42页,本讲稿共63页 final和和abstract关键字关键字理解关键字的意义理解关键字的意义举例(略)举例(略)第43页,本讲稿共63页接口接口就是一种标准!第44页,本讲稿共63页接口的特点接口使用接口使用interfaceinterface关键字定义关键字定义接口中定义的变量都是最终的静态变量接口中定义的变量都是最终的静态变量 public static final public static final int aint a;接口没有自己的构造函数,它所定义的方法均接口没有自己的构造函数,它所定义的方法均是抽象方法是抽象方法 public abstrac

34、tpublic abstract speak();speak();JavaJava中类采用单一继承的机制,接口则采用多重中类采用单一继承的机制,接口则采用多重继承的机制。继承的机制。JavaJava通过接口实现了多重继承的功通过接口实现了多重继承的功能。能。第45页,本讲稿共63页接口的多重实现第46页,本讲稿共63页接口的应用实例(一)接口的应用实例(一)第47页,本讲稿共63页多重接口的应用实例多重接口的应用实例第48页,本讲稿共63页关关于于接接口口的的注注意意事事项项1 1、如果一个类实现了一个接口,则该类必须实现该、如果一个类实现了一个接口,则该类必须实现该接口的所有方法。接口的所有

35、方法。2 2、如果一个类实现了一个继承其它接口的接口,、如果一个类实现了一个继承其它接口的接口,则该类必须实现这个接口和其父接口的所有方法。则该类必须实现这个接口和其父接口的所有方法。3 3、接口不是类,不能使用、接口不是类,不能使用newnew操作符来实例化。但操作符来实例化。但可以声明一个接口变量。可以声明一个接口变量。例如:例如:MyInterface x;/MyInterface x;/正确正确 MyInterface x=new MyInterface();/MyInterface x=new MyInterface();/错误错误4 4、一个接口变量必须指向一个实现了该接口的类、一

36、个接口变量必须指向一个实现了该接口的类的对象。的对象。第49页,本讲稿共63页接口与抽象类的区别接口:拥有的成员函数均为抽象函数,支持多重继承。抽象类:拥有能够具体实现功能的成员函数,支持单继承。区别第50页,本讲稿共63页接口练习题接口练习题Given the folowing classes which of the following will compile without error?interface IFace class CFace implements IFace class Base public class ObRef extends Basepublic static

37、void main(String argv)ObRef ob=new ObRef();Base b=new Base();Object o1=new Object();IFace o2=new CFace();1)o1=o2;2)b=ob;3)ob=b;4)o1=b;第51页,本讲稿共63页嵌套类(内部类)嵌套类(内部类)内部类:内部类:就是将类定义放在其他类的定义中!就是将类定义放在其他类的定义中!内部类的优势:内部类的优势:1 1、对于同一个包中的其它类来说,内部类可以隐、对于同一个包中的其它类来说,内部类可以隐藏起来(使用藏起来(使用privateprivate关键字)。关键字)。2 2

38、、实现、实现C+C+中友元类的功能。内部类可以访问其中友元类的功能。内部类可以访问其所在的外部类的变量和方法。所在的外部类的变量和方法。注意:注意:1 1、如想实例化一个内部类,需这样使用内部类类、如想实例化一个内部类,需这样使用内部类类名:名:外部类类名外部类类名.内部类类名内部类类名2 2、如内部类有和外部类同名的变量和方法,则内、如内部类有和外部类同名的变量和方法,则内部类的变量和方法将获得比外部类的变量和方法部类的变量和方法将获得比外部类的变量和方法高的优先级。高的优先级。第52页,本讲稿共63页内部类(Inner Class)内部类是一个定义在另一个类内部的类,例如:class Ou

39、terClass static class A /静态内部类 class B /非静态内部类 public void disp()class C /局部内部类 编译后:OuterClass.class OuterClass$A.class OutClass$B.class OuterClass$1$C.class第53页,本讲稿共63页内部类使用示例class OuterClass static class A/静态内部类 public A()System.out.println(Test$A!);class B /非静态内部类 public B()System.out.println(Tes

40、t$B!);public void disp()final int a=10;int b;class C /成员函数中的局部内部类 public C()System.out.println(“in class C a=+a);/System.out.println(b);C c=new C();第54页,本讲稿共63页内部类的使用示例(续)public class Test extends OuterClass public static void main(String args)OuterClass.A a=new OuterClass.A();B b=new OuterClass().n

41、ew B();OuterClass t=new OuterClass();t.disp();第55页,本讲稿共63页运行结果第56页,本讲稿共63页嵌套类特性嵌套类特性嵌套类名必须充分有效。定义在方法中的嵌套类称为局部类。局部类可以访问final的局部变量。嵌套类可以是抽象类。接口可以嵌套,即可以存在内部接口,一般被内部类实现。嵌套类可以访问所在域的静态成员。非局部类可以有任意的访问保护。嵌套类及其所在的类被同时编译。使用内部类可以方便的编写事件驱动程序。第57页,本讲稿共63页package语句(语句(1)为便于管理大型软件系统中数目众多的类,解决类为便于管理大型软件系统中数目众多的类,解决

42、类的命名冲突问题,的命名冲突问题,JavaJava引入包引入包(package)(package)机制,提机制,提供类的多重类命名空间。供类的多重类命名空间。java io lang System String Object第58页,本讲稿共63页package语句(语句(2)package语句作为语句作为Java源文件的第一条语句,指明该文件中源文件的第一条语句,指明该文件中定义的类所在的包。定义的类所在的包。(若缺省该语句,则指定为无名包若缺省该语句,则指定为无名包)。它。它的格式为:的格式为:package pkg1.pkg2.pkg3;举例:举例:Test.javapackage p1

43、;public class Test public void display()System.out.println(in method display();Java编译器把包对应于文件系统的目录管理,编译器把包对应于文件系统的目录管理,package语语句中,用句中,用.来指明包来指明包(目录目录)的层次;的层次;第59页,本讲稿共63页编译和生成包编译和生成包如果在程序如果在程序Test.java中已定义了包中已定义了包p1,编译时采用编译时采用如下方式:如下方式:javac Test.java 则编译器会在当前目录下生成则编译器会在当前目录下生成Test.class文件,再在适合位置文件

44、,再在适合位置(destpath目录目录)手动创建一个名为手动创建一个名为p1的子目录,将的子目录,将Test.class复制到复制到该该p1目录下。目录下。javac-d destpath Test.java则编译器会自动在则编译器会自动在destpath目录下建立一个子目录目录下建立一个子目录p1,并将并将生成的生成的.class文件都放到文件都放到destpath/p1下。下。第60页,本讲稿共63页import语句语句为使用定义在不同包中的为使用定义在不同包中的Java类,需用类,需用import语句来引入所语句来引入所需要的类。需要的类。语法格式:语法格式:import packag

45、e1.package2.(classname|*);应用举例:应用举例:import p1.Test;/import p1.*;public class TestPackagepublic static void main(String args)Test t=new Test();/Test类在类在p1包中定义包中定义 t.display();第61页,本讲稿共63页import 语句分析语句分析对于对于 import java.awt.*;将按照路径:将按照路径:CLASSPATH javaawt 来查找所需的外来查找所需的外部类。部类。环境变量环境变量CLASSPATH是用来指示是用来指

46、示Java程序所引程序所引用的外部类所在的一系列相对路径用的外部类所在的一系列相对路径第62页,本讲稿共63页JDK中主要的包介绍中主要的包介绍1.java.lang-包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。2.java.awt-包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。3.java.applet-包含applet运行所需的一些类。-包含执行与网络相关的操作的类。5.java.io-包含能提供多种输入/输出功能的类。6.java.util-包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。第63页,本讲稿共63页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 资格考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁