ImageVerifierCode 换一换
格式:PPT , 页数:54 ,大小:277.54KB ,
资源ID:12509702      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/12509702.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(面向对象程序设计之类和对象实用全套PPT.ppt)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

面向对象程序设计之类和对象实用全套PPT.ppt

1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,C+,2,-,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面

2、向对象程序设计(chn x sh j)之类和对象,第一页,共54页。,2.1 面向对象程序设计方法(fngf)概述,什么是面向对象的程序设计?,面向对象的程序设计(Object-Oriented Programming)和传统的结构化程序设计的思路完全不同。,面向对象的程序设计和人们日常生活解决问题的思路是相似的。,比如,我们生产汽车时,不是顺序制造发动机,在设计制造底盘、车身、轮子。而是分别设计制造发动机、底盘、车身和轮子,最后(zuhu)组装在一起。组装时,各部件之间有联系,以便协调工作。例如,司机踩油门,就能调节油路,控制发动机的转速,就能驱动车轮。,第二页,共54页。,2.1 面向对象

3、程序设计方法(fngf)概述,程序设计者的任务有两个:一是设计所需要的类和对象,即确定那些数据和操作封装在一起;(类设计者、核心模块产品提供商),二是考虑怎样向有关对象发送消息,以启动相关对象的操作。,(主程序设计者,外包程序,面向用户的公司),编程者如同一个总调度,不断地向各个对象发出命令,让这些(zhxi)对象活动起来,完成指定的工作。,这就是面向对象的程序设计的基本思路。,第三页,共54页。,2.1 面向对象程序设计(chn x sh j)方法概述,什么是对象(duxing)(object)?,一个对象(duxing)由一组“属性”和一组“行为”构成。并根据外界给它的消息进行相应的操作。

4、系统中多个对象(duxing)通过一定的渠道相互联系。,任何事物都可以看成一个对象(duxing)。可以是自然物体,也可以是逻辑结构。,例:一个班级作为对象(duxing),一个班级作为对象(duxing),有两个要素:一是班级的静态特征,如班级所属的专业,学生人数、班主任姓名等,这种静态特征称为“属性”;另一个是班级的动态特征,如上课,体育比赛,开会等,称为“行为”。外界向班级发一个信息(如上课铃声,广播通知),我们称之为“消息”,班级就会发生一个操作(要么上课,要么开会),第四页,共54页。,2.1 面向对象程序设计(chn x sh j)方法概述,什么是C+对象?,C+中,每个对象都由若

5、干数据(属性)和若干函数(hnsh)(操作行为)组成。数据就是对象的“属性”,函数(hnsh)就是用来对数据进行的“操作”,以便实现某种功能。这种操作就是对象的“行为”,也叫“方法”。,我们点击一下鼠标,按动键盘的一个按钮,就是给某个对象一个消息,系统回调用该对象中的函数(hnsh)进行操作。,比如长方形对象,其长和宽就是它的属性,调用该对象的一些函数(hnsh),即向该对象传送一些消息,可以用来对其长、宽值进行加工计算,以实现求出面积、周长等功能。,第五页,共54页。,2.1 面向对象程序设计方法(fngf)概述,什么是对象封装(encapsulation)?,就是把对象的不想让外界知道的属

6、性和功能屏蔽起来,让外界看不见。封装有两个含义,,一是将有关的数据和操作函数封装成一个基本单位,即对象内。各对象之间相互独立,互不干扰;,二是将对象中的部分属性或功能对外隐蔽,只留少数接口向外公布,以接收外界信息。,对象封装的好处在于,降低了人们操作对象的复杂程度。使用对象的人,不必知道对象内部的实现细节,只需要了解外部功能就可以自如地操作该对象。,对象的行为(xngwi)由类的内部数据结构和相关的操作确定;外部行为(xngwi)通过操作接口实现。人们关心的就是操作接口(函数名)所能提供的服务。,第六页,共54页。,2.1 面向对象程序设计(chn x sh j)方法概述,什么是抽象(abst

7、raction)?,将具有相同特性的事物归纳、集中成一个统一类型,称为抽象。比如,把张三,李四,王五归纳为一类,我们称之为“人”。,抽象的作用,是表示同类事物的本质(bnzh)。,C和C+中,数据类型就是对一批具体数据的抽象,整形数据就是所有整数的抽象。,“类”是“对象”的抽象,“对象”则是类的“特例”,或“具体表现形式”。,第七页,共54页。,2.1 面向对象程序设计方法(fngf)概述,什么是继承(inherit)?,B类在A类的基础上增加了少量(sholing)内容。我们显然不必重新设计一个新类B,只需要把A类拿过来,在此基础上添加新内容就可以了。这就是面向对象程序设计的继承机制。,C+

8、提供继承机制,大大节省了编程工作量,这就是所谓“软件重用(software reusability)”的思想。对于大型软件的开发具有重要意义。,第八页,共54页。,2.1 面向对象程序设计(chn x sh j)方法概述,什么是多态性(polymorphism)?,如果有几个相似而不同的对象,人们往往要求在向它们发出同一个消息时,各自作出不同的操作,这种情况就是“多态现象”。,C+中,所谓多态性是指,由继承而产生的相关的不同的类,其对象对同一消息会作出不同的响应。,显然,多态性能增加(zngji)程序的灵活性,它是面向对象程序设计的重要特征。,第九页,共54页。,2.1 面向对象程序设计方法(

9、fngf)概述,类与对象的作用,C+全面支持传统的面向过程的程序设计(即结构化编程),也支持基于对象和面向对象的程序设计。,所谓基于对象,是指程序是以类和对象为基础,程序的操作是围绕对象进行(jnxng)的。,所谓面向对象,是指,在基于对象的基础上,利用了继承机制和多态性。,面向对象的程序设计特点:,类具有对数据的抽象性、封装性、继承性、多态性。,第十页,共54页。,2.2 类的声明(shngmng)和对象的定义,类和对象的关系,C+中,对象的类型称为类(class)。类代表了某一批对象的共同特性。前面已经谈到,类是对象的抽象,而对象是类的具体实例(instance)。就象结构体类型和结构体变

10、量一样。,C+中,我们先声明一个类的类型,然后再定义该类的若干(rugn)对象。对象就是类这种类型的一个变量。,类是抽象的,不占内存,而对象是具体的,要占用内存空间。,第十一页,共54页。,2.2 类的声明和对象(duxing)的定义,类的声明,类的声明方法和结构体的声明方法一样,只是(zhsh)将关键字struct 换成class:,class 类名,private:,私有数据成员和私有成员函数;,public:,公共数据成员和公共成员函数;,;,/成员访问限定区域先后次序任意,但一种最好只出现一次,类的成员包含对数据操作的函数,体现了数据和操作的封装,类的成员不能所有都私有,一般隐藏数据,

11、把成员函数作为对外接口,成员(chngyun)访问限定符,(member access specifier),成员访问限定符,(member access specifier),别忘了必须用分号结束!,第十二页,共54页。,2.2 类的声明和对象(duxing)的定义,类的声明(shngmng)示例,类头:class rectangle,类体:private:,int length,width,area,perimeter;,public:,void PutArea(),area=length*width;,void PutPerimeter(),perimeter=(length+width

12、)*2;,void display(),cout “length=“length endl;,cout “width=“width endl;,cout “area=“area endl;,cout “perimeter=“perimeter endl;,;,在类的外面不能访问私有成员,,只能通过(tnggu)公有成员函数间接访问,在类的外面可以访问公有成员,不指定公有私有,则默认为私有,一般先出现,private,,后出现,public,第十三页,共54页。,类的声明(shngmng),还有一种protected类型,不能被类外访问,但可以被派生类访问,一般使用厂商(chngshng)提供的

13、类库,也可以自定义类库,便于单位部门使用,第十四页,共54页。,2.2 类的声明和对象(duxing)的定义,对象的定义,声明了类以后,就可以定义该类的对象了。给对象分配了存储空间。,其格式为:,class 类名 对象名1,对象名2,/方括号表示可选项,对象定义示例,如前例中,声明了一个名为 rectangle 的类,我们(w men)可以定义该类的若干对象:,class rectangle r1,r2,r3;,rectangle r1,r2,r3;,第十五页,共54页。,2.2 类的声明和对象(duxing)的定义,对象定义,class rectangle,private:,int leng

14、th,width,area,perimeter;,public:,void PutArea(),area=length*width;,void PutPerimeter(),perimeter=(length+width)*2;,void display(),cout “length=“length endl;,cout “width=“width endl;,cout “area=“area endl;,cout “perimeter=“perimeter endl;,r1,r2;,不出现(chxin)类名,直接定义对象,不提倡,第十六页,共54页。,2.2 类的声明(shngmng)和对象

15、的定义,类和结构(jigu)体类型异同,struct/class rectangle,public/private:,int length,width,area,perimeter;,void PutArea(),area=length*width;,void PutPerimeter(),perimeter=(length+width)*2;,void display(),cout “length=“length endl;,cout “width=“width endl;,cout “area=“area endl;,cout “perimeter=“perimeter endl;,r1,

16、r2;,建议(jiny)使用CLASS,第十七页,共54页。,2.3 类的成员(chngyun)函数,成员函数的性质,类的成员函数也叫类函数,用法和一般函数基本上一样。区别在于它只是属于一个类的成员而出现在类中。它可以被指定为类的私有成员(private)、公有成员(public)或保护成员(protected)。,使用类函数时,要注意它的使用权限,如果是私有成员,只能被本类的其他(qt)成员函数调用,不能被类外调用(工具函数)。成员函数可以调用本类所有数据成员和成员函数,也可以引用在本作用域中的有效数据。,通常,我们把类的数据成员定义成私有成员,对外屏蔽,而把成员函数定义成公有成员,他可以调

17、用私有成员和其它成员。,一个类若没有成员函数,就退化成C语言的结构体,而失去意义。,第十八页,共54页。,2.3 类的成员(chngyun)函数,在类外定义成员函数,成员函数一般在类体中定义,如前面所讲。也可以在类外定义,但要指明是属于(shy)哪个类的成员函数,用“类名:函数名”来指定。例如:,class rectangle,private:,int length,width,;,int area,perimeter;,public:,void PutArea();,void PutPerimeter();,void display();,;,void rectangle:PutArea()

18、area=length*width;,void rectangle:PutPerimeter(),perimeter=(length+width)*2;,void rectangle:display(),cout “length=“length endl;,cout “width=“width endl;,cout “area=“area endl;,cout “perimeter=“perimeter;,rectangle r1,r2,r3;,第十九页,共54页。,“:”成为域限定符。如果在域限定符前没有类名,或函数名前既没有类名,又没有域限定符:,:display()或 display(

19、),则表示该函数不属于任何类,它不是成员函数,而是全局(qunj)函数,即普通函数。,第二十页,共54页。,一般来说,类定义包括两个部分:,1、声明部分(“做什么(shn me)”):,数据成员(名称、类型),成员函数(方法),2、实现部分(“怎么做”):,成员函数的定义和实现,声明在定义之前,也即是类体外定义成员函数(这里用定义,实际是给函数分配了空间,后章节详述),减小了类体长度,隐藏了执行细节,提高了类的保密性,第二十一页,共54页。,2.3 类的成员(chngyun)函数,inline 成员(chngyun)函数,类的成员(chngyun)函数也可以指定为内联函数,只要是函数代码较少,

20、有频繁使用。我们只要在成员(chngyun)函数的类型签名加上inline 关键字就可以。,class rectangle,private:,int length,width,;,int area,perimeter;,public:,inline void PutArea();,inline void PutPerimeter();,void display(),cout “length=“length endl;,cout “width=“width endl;,cout “area=“area endl;,cout “perimeter=“perimeter endl;,第二十二页,共5

21、4页。,2.3 类的成员(chngyun)函数,inline 成员(chngyun)函数,class rectangle,private:,int length,width,;,int area,perimeter;,public:,inline void PutArea();,inline void PutPerimeter();,void display();,;,void rectangle:display(),cout “length=“length endl;,cout “width=“width endl;,cout “area=“area endl;,cout “perimete

22、r=“perimeter;,Inline,第二十三页,共54页。,2.3 类的成员(chngyun)函数,inline 成员函数,类体中不包含循环控制结构,此类成员函数自动作为inline 成员函数。,类体外也可定义inline 成员函数,声明、定义其一显式定义即可,类定义和其成员函数定义必须在同一(tngy)文件(或包含)。,第二十四页,共54页。,2.3 类的成员(chngyun)函数,成员函数的存储(cn ch)方式,同一类定义了多个对象时,每个对象的数据成员各自占据独立的空间,而共享一个共用的函数代码段,不占用对象的存储(cn ch)空间。,C+为此专门设立了一个名为 this 的指针

23、用来指向不同的对象。当调用对象r1,成员函数访问的就是r1的数据成员。所以成员函数建议在类体外定义。,数据,1,对象,r1,数据,2,对象,r2,数据,10,对象,r10,共用函数代码,第二十五页,共54页。,2.4 对象(duxing)成员的引用,用对象(duxing)名和成员运算符(.)访问对象(duxing)成员,举例:,class rectangle,public:,int length,width;/公共数据成员,void display();/公共成员函数,;,void rectangle:display(),cout“area=“length*width ednl;,cout“

24、perimeter=“length,class rectangle,public:,int length,width;/公共(gnggng)数据成员,void display();/公共(gnggng)成员函数;,void rectangle:display(),cout“area=“length*width ednl;,cout“perimeter=“lenght=5;,p-width=4;,p-display();,用这种方式万分的成员,也必须定义成公用成员!,第二十七页,共54页。,2.4 对象(duxing)成员的引用,用对象的引用访问对象成员(chngyun),举例:,class r

25、ectangle,public:,int length,width;/公共数据成员(chngyun),void display();/公共成员(chngyun)函数,;,void rectangle:display(),cout“area=“length*width ednl;,cout“perimeter=“t2.hour;,cint2.minute;,cint1.sec;,coutt1.hour:t1.minute:t2.sect2.hour;,cint2.minute;,cint1.sec;,coutt1.hour:t1.minute:t2.sect1.hour;,cint1.minut

26、e;,cint1.sec;,coutt1.hour:t1.minute:t1.sect2.hour;,cint2.minute;,cint2.sec;,coutt2.hour:t2.minute:t2.sect.hour;,cint.minute;,cint.sec;,void show_time(Time&t),coutt.hour:t.minute:t.secendl;,第三十四页,共54页。,例:定义(dngy)含默认值参数的set_time和show_time函数,#include,class Time,public:,int hour;,int minute;,int sec;,;,

27、int main(),Time t1;,set_time(t1,12,23,34);,show_time(t1);,Time t2;,set_time(t2);,show_time(t2);,第三十五页,共54页。,例,#include,using namespace std;,class Time,public:,int hour;,int minute;,int sec;,;,int main(),void set_time(Time,void show_time(Time,Time t1;,set_time(t1,12,23,34);,show_time(t1);,Time t2;,se

28、t_time(t2);,show_time(t2);,return 0;,void set_time(Time&t,int hour=9,int minute=30,int sec=0),t.hour=hour;,t.minute=minute;,t.sec=sec;,void show_time(Time&t),coutt.hour:t.minute:t.sechour;,cinminute;,cinsec;,void Time:show_time(),couthour:minute:sechour;,cinminute;,cinsec;,void Time:show_time(),cout

29、hour:minute:sect.hour;,cint.minute;,cint.sec;,void show_time(void),coutt.hour:t.minute:t.secendl;,int main(),set_time();,show_time();,return 0;,第四十页,共54页。,例2.4 P61,#include,using namespace std;,class Array_max,public:,void set_value();,void max_value();,void show_value();,private:,int array10;,int m

30、ax;,;,int main(),Array_max arrmax;,arrmax.set_value();,arrmax.max_value();,arrmax.show_value();,return 0;,第四十一页,共54页。,2.6 类的封装和信息隐蔽,公用接口和私有实现的分离,我们已经学到,C+通过类的封装,将类的数据成员和成员函数集成到一个类中。而一般在类的声明时,往往把数据成员指定成私有的,使它们与外界隔离,即,不能在类外直接使用私有成员,外界只能通过类的公有函数,间接进行对私有成员的操作。换句话说,外界与类的私有成员的唯一联系渠道,就是该类的公有成员函数。,所以,我们一般把成

31、员函数指定成公有的(public)性质(除非某些成员函数不想让外界调用)。,这就是所谓的“外部接口”与内部实现的分离,以起到信息隐蔽的作用。而这是软件工程最基本(jbn)的原则。,第四十二页,共54页。,定义一个类就是实现对创建一个对象的数据结构的描述。,在类中,一些成员是保护的,被有效地屏蔽,以防外界的干扰和误操作。,另一些成员是公共(gnggng)的,作为接口提供外界使用。,右图是对它们采用的图示方法说明类的组成结构。以Point 类为例。,xoffset,yoffset,set,angle,radius,x,y,封装体,内部数据成员,Point,类,访问接口,第四十三页,共54页。,2.

32、6 类的封装和信息隐蔽,类声明和成员函数定义的分离,当一个类被多个程序使用时,一般将类的声明(包括成员函数的声明)放在指定的头文件中,用户在编程时,将该头文件包含近来就可以了。而不必在每个使用该类的程序中重复书写(shxi)该类的声明。,我们然后可以直接在程序中直接定义该类的对象,直接调用该类的公有成员函数。为了实现信息隐蔽,对类的成员函数的定义一般不放在头文件中,而放在另一个文件中。,然后按照对多文件程序的编译和运行方法对程序进行编译和连接。请看下面示例。,第四十四页,共54页。,2.6 类的封装和信息隐蔽,/rectangle.h,class rectangle,private:,int

33、length,width;,public:,void Put();,void display();,/,rectangle.cpp,#include,#include“rectangle.h”,void rectangle:Put(),length=5;,width=4;,void rectangle:display(),cout“area=“,length*width hour;,cinminute;,cinsec;,void show_time(void),couthour:minute:sechour;,cinminute;,cinsec;,void Time:show_time(voi

34、d),couthour:minute:secendl;,Time t;,int main(),t.set_time();,t.show_time();,return 0;,第五十一页,共54页。,void show_time(Time,类具有对数据的抽象性、封装性、继承性、多态性。,所以,我们一般把成员函数指定成公有的(public)性质(除非某些成员函数不想让外界调用)。,#include iostream.,对象就是类这种类型的一个变量。,#include,show_time();,这就是所谓的“外部接口”与内部实现的分离,以起到信息隐蔽的作用。,length=5;,区别在于它只是属于一个

35、类的成员而出现在类中。,#include,int main(),int t=x;x=y;y=t;,类具有对数据的抽象性、封装性、继承性、多态性。,这就是面向对象的程序设计的基本思路。,2分钟,01、下列关于C+函数的叙述中,正确的是()。,A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值,C)函数在被调用之前必须先声明 D)函数不能自己调用自己,02、下列关于类和对象的叙述中,错误的是()。,A)一个类只能有一个对象 B)对象是类的具体实例,C)类是对某一类对象的抽象(chuxing)D)类和对象的关系是一种数据类型与变量的关系,03、对于语句 coutxendl;错误的是描述是(

36、)。,A)“cout”是一个输出流对象 B)“endl”的作用是输出回车换行,C)“x”是一个变量 D)“”称作提取运算符,1,、,C 2,、,A 3,、,D,第五十二页,共54页。,5分钟,4、面向对象程序设计有四个主要特点,即抽象、封装、_和_。,5、在用class定义一个类时,数据成员和成员函数的默认访问(fngwn)权限是_。,6、写出执行下面程序的输出结果。,void fun(int&x,int y),int t=x;x=y;y=t;,int main(),int a2=23,42;,fun(a1,a0);,std:couta0,a1std:endl;,return 0;,4、继承(jchng)多态,5、私有,6、23 23,第五十三页,共54页。,谢谢(xi xie)观看,第五十四页,共54页。,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服