书签 分享 收藏 举报 版权申诉 / 83
上传文档赚钱

类型对象和类解析课件.ppt

  • 上传人(卖家):ziliao2023
  • 文档编号:5601001
  • 上传时间:2023-04-26
  • 格式:PPT
  • 页数:83
  • 大小:1.56MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《对象和类解析课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    对象 解析 课件
    资源描述:

    1、Objectives(学习目标学习目标)FTo understand objects and classes(理解对象和类理解对象和类)FTo learn how to declare a class and how to create an object of a class.(学习如何定义类和创建类的对象学习如何定义类和创建类的对象)FTo understand the roles of constructors and use constructors to initialize objects.(理解构造方法扮演的角色,会使用构造方法初始化对象)FTo distinguish betw

    2、een object reference variables and primitive data type variables(区分引用变量和基本数据类型区分引用变量和基本数据类型变量变量)FTo declare private data fields with appropriate get and set methods to make class easy to maintain(声明私有成员变量,并为变量提供get和set方法)12Objectives(学习目标学习目标)FTo use the keyword this as the reference to the current

    3、object that invokes the instance method(会使用关键字会使用关键字thisthis作为当前对作为当前对象的引用象的引用)FTo understand the difference between instance and static variables and methods.(理解静态变量和实例变量,静态方法和理解静态变量和实例变量,静态方法和实例方法的区别实例方法的区别)FTo develop methods with object arguments(能创建以对象作为参数的方法)FTo store and process objects in ar

    4、rays(会处理对象数组会处理对象数组)FTo understand the access level to class and members.(理解理解JavaJava类、成员的访问级别类、成员的访问级别)3What is Object(什么是对象什么是对象)FAn object represents an entity in the real world that can be distinctly identified.(对象代表现实世界中可以明确标识的一个实对象代表现实世界中可以明确标识的一个实体体)F For example,a student,a desk,a circle,a

    5、button can all be viewed as objects.F All the objects share two characteristics(所有对象都有两方面所有对象都有两方面的特性)的特性):FState(状态)FBehavior(行为)4对象的状态对象的状态-变量变量每个对象的每个属性都拥有特定值,例如:王小红和朱小雨的体重不一样 体重:体重:60kg姓名:王小红姓名:王小红 年龄:年龄:35岁岁收银员小王收银员小王 5对象的行为对象的行为方法方法F方法对象执行的操作,描述对象的行为 打单打单 收银收银 方法方法 刷卡刷卡 收银员王小红收银员王小红What is Obj

    6、ect?FA software object maintains its state in one or more variables(member variable/data fields/properties).(软件上的对象使用变量来存储状态)FA software object implements its behavior with methods.(软件上的对象使用方法来实现它的行为)67类类 类概括了同类对象共有的性质:属性和方法类概括了同类对象共有的性质:属性和方法顾客类轿车类收银员类类是模板,比如说:类是模板,比如说:“人人”对象是类的一个实例,比如:对象是类的一个实例,比如

    7、:“小布什小布什”小布什小布什普京普京克林顿克林顿“人”类特征(状态、属性)姓名性别年龄体重行为(方法)衣食住行8创建类创建类 class Circle /*The radius of this circle*/double radius=1.0;/*Construct a circle object*/Circle()/*Construct a circle object*/Circle(double newRadius)radius=newRadius;/*Return the area of this circle*/double getArea()return radius*radiu

    8、s*3.14159;Data field Method Constructors Member variable成员变量成员变量构造方法构造方法方法方法9Constructors(构造方法构造方法)class Circleclass Circle double radius=1;double radius=1;Circle()Circle()Circle(double newRadius)Circle(double newRadius)radius=newRadius;radius=newRadius;/FConstructors are a special kind of methods t

    9、hat are invoked to initialize objects.(构造方法是一类特殊的方法,用来构造方法是一类特殊的方法,用来初始化新对初始化新对象象)Constructors(构造方法构造方法)FConstructors must have the same name as the class itself.(构造方法的名称必须和类名相同构造方法的名称必须和类名相同)F Constructors do not have a return typenot even void.(构造方法没有返回类型,连构造方法没有返回类型,连voidvoid也没有)也没有)F Constructor

    10、s are invoked using the new operator when an object is created.(构造方法在创建对象时用构造方法在创建对象时用newnew关键字调用关键字调用)F Constructors play the role of initializing objects.(构造方法构造方法的作用是初始化新对象的作用是初始化新对象)F A constructor with no parameters is referred to as a no-arg constructor.(没有参数的构造方法称为无参构造方法没有参数的构造方法称为无参构造方法)1011

    11、问题问题F每个类都必须显式地声明构造方法吗?每个类都必须显式地声明构造方法吗?F如果一个类中没有声明构造方法,这个如果一个类中没有声明构造方法,这个类是不是就没有构造方法?类是不是就没有构造方法?12Constructors(构造方法构造方法)FA class may be declared without constructors.(类可以不声明构类可以不声明构造方法)造方法)FIn this case,a no-arg constructor with an empty body is implicitly declared in the class.(在这种情况下,类中隐含地声明了一个在

    12、这种情况下,类中隐含地声明了一个方法方法体为空的无参构造方法体为空的无参构造方法)class Welcomeclass Welcome public static void main(String args)public static void main(String args)System.out.println(System.out.println(“welcome to Java!welcome to Java!”););class Welcomeclass Welcome public static void main(String args)public static void ma

    13、in(String args)System.out.println(System.out.println(“welcome to Java!welcome to Java!”););public Welcome()public Welcome()相当于相当于Constructors(构造方法构造方法)FThis constructor,called a default constructor,is provided automatically only if no constructors are explicitly declared in the class.(这个构造方法称为默认构造方法

    14、,只有这个构造方法称为默认构造方法,只有当类中没有明确声明构造方法时,默认构造方当类中没有明确声明构造方法时,默认构造方法才会自动生成)法才会自动生成)1314创建对象创建对象public class Circle public class Circle double radius=1.0;double radius=1.0;Circle()Circle()Circle(double newRadius)Circle(double newRadius)radius=newRadius;radius=newRadius;double getArea()double getArea()return

    15、 return radius radius*radius radius*3.14;3.14;public class Test public class Test public static void main(String public static void main(String args)args)Circle c1=new Circle();Circle c1=new Circle();Circle c2=new Circle(5.0);Circle c2=new Circle(5.0);JavaJava使用使用newnew关键字调用构造方法来创建对象关键字调用构造方法来创建对象和初

    16、始化新对象,对象创建过程如下:和初始化新对象,对象创建过程如下:(1)new(1)new关键字创建对象,为对象分配空间关键字创建对象,为对象分配空间,为成员变量赋初值,为成员变量赋初值(2)(2)调用构造方法为新对象初始化调用构造方法为新对象初始化 (3)(3)构造方法会返回新对象的引用,该引用构造方法会返回新对象的引用,该引用可以赋值给同类型的变量可以赋值给同类型的变量Declaring/Creating Objectsin a Single Step15150 x34AC00 x34AC0yourCircle:yourCircle:radiusradius:5.05.0CircleCirc

    17、le对象,内对象,内存地址存地址0 x34AC00 x34AC0对象的实例成员变量(非对象的实例成员变量(非staticstatic变量)变量)存储在对象所在内存区域存储在对象所在内存区域16Declaring/Creating Objects类名 变量名;If reference type does not reference any object,it holds a special literal value,null.如果一个引用变量没有指向任何一个对象,这个引用变量的值是nullmyCircle:myCircle:yourCircle:yourCircle:Declaring/Cre

    18、ating Objects18Overloading constructorsOverloading constructors构造方法重载构造方法重载19Accessing Objects(访问对象)访问对象)FReferencing the objects member variable(访问对象访问对象的成员变量)的成员变量):对象的引用对象的引用.成员变量名成员变量名FInvoking the objects method(调用对象的方法调用对象的方法):):对象的引用对象的引用.方法名方法名(实参实参)20Accessing Objects21F创建圆柱类创建圆柱类Column Col

    19、umn,要求如下:,要求如下:u包含两个成员变量:包含两个成员变量:h h,r r,分别代表圆柱的高和底面半,分别代表圆柱的高和底面半径,均为径,均为doubledouble类型类型u一个构造方法:两个参数,用于为成员变量一个构造方法:两个参数,用于为成员变量h h和和r r赋指定赋指定的初值的初值u一个方法:一个方法:double getVolume()double getVolume(),用于计算圆柱的体,用于计算圆柱的体积积F创建测试类创建测试类TestColumnTestColumn,包含,包含mainmain方法,方法,mainmain方法中方法中实现下面功能:实现下面功能:u创建创

    20、建ColumnColumn对象对象c1c1,底面半径为,底面半径为4 4,高为,高为5 5u创建创建ColumnColumn对象对象c2c2,底面半径为,底面半径为1010,高为,高为1010u计算计算c2c2的体积,存储在变量的体积,存储在变量v v中,输出中,输出v v的值的值22F创建类创建类PointPoint,要求如下:,要求如下:u包含两个成员变量:包含两个成员变量:x x,y y,分别代表点的横坐标和纵坐,分别代表点的横坐标和纵坐标,均为标,均为intint类型类型u一个构造方法:两个参数,用于为成员变量一个构造方法:两个参数,用于为成员变量x x和和y y赋指定赋指定的初值的初

    21、值u一个方法:一个方法:void move(int x,int y)void move(int x,int y),用于将点移动到,用于将点移动到参数指定的坐标参数指定的坐标F创建测试类创建测试类TestPointTestPoint,包含,包含mainmain方法,方法,mainmain方法中实方法中实现下面功能:现下面功能:u创建创建PointPoint对象对象p1p1,其,其x x坐标为坐标为2 2,y y坐标为坐标为3 3u创建创建PointPoint对象对象p2p2,其,其x x坐标为坐标为5 5,y y坐标为坐标为-1-1u将将p1p1移动到移动到(0,0),(0,0),输出其输出其x

    22、 x坐标和坐标和y y坐标坐标23F创建汽车类创建汽车类Car Car,要求如下:,要求如下:u包含三个成员变量:包含三个成员变量:namename,priceprice,speedspeed,分别代表汽,分别代表汽车的品牌、价格、速度车的品牌、价格、速度u构造方法构造方法1 1:两个参数,用于为成员变量:两个参数,用于为成员变量namename和和priceprice赋赋指定的初值指定的初值u构造方法构造方法2 2:三个参数,用于为三个成员变量赋指定的初:三个参数,用于为三个成员变量赋指定的初值值u方法方法1 1:void speedUp(int s),void speedUp(int s)

    23、,用于将车速加到指定值用于将车速加到指定值u方法方法2 2:void stop(),void stop(),停车,将车速减至停车,将车速减至0 0F创建测试类创建测试类TestCarTestCar,包含,包含mainmain方法,方法,mainmain方法中实现方法中实现下面功能:下面功能:u创建创建CarCar对象对象car1car1,三项属性值自定,三项属性值自定u让让car1car1加速至加速至100100,输出,输出car1car1的车速的车速u让让car1car1停车,输出停车,输出car1car1的车速的车速24public class Welcome public class W

    24、elcome public static void main(String args)public static void main(String args)System.out.print(Welcome to Java!);System.out.print(Welcome to Java!);创建创建WelcomeWelcome对象对象w w25public class Rectangle public class Rectangle int width;/int width;/矩形的宽矩形的宽int height;/int height;/矩形的高矩形的高int x;/int x;/矩形

    25、左上角点横坐标矩形左上角点横坐标 int y;/int y;/矩形左上角点纵坐标矩形左上角点纵坐标Rectangle(int w,int hRectangle(int w,int h,int x1,int y1)int x1,int y1)width=w;width=w;height=h;height=h;x=x1;x=x1;y=y1;y=y1;void move(int x1,int y1)void move(int x1,int y1)x=x1;x=x1;y=y1;y=y1;int getArea()int getArea()return width return width*height

    26、;height;26public class Rectangle public class Rectangle int width;/int width;/矩形的宽矩形的宽int height;/int height;/矩形的高矩形的高Point origin;/Point origin;/原点(左上角点)原点(左上角点)Rectangle(int w,int hRectangle(int w,int h,Point p)Point p)width=w;width=w;height=h;height=h;/补充补充 void move(int x1,int y1)void move(int x

    27、1,int y1)/补充补充 int getArea()int getArea()return width return width*height;height;1 1、补充上面代码。、补充上面代码。2 2、创建、创建RectangleRectangle对象对象r r,原点为(,原点为(5,65,6),宽),宽2020,高,高1010计算计算r r的面积,输出的面积,输出3 3、将、将r r移动至移动至(-1,-1)(-1,-1)位置,输出其原点横坐标和纵坐标位置,输出其原点横坐标和纵坐标27网购的订单需求:网购的订单需求:1 1、订单号、订单号 2 2、成交时间、成交时间 3 3、总价、总价

    28、 4 4、订单状态:、订单状态:1-1-未付款,未付款,2-2-已付款,已付款,3-3-已发货,已发货,4-4-完成完成 5 5、收货地址、收货地址 1 1)姓名)姓名 2 2)省)省 3 3)市)市 4 4)街道)街道 5 5)邮编)邮编 6 6)联系电话)联系电话 28F创建收货地址类创建收货地址类ShippingAddressShippingAddress,要求如下:,要求如下:u包含包含6 6个成员变量:个成员变量:name,provincename,province,citycity,streetstreet,postcodepostcode,teltel分别代表收件人姓名、省、市、

    29、街道、邮编、联系电话分别代表收件人姓名、省、市、街道、邮编、联系电话u一个构造方法:一个构造方法:6 6个参数,用于为个参数,用于为6 6个成员变量赋指定的初值个成员变量赋指定的初值u一个方法:一个方法:setTel(String newTel)setTel(String newTel),用于更改联系电话,用于更改联系电话F创建订单类创建订单类OrderOrderu包含包含5 5个成员变量:个成员变量:orderNo orderNo,time time,totalPrice totalPrice address address,statusstatus,分别代表订单号、成交时间、总价、收货,分

    30、别代表订单号、成交时间、总价、收货地址、订单状态。地址、订单状态。addressaddress变量为变量为ShippingAddressShippingAddress类型,类型,statusstatus的初值为的初值为1 1。u一个构造方法:一个构造方法:4 4个参数,用于为个参数,用于为4 4个成员变量(除了个成员变量(除了statusstatus)赋指定的初值赋指定的初值u方法方法1 1:void setStatus(int s)void setStatus(int s),用于更改订单状态,用于更改订单状态u方法方法2 2:void setAddress(ShippingAddress a

    31、)void setAddress(ShippingAddress a),用于更改收,用于更改收货地址货地址u方法方法3 3:void setTel(String newTel)void setTel(String newTel),用于更改联系电话,用于更改联系电话29F结合网购经历思考下面问题:结合网购经历思考下面问题:F 1 1、用户进行哪一项操作时,程序应该创建一个、用户进行哪一项操作时,程序应该创建一个OrderOrder对象?对象?F 2 2、用户的哪些操作会调用、用户的哪些操作会调用setStatus()setStatus()方法修改订单状态?方法修改订单状态?F 3 3、用户的哪一

    32、项操作会调用、用户的哪一项操作会调用setAddress()setAddress()方法?方法?30Roles of constructorRoles of constructor构造方法的作用构造方法的作用class Catclass Cat String name=String name=“小白小白”;String color=String color=“whitewhite”;char sex=char sex=f f;String type=String type=“¥”;Cat c1=new Cat();Cat c1=new Cat();Cat c2=new Cat();Cat c2

    33、=new Cat();31Roles of constructRoles of construct构造方法的构造方法的作用作用class Catclass Cat String name;String name;String color;String color;char sex;char sex;String type;String type;Cat(String n,String c,char s,String t)Cat(String n,String c,char s,String t)name=n;name=n;color=c;color=c;sex=s;sex=s;type=t;t

    34、ype=t;Cat c1=new Cat(Cat c1=new Cat(“花花花花”,”brownbrown”,f f,”$%$%$”););Cat c2=new Cat(Cat c2=new Cat(“小黑小黑”,”blackblack”,f f,”#”););3233Default Value for member variable成员变量的默认值成员变量的默认值F The default value of a member variable is(成员变量会自动赋初值):null for a reference type(引用类型的成员变量的初始值为引用类型的成员变量的初始值为nulln

    35、ull)0 for a numeric type(数字型的成员变量初始值为数字型的成员变量初始值为0)0)false for a boolean type(booleanboolean类型的成员变量初始值为类型的成员变量初始值为false false)u0000 for a char type(charchar类型的成员变量初始值为类型的成员变量初始值为u0000u0000 )34Examplepublic class Test public static void main(String args)int x;/x has no default value String y;/y has n

    36、o default value System.out.println(“x is”+x);/variables not initialized System.out.println(y is +y);/variables not initialized Java assigns no default value to a local variable inside a method(局部变量是没有默认值的).35对象的内存模型对象的内存模型FJava语言将数据类型分成两类:基础数据类型(Primitive data type):byte,short,int,long,float,double,

    37、boolean,char引用类型(Reference type):类、数组、接口FA variable of a primitive type holds a value of the primitive type(基础数据类型变量存放的是数据值)Fint i=10;Fint j=12;1010i:i:j:j:121236对象的内存模型对象的内存模型Fa variable of reference type holds a reference to where an object or array is.(引用变量包含对象或者数组的引用地址)FCircle c=new Circle(5.0);

    38、0 x34AC00 x34AC0c:c:radiusradius:5.05.0CircleCircle对象,内对象,内存地址存地址0 x34AC00 x34AC0对象的实例成员变量(非对象的实例成员变量(非staticstatic变量)变量)存储在对象的空间存储在对象的空间3737Copying VariablesFint i=2;int i=2;Fint j=i;int j=i;i2j238Copying VariablesFCircle c1=new Circle(5);FCircle c2=new Circle(6);Fc1=c2;c1:0 x34AB6c2:radiusradius:C

    39、ircleCircle对象,内存对象,内存地址地址0 x34AC00 x34AC05.0radiusradius:CircleCircle对象,内存对象,内存地址地址0 x34AB60 x34AB66.0如果一个对象没有任何引用指向它,该对象就成为无用对象(半径为如果一个对象没有任何引用指向它,该对象就成为无用对象(半径为5 5的圆),的圆),可以被垃圾回收,可以被垃圾回收,JavaJava虚拟机会自动回收无用对象,释放空间虚拟机会自动回收无用对象,释放空间0 x34AC00 x34AB6无用对象,垃圾无用对象,垃圾39class A class A int x,y;int x,y;A(int

    40、 a,int b)A(int a,int b)x=a;x=a;y=b;y=b;public class sample public class sample public static void main(String args)public static void main(String args)A p2=new A(12,15);A p2=new A(12,15);A p1=p2;A p1=p2;p2.x+;p2.x+;System.out.println(p1.x=+p1.x);System.out.println(p1.x=+p1.x);这段程序的输出是什么?这段程序的输出是什么?4

    41、0Garbage Collection垃圾回收垃圾回收FAn object is eligible for garbage collection when there are no more references to that object.(如果一个对象没有任何引用如果一个对象没有任何引用指向它,该对象就成为无用对象,可以被垃圾回收)指向它,该对象就成为无用对象,可以被垃圾回收)F The JVM will automatically collect the space if the object is not referenced by any variable.(JavaJava虚拟机

    42、会自动回收无用虚拟机会自动回收无用对象,释放空间对象,释放空间 )F TIP:If you know that an object is no longer needed,you can explicitly assign null to a reference variable for the object.(如如果一个对象不再使用,可以为其赋值为果一个对象不再使用,可以为其赋值为null)null)F例:例:Circle c=new Circle(25);Circle c=new Circle(25);c=null;c=null;41垃圾回收垃圾回收下面的代码执行完后,一共创建了几个对象?

    43、多少个对象成为下面的代码执行完后,一共创建了几个对象?多少个对象成为无用对象?无用对象?1 1、Circle c1=new Circle(5.5);Circle c1=new Circle(5.5);2 2、Circle c2=new Circle();Circle c2=new Circle();3 3、new Circle(2.5);new Circle(2.5);4 4、c1=c2;c1=c2;5 5、c1=null;c1=null;42class Circleclass Circle double radius;double radius;Circle(double newRadius

    44、)Circle(double newRadius)radius=newRadius;radius=newRadius;class TestCircleclass TestCircle public static void main(String args)public static void main(String args)Circle c1=new Circle();Circle c1=new Circle();c1.radius=-5;/c1.radius=-5;/这样的赋值有意义吗?这样的赋值有意义吗?Circle c2=new Circle(-3);/Circle c2=new Ci

    45、rcle(-3);/创建这样的圆有意义吗?创建这样的圆有意义吗?43class Circleclass Circle private private double radius;double radius;public Circle(double newRadius)public Circle(double newRadius)if(newRadius=0)if(newRadius=0)radius=newRadius;radius=newRadius;public double getRadius()public double getRadius()return radius;return

    46、radius;public void setRadius(double newRadius)public void setRadius(double newRadius)if(newRadius=0)if(newRadius=0)radius=newRadius;radius=newRadius;public class Test()public class Test()public static void main(String args)public static void main(String args)Circle c1=new Circle(5);Circle c1=new Cir

    47、cle(5);c1.setRadius(7);c1.setRadius(7);double r=c1.getRadius();double r=c1.getRadius();将成员变量设置为将成员变量设置为privateprivate,防止,防止在类的外部直接使用赋值语句为成在类的外部直接使用赋值语句为成员变量赋值员变量赋值 为成员变量提供为成员变量提供getget和和setset方法,存取变量值,方法,存取变量值,在在setset方法内部可以用条件语句保证赋值的方法内部可以用条件语句保证赋值的有效性有效性 44F为为PointPoint、ColumnColumn、RectangleRecta

    48、ngle、CarCar类编类编写写getget和和setset方法方法45F创建账户类创建账户类AccountAccount,内容如下:,内容如下:u成员变量:账户成员变量:账户idid,账户余额,账户余额balancebalance,开户日期,开户日期dateCreateddateCreatedu构造方法,为构造方法,为idid和和dateCreateddateCreated赋初值赋初值u为为idid、balancebalance、dateCreateddateCreated创建创建getget和和setset方法方法u取款方法取款方法withdrawwithdraw,从账户提取指定数额,从

    49、账户提取指定数额u存款方法存款方法depositdeposit,向账户存指定数额,向账户存指定数额F测试类测试类u创建一个创建一个IDID为为11221122,开户日期为当前日期的账户,开户日期为当前日期的账户u使用使用depositdeposit方法存入方法存入30003000元元u使用使用withdrawwithdraw方法取出方法取出25002500元元u输出账户余额输出账户余额思考思考F如果某个成员变量在类外不允许修改,如果某个成员变量在类外不允许修改,编写类的时候要采取哪些措施?编写类的时候要采取哪些措施?F如果某个成员变量的值在类外不允许访如果某个成员变量的值在类外不允许访问问(读

    50、、写读、写),编写类的时候要采取哪些,编写类的时候要采取哪些措施?措施?4647public class TestPassObject public class TestPassObject public static void main(String args)public static void main(String args)Circle myCircle=new Circle(1);Circle myCircle=new Circle(1);int n=5;int n=5;printAreas(myCircle,n);printAreas(myCircle,n);System.out

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:对象和类解析课件.ppt
    链接地址:https://www.163wenku.com/p-5601001.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


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

    163文库