Java程序设计课件2第二章 类和对象.pptx

上传人(卖家):momomo 文档编号:7396286 上传时间:2023-12-20 格式:PPTX 页数:49 大小:1.54MB
下载 相关 举报
Java程序设计课件2第二章 类和对象.pptx_第1页
第1页 / 共49页
Java程序设计课件2第二章 类和对象.pptx_第2页
第2页 / 共49页
Java程序设计课件2第二章 类和对象.pptx_第3页
第3页 / 共49页
Java程序设计课件2第二章 类和对象.pptx_第4页
第4页 / 共49页
Java程序设计课件2第二章 类和对象.pptx_第5页
第5页 / 共49页
点击查看更多>>
资源描述

1、Java程序设计课程1、面向对象程序设计的基本概念;2、类和对象;3、类的继承和多态。Java程序设计课程 学习目标了解面向对象程序设计方法的特征和作用;掌握定义类和产生对象的方法;掌握类中不同成员的作用;了解继承的概念和用法;掌握用方法的重写实现多态。Java程序设计课程 2.1类和对象2.1.1 项目描述设计一个动态整型数组类,可以实现添加、插入、删除,显示功能。2.1.2 项目知识准备(1)面向过程和面向对象面向过程是以过程为中心的编程方法,主要特点是:认为一个系统应该划分为数据和功能,并且数据和加工数据的功能是分离的;分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,然后依

2、次调用,面向过程最重要的是模块化的设计方法。面向对象是以对象(实体)为中心的编程方法,主要特点是:研究客观存在的事物特征,运用人类的自然思维方式(如抽象、分类)来构造软件系统;将数据和功能有机结合起来,把数据和相关操作合成为一个整体,隐藏处理细节,并对外显露一些对话接口,来实现对象之间的联系;采用继承的方式,让对象具有可扩展性。(2)类的定义抽取同类实体的共同性,自定义出一种包括数据和相关操作的模型,称之为类。例如,我们可以抽象出公司员工的共同特征和行为,构建一个模型:员工的特征:姓名、性别、年龄员工的行为:工作、休息、介绍自己根据员工的特征和行为,可以定义员工类别:Java程序设计课程 2.

3、1类和对象案例2-1:员工类的定义public class Employee /员工类 /类成员定义public String name;/员工姓名(数据成员)public String sex;/员工性别(数据成员)public int age;/员工年龄(数据成员)public void work()/工作(方法成员)System.out.println(name+在工作。);public void rest()/休息(方法成员)System.out.println(name+在休息。);public void introduce()/介绍自己(方法成员)System.out.printl

4、n(我叫+name+,+sex+,+age+岁);Java程序设计课程 2.1类和对象3)创建对象根据类这个模型,可以创建多个实体,也称为对象(object),类是客观事物的抽象和概括,对象是客观事物的具体实现。下面的程序创建了两个员工,并执行相关动作:案例2-2:创建员工对象import cn.cqvie.chapter02.exam1.Employee;class Testpublic static void main(String args)Employee emp1,emp2;/定义对象指针(定义时为空指针)emp1=new Employee();/用new关键字创建Employee对

5、象,并将指针指向对象emp2=new Employee();/用new关键字创建Employee对象,并将指针指向对象 emp1.name=马腾云;emp1.sex=男;emp1.age=30;/给员工1的属性赋值 emp2.name=范小冰;emp2.sex=女;emp2.age=28;/给员工2的属性赋值 emp1.work();/调用对象emp1的work方法 emp1.rest();/调用对象emp1的rest方法 emp1.introduce();/调用对象emp1的introduce方法 emp2.introduce();/调用对象emp2的introduce方法Java程序设计课

6、程 2.1类和对象(4)构造方法构造方法也叫构造函数、构造器(Constructor),用来创建类的实例化对象,可以完成创建对象时的初始化工作。构造方法具有如下特点:与类的名称相同函数定义时不含返回值类型,不能在方法中用return语句返回值访问权限一般为public案例2-3:使用构造方法package cn.cqvie.chapter02.exam3;class Employee /员工类public String name;/员工姓名(数据成员)public String sex;/员工性别(数据成员)public int age;/员工年龄(数据成员)public Employee(S

7、tring name,String sex,int age)/构造方法(3个参数)this.name=name;this.sex=sex;this.age=age;/属性设置为传人的参数值public Employee()/构造方法(无参数)this(无名氏,男,18);/通过this关键字调用另一个构造函数,将属性设置为默认值Java程序设计课程 2.1类和对象public void work()/工作(方法成员)System.out.println(name+在工作。);public void rest()/休息(方法成员)System.out.println(name+在休息。);pub

8、lic void introduce()/介绍自己(方法成员)System.out.println(我叫+name+,+sex+,+age+岁);public class Testpublic static void main(String args)Employee emp1,emp2;/定义对象指针(定义时为空指针)emp1=new Employee();/调用无参数构造方法创建对象emp2=new Employee(马腾云,男,30);/调用含3个参数的构造方法创建对象 emp1.introduce();/调用对象emp1的introduce方法 emp2.introduce();/调用

9、对象emp2的introduce方法Java程序设计课程 2.1类和对象(5)静态成员静态成员用static关键字进行修饰,表示“静态”或者“全局”的意思,可以用来修饰成员变量和成员方法,也可以形成静态static代码块。被static修饰的成员独立于任何对象,能被该类的所有对象共享。静态数据成员在程序运行期间一直存在,不会因为对象的消亡而被释放。静态方法中只能访问静态成员,不能访问非静态成员,也不能使用this、super等关键字。下面的代码用静态成员实现单例模式,确保该类只能产生唯一的对象:public class Singleton private Singleton()/构造方法设置为

10、私有,禁止用new产生对象 private static Singleton single=null;/静态工厂方法(必须调用该方法获得对象)/调用格式:Singleton.getInstance();public static Singleton getInstance()if(single=null)/确保对象只生成一次 single=new Singleton();return single;Java程序设计课程 2.1类和对象(5)用包来管理类在一个比较大的程序中,类的名字可能会冲突,包就像文件夹一样,将同名的类装到不同的包中,可以避免冲突。申明包申明包的格式是:package 包名;

11、Java SE中自带的包命名通常以java开头,一些扩展包命名以javax开头。自己定义的包,通常用公司域名的倒写加上项目名作为包名,比如公司域名为,开发的项目为project1,则包名为com.abc.project1。引用包对包的引用需要import关键字,格式是:“import 包名.类名;”。如果要引用包中的所有类,格式是:“import 包名.*;”。默认情况下,java.lang包中的类自动引入,无需用import语句显式引入。例如,A类属于项目project1,B类属于项目projrct2,B类要引用A类,则程序为:Java程序设计课程 2.1类和对象/A.javapackage

12、 com.abc.project1;/该类所属的包public class A /B.javapackage com.abc.project2;/该类所属的包import com.abc.project1;/引用的包public class Bpublic static void main(String args)A obj=new A();/使用A类Java程序设计课程 2.1类和对象2.1.3 项目实施(1)功能分析列表类要实现一组整型数据的存储,并记住实际存入的整数个数,因此需要定义的数据成员包括一个整型数组arr和实际长度length。列表要具备的添加、插入、删除、显示功能,通过定义相

13、应的方法来实现。(2)编码通过分析我们可以编写以下代码实现功能:class MyList/列表类private int a;/存放数据的数组private int length;/数组实际长度 public MyList()/构造函数a=new int100;length=0;public void add(int x)/在列表末尾添加元素xalength=x;length+;Java程序设计课程 2.1类和对象public void insert(int n,int x)/在第n个位置前面插入元素x(n从0开始)if(nlength)n=length;for(int i=length-1;i

14、=n;i-)ai+1=ai;an=x;length+;/添加后长度加1public void delete(int n)/删除第n个元素(n从0开始)if(nlength-1)return;for(int i=n;i=length-2;i+)ai=ai+1;length-;/删除后长度减1public int get(int n)/获取第n个元素值 return an;public int getLength()/获取列表长度Java程序设计课程 2.1类和对象return length;public void show()for(int i=0;ilength;i+)System.out.p

15、rint(ai+);System.out.println();public class Testpublic static void main(String args)MyList list=new MyList();list.add(10);list.add(20);list.add(30);list.show();list.insert(2,75);list.show();list.delete(1);list.show();Java程序设计课程 2.1类和对象(3)调试运行,显示结果该程序的运行结果如图2.1所示:Java程序设计课程 2.1类和对象2.1.4能力拓展(1)选择题下列哪个

16、类声明是正确的()A、public void Hi B、public class Move()C、public class void number D、public class Car下面的方法声明中,哪个是正确的()A、public class methodName()B、public void int methodName()C、public void methodName()D、public void methodName下面对构造方法的描述不正确是()。A、系统提供默认的构造方法 B、构造方法可以有参数,也可以有返回值C、构造方法可以重载D、构造方法可以设置参数设 A为已定义的类名,下

17、列声明A类的对象a的语句中正确的是()。A、float A a;B、public A a=A();C、A a=new int();D、A a=new A();Java程序设计课程 2.1类和对象关键字()表示一个类定义的开始。A、declare B、new C、class D、以上答案都不对(2)填空题在Java程序中定义的类中包括有两种成员,分别是:、。是Java语言中定义类时必须使用的关键字。是抽象的,而 是具体的。定义在类中方法之外的变量称为 。下面是一个类的定义,请将其补充完整。class private String name;private int age;public Stude

18、nt(s,int i)name=s;age=i;Java程序设计课程 2.1类和对象 (3)编程题设计一个长方形类,成员变量包括长和宽。类中有计算面积和周长的方法,并有相应的setter方法和getter方法设置和获得长和宽,并编写测试类进行功能测试。改进列表类,增加一个构造方法,可以设置数组的最大长度,并增加查找、排序、逆序功能。Java程序设计课程 2.2封装、继承和多态2.2.1 项目描述设计一个员工工资管理程序,用计算公司不同类型员工的工资,并打印出收入清单。2.2.2 项目知识准备(1)面向对象设计的封装性封装是把类设计成一个黑匣子,将将里面包含的某些数据和操作隐藏起来,对外公开特定

19、的操作接口函数进行访问,这样可以避免外部对内部的干扰。对类成员的访问权限包括:公有(public)、私有(private)、保护(protected)、默认。公有(public)用public修饰的类成员(包括变量和方法)称为公有的,公有成员允许应用程序中所有的方法访问,不仅允许类内部的方法访问,也允许同一个包或不同包中的类方法访问。这里的访问指存取公有数据,调用公有方法。Java程序设计课程 2.2封装、继承和多态案例2-4:公有成员的可访问性class MyClasspublic int x;/公有变量 public void setX(int i)/公有方法 x=i;public voi

20、d showX()/公有方法System.out.println(调用showX,x=+x);public class Testpublic static void main(String args)MyClass obj=new MyClass();obj.setX(20);/调用类的公有方法给公有变量赋值 obj.showX();/调用类的公有方法显示公有变量的值 obj.x=100;/直接给obj对象的公有变量赋值 System.out.println(直接输出x=+obj.x);/直接输出公有变量的值Java程序设计课程 2.2封装、继承和多态私有(private)用private修饰

21、的类成员称为私有的,类的私有成员只能被这个类的方法直接访问,而不能被类以外的方法访问。一般把不需要外界知道的数据或操作定义为私有成员,这样既有利于数据的安全性,也符合隐藏内部信息处理细节的原则。在案例2-3中,如果将MyClass类的成员x定义为private,main方法中访问obj.x的代码会出错,但是MyClass类中的setX和showX方法允许访问私有成员x。案例2-5:隐藏数据成员public class Employee /Employee.java private String name;/姓名 private String sex;/性别 private int age;/年

22、龄 private float salary;/基本工资 public String getName()return name;public void setName(String name)this.name=name;Java程序设计课程 2.2封装、继承和多态public String getSex()return sex;public void setSex(String sex)this.sex=sex;public int getAge()return age;public void setAge(int age)this.age=age;public float getSalar

23、y()return salary;public void setSalary(float salary)this.salary=salary;Java程序设计课程 2.2封装、继承和多态public Employee()/构造方法(无参数)this(无名氏,男,18,2000);public Employee(String name,String sex,int age,float salary)/构造方法 this.name=name;this.sex=sex;this.age=age;this.salary=salary;提醒:上面所说的某个类可“访问”,是指在某个类的方法中,可以读写本类

24、或其它类的数据(变量)成员,或可以调用本类或其它类的方法(函数)成员,只有在类的方法中(函数体中),才能完成“访问”这个动作。Java程序设计课程 2.2封装、继承和多态类成员的可访问性总结如下:表2-1 类成员的可访问性 同一个类同一个包中的类其它包中的子类其它包中的类公有(public)保护(protected)默认私有(private)Java程序设计课程 2.2封装、继承和多态(2)面向对象设计的继承性继承就是以原有类为基础来创建一个新类,新类能传承原有类的数据和行为,并能扩充新的成员,从而达到代码复用的目的。在继承关系中原有的类称为父类(或基类),新的类称为子类(或派生类)。在Jav

25、a中只允许单重继承,一个父类可以有多个子类,但一个子类只能有一个父类,但支持多层继承,即子类还可以有子类。这样的继承关系就形成了继承树,如图2.1所示。Java程序设计课程 2.2封装、继承和多态定义继承关系的语法格式是:访问权限 class 类名 extends 父类名/(类体)如果没有extends子句,则该类默认继承自Object类。用final修饰的类不能被继承。子类继承父类之后,具有如下特点:继承到了父类所有的属性和方法,即父类将数据和方法成员传递给子类:案例2-6:类的继承和传递性class Employee /Employee.java private String name;/

26、姓名 private String sex;/性别 private int age;/年龄 private float salary;/基本工资 public Employee(String name,String sex,int age,float salary)/构造方法 this.name=name;this.sex=sex;this.age=age;this.salary=salary;Java程序设计课程 2.2封装、继承和多态public Employee()/构造方法(无参数)this(无名氏,男,18,2000);public String getName()return na

27、me;public void setName(String name)this.name=name;public String getSex()return sex;public void setSex(String sex)this.sex=sex;public int getAge()return age;public void setAge(int age)this.age=age;public float getSalary()return salary;public void setSalary(float salary)this.salary=salary;class Manage

28、r extends Employee private float bonus;/经理的奖金 public float getBonus()return bonus;public void setBonus(float bonus)this.bonus=bonus;Java程序设计课程 2.2封装、继承和多态public class Test /test.javapublic static void main(String args)Employee employee=new Employee();/创建Employee对象并为其赋值 employee.setName(李小洪);employee

29、.setSalary(2000);employee.setAge(20);Manager manager=new Manager();/创建Manager对象并为其赋值 manager.setName(雷小军);manager.setSalary(3000);manager.setAge(30);manager.setBonus(2000);/输出经理和员工的属性值 System.out.println(员工的姓名:+employee.getName();System.out.println(员工的工资:+employee.getSalary();System.out.println(员工的年

30、龄:+employee.getAge();System.out.println(经理的姓名:+manager.getName();System.out.println(经理的工资:+manager.getSalary();System.out.println(经理的年龄:+manager.getAge();System.out.println(经理的奖金:+manager.getBonus();Java程序设计课程 2.2封装、继承和多态子类可对父类方法的访问权限如下表:表2-2 子类对父类成员的可访问性 同一包中的子类同一个包中的非子类不同包中的子类不同包中的非子类公有(public)保护(

31、protected)默认私有(private)Java程序设计课程 2.2封装、继承和多态构造子类时,要先调用父类的构造方法案例2-7:继承关系中构造方法的调用顺序class A public A()System.out.println(A类的构造方法被调用);class B extends Apublic B()/默认会先调用A类的无参构造方法System.out.println(B类的构造方法被调用);public class Test public static void main(String args)B obj=new B();Java程序设计课程 2.2封装、继承和多态输出结果如

32、下:Java程序设计课程 2.2封装、继承和多态(3)面向对象设计的多态性多态指同类事物有多种状态。多态有两种表现形式:覆盖和重载。覆盖是指子类重新定义父类的方法,而重载是指同一个类中存在多个同名方法,而这些方法的参数不同。方法的重载(overload)重载是指同一个类中存在多个名字相同的方法,这些方法或参数个数不同,或参数类型不同,或两者都不同。方法重载不考虑返回值。重载解决了方法命名困难的问题,同样的操作采用同样的名称,也增强了程序的可读性。例如,System.out.print可以打印不同类型的数据,就是依赖重载来实现的:public void print(boolean b)publi

33、c void print(char c)public void print(int i)public void print(long l)public void print(float f)public void print(double d)构造方法也可以重载,在案例2-3中,Employee类包含两个构造方法,一个无参数,一个有参数。Java程序设计课程 2.2封装、继承和多态方法的覆盖(override)在继承的过程中,父类的某些方法可能由不符合子类的需要,java 允许子类对父类的同名方法进行重新定义。如果子类方法与父类方法同名,则子类覆盖超类中的同名方法。在进行覆盖时,应注意以下三点

34、:子类不能覆盖超类中声明为final或static的方法;子类必须覆盖超类中声明为abstract的方法,或者子类也声明为abstract;子类覆盖超类中同名方法时,子类方法声明必须与超类被覆盖方法的声明一样。案例2-8:子类覆盖父类的方法class A public void m1()System.out.println(调用A类的m1方法。);public void m2()System.out.println(调用A类的m2方法。);class B extends Apublic void m1()Java程序设计课程 2.2封装、继承和多态System.out.println(调用B类

35、的m1方法。);public void m2(int x)System.out.println(调用B类的m2方法(带参数)。);public class Test public static void main(String args)A obj1=new A();B obj2=new B();obj1.m1();obj1.m2();obj2.m1();obj2.m2();obj2.m2(100);Java程序设计课程 2.2封装、继承和多态输出结果如下Java程序设计课程 2.2封装、继承和多态通过父类的指针访问子类的对象通过父类的指针访问子类对象的方法时,会自动识别对象的类别,找到合适的

36、方法进行调用。在项目实践中,经常把同一个父类继承下来的多个子类对象的指针放入集合进行管理,然后用遍历的方式来依次调用每个对象的方法。案例2-9:通过父类的指针访问子类的对象class Shape/形状类public void show()System.out.println(显示一个形状(实际是无法实现的)。);class Rectangle extends Shape /矩形类public void show()System.out.println(显示一个矩形。);Java程序设计课程 2.2封装、继承和多态class Circle extends Shape /圆形类public voi

37、d show()System.out.println(显示一个圆形。);public class Test public static void main(String args)Shape s;/父类的指针s=new Shape();System.out.println(我是+s.getClass().getName()+类的对象。);/自报类名s.show();s=new Rectangle();System.out.println(我是+s.getClass().getName()+类的对象。);/自报类名s.show();s=new Circle();System.out.printl

38、n(我是+s.getClass().getName()+类的对象。);/自报类名s.show();Java程序设计课程 2.2封装、继承和多态输出结果如下:Java程序设计课程 2.2封装、继承和多态案例2-10:通过父类的指针数组(集合)来管理多个子类的对象class Shape/形状类public void show()System.out.println(显示一个形状(实际是无法实现的)。);class Rectangle extends Shape /矩形类public void show()System.out.println(显示一个矩形。);class Circle extend

39、s Shape /圆形类public void show()Java程序设计课程 2.2封装、继承和多态System.out.println(显示一个圆形。);public class Test public static void main(String args)Shape s=new Shape3;/包含3个对象指针的数组(集合)s0=new Shape();/第0个指针指向shape对象s1=new Rectangle();/第1个指针指向rectangle对象s2=new Circle();/第2个指针指向circle对象for(int i=0;is.length;i+)/遍历数组s

40、i.show();/依次调用每个指针所指对象的show方法Java程序设计课程 2.2封装、继承和多态输出结果如下Java程序设计课程 2.2封装、继承和多态2.2.3 项目实施(1)功能分析假设某公司员工包括经理、销售员、技术员这这几类,都是员工(Employee)类的子类,先定义创建各个员工对象,设置属性,再用一个数组(集合)将所有员工组织起来,用循环遍历每个员工,显示收入情况。(2)编码通过分析我们可以编写以下代码实现功能:/Employee.javapublic class Employee /员工 private String name;/姓名 private float salar

41、y;/基本工资 public Employee(String name,float salary)/构造方法 this.name=name;this.salary=salary;public String getName()return name;public void setName(String name)this.name=name;public float getSalary()return salary;public void setSalary(float salary)this.salary=salary;public float getEarnings()/总收入 return

42、 salary;Java程序设计课程 2.2封装、继承和多态/Manager.javapublic class Manager extends Employee /经理 private float bonus;/经理的奖金 public float getBonus()return bonus;public void setBonus(float bonus)this.bonus=bonus;public Manager(String name,float salary)super(name,salary);public float getEarnings()/总收入(覆盖父类方法)retur

43、n this.getSalary()+this.getBonus();/Seller.javapublic class Seller extends Employee/销售员private float deduct;/销售提成public Seller(String name,float salary)super(name,salary);Java程序设计课程 2.2封装、继承和多态public float getDeduct()return deduct;public void setDeduct(float deduct)this.deduct=deduct;public float ge

44、tEarnings()/总收入(覆盖父类方法)return this.getSalary()+this.getDeduct();/Technician.javapublic class Technician extends Employee /技术员private float royalty;/项目提成public float getRoyalty()return royalty;public void setRoyalty(float royalty)this.royalty=royalty;public Technician(String name,float salary)Java程序设

45、计课程 2.2封装、继承和多态super(name,salary);public float getEarnings()/总收入(覆盖父类方法)return this.getSalary()+this.getRoyalty();/Test.javapublic class Test public static void main(String args)Manager m=new Manager(马腾云,3500);/经理m.setBonus(5000);Seller s1=new Seller(雷小军,2000);/销售员s1.setDeduct(3000);Seller s2=new Se

46、ller(李小宏,2000);/销售员s2.setDeduct(3500);Technician t1=new Technician(张龙,2500);/技术员t1.setRoyalty(3500);Technician t2=new Technician(赵虎,3000);/技术员t2.setRoyalty(3500);Java程序设计课程 2.2封装、继承和多态Employee emp=new Employeem,s1,s2,t1,t2;/列举每个员工的收入for(int i=0;iemp.length;i+)System.out.println(姓名:+empi.getName()+,+

47、职务:+empi.getClass().getName()+,+职务:+empi.getClass().getSimple Name()+,+总收入:+empi.getEarnings()+);(3)调试运行,显示结果该程序的运行结果如图2.7所示:Java程序设计课程 2.2封装、继承和多态2.2.4能力拓展(1)选择题下列选项中,哪个是java语言所有类的父类()A.String B.Vector C.Object D.Data在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为()。A.隐藏 B.覆盖

48、C.重载 D.封装关于被私有访问控制符private修饰的成员变量,以下说法正确的是()A可以被三种类所访问:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B可以被两种类访问:该类本身、该类的所有子类C只能被该类自身所访问D只能被同一个包中的类访问假设Foo类定义如下,设f是Foo类的一个实例,下列语句调用哪个是错误的?()public class Fooint i;static String s;void aMethod()static void bMethod()A.Foo.aMethod();B.f.aMethod();C.System.out.println(f.i);D.

49、Foo.bMethod()Java程序设计课程 2.2封装、继承和多态下述概念中不属于面向对象方法的是()。A对象、消息 B继承、多态 C类、封装 D过程调用(2)填空题在Java程序中,使用关键字 来引用当前对象。面向对象的3个特性是:_。Java用_关键字指明继承关系。用关键字_修饰的方法就称为类方法。两个方法具有相同的名字、参数表和返回类型,只是函数体不同,则称为_。(3)编程题编写一个圆类(Circle),并在test类的主函数中调用,该类成员如下:变量radius(半径,私有,浮点型)构造方法 Circle()/将半径设为0 Circle(double r)/将半径初始化为r 其他方

50、法 double getArea()/获取圆的面积 double getPerimeter()/获取圆的周长 void show()/输出圆的半径、周长、面积Java程序设计课程 2.2封装、继承和多态编写一个圆柱体类(Cylinder),继承上面的Circle类,并在test类的主函数中调用。并增加如下成员:变量hight(高度,私有,浮点型)/圆柱体的高;构造方法 Cylinder(double r,double h)/将半径初始化为r,高度初始化为h 其他方法 double getVolume()/获取圆柱体的体积 void showVolume()/输出圆柱体的体积用一个列表(集合)对

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(Java程序设计课件2第二章 类和对象.pptx)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|