- 无尘剑
-
把你写的程序贴出来,可以帮你改一下。否则不太知道你的意思。
不知道你说的对应类是什么意思,是不是对象自身的类。
一个对象当然可以访问自身的私有指针变量,也就是本类的私有指针变量。
一个对象要访问另一个对象内的私有指针变量,或者通过接口方法、或者通过友元来实现。
如A类对象a要访问B类对象b内的私有变量,通过接口方法,意思是在B类内提供公有方法作为访问接口,A类对象a通过调用此接口方法,访问B类对象b内的私有指针变量。
通过友元是指在B类的定义内,把A类声明为友元类,这样A类对象a就可以访问B类对象b内的所有成员变量和成员函数了。
- 韦斯特兰
-
不能直接访问,但可通过公有成员进行访问,还有,当进行动态联编的时候,私有已经和公有没什么区别了
静态变量和私有变量的区别
分类: 电脑/网络 >> 程序设计 >> 其他编程语言 问题描述: 我觉得很混淆,希望高手指教 解析: 静态变量和私有变量的最主要的区别就在于:他们分配内存空间的方式不一样。 静态变量的内存是在程序开始执时变量就占用了内存,直到程序结束时变量才释放内存. 私有变量(或者说是局部变量,不知道你是不是指这个:)),是在程序运行到该步的时候分配内存。所以,当离开了该私有变量的作用域的时候,私有变量的内存空间会被释放。所以:静态变量只的值只会初始化一次,后面每次访问,都是上次处理过的值,(即使是在一个函数内部)。 私有变量每次都初始化。2023-06-09 19:39:181
pyrhon中私有变量的理解与运用?
9.6. 私有变量只能从对像内部访问的“私有”实例变量,在 Python 中不存在。然而,也有一个变通的访问用于大多数 Python 代码:以一个下划线开头的命名(例如 _spam )会被处理为 API 的非公开部分(无论它是一个函数、方法或数据成员)。它会被视为一个实现细节,无需公开。因为有一个正当的类私有成员用途(即避免子类里定义的命名与之冲突),Python 提供了对这种结构的有限支持,称为 name mangling (命名编码) 。任何形如 __spam 的标识(前面至少两个下划线,后面至多一个),被替代为 _classname__spam ,去掉前导下划线的 classname 即当前的类名。此语法不关注标识的位置,只要求在类定义内。名称重整是有助于子类重写方法,而不会打破组内的方法调用。例如:class Mapping: def __init__(self, iterable): self.items_list = [] self.__update(iterable) def update(self, iterable): for item in iterable: self.items_list.append(item) __update = update # private copy of original update() methodclass MappingSubclass(Mapping): def update(self, keys, values): # provides new signature for update() # but does not break __init__() for item in zip(keys, values): self.items_list.append(item)需要注意的是编码规则设计为尽可能的避免冲突,被认作为私有的变量仍然有可能被访问或修改。在特定的场合它也是有用的,比如调试的时候。要注意的是代码传入 exec(), eval() 时不考虑所调用的类的类名,视其为当前类,这类似于 global 语句的效应,已经按字节编译的部分也有同样的限制。这也同样作用于 getattr(), setattr() 和 delattr(),像直接引用 __dict__ 一样。2023-06-09 19:39:251
python类里的私有变量如何定义
Python使用下划线_作为变量前缀和后缀来指定特殊变量,规则如下: __xxx__表示系统定义名字 __xxx表示类中的私有变量名类的成员变量分两类:公有变量和私有变量。公有变量可在类的外部访问,是类与用户交流的接口。私有变量不可在类的外部被访问,这保证了类的设计思想和内部结构并不完全对外公开。 在Python中除了__xxx格式的成员变量外,其他的成员变量都是公有变量。2023-06-09 19:39:341
java中如何调用私有变量或方法
在本类中调用2023-06-09 19:39:442
编程中为什么要把一些变量私有?
私有就是只在子程序或函数中有效,在其外是无效的、也是不可见的。这样的目的:1、避免同名变量互相干扰(特别是多个人做同一个项目时);2、隐藏更多的细节,只需协商好接口参数,便于保密;3、有些语言中,私有变量是定义在堆(或栈)中的,使用完成后可以释放掉,具有动态性,减少内存的占用;...................2023-06-09 19:39:531
java中私有变量是什么意思?如何设置私有变量和它对应的get和set方法?
私有变量就是不能被外界访问的变量,即不能通过【对象.属性】来调用这个变量,所以要就有了setter和getter方法了,即通过【对象.方法】来调用,set就是设置这个私有变量的值,get就是获取这个私有变量的值。举个例子:2023-06-09 19:40:023
在vfp中 局部变量 私有变量 怎样理解啊?有具体例子更好啊!
局部变量:变量的值可以由上级程序传递到下级程序,不能由下级程序传递到上级程序。私有变量:变量的值只能在当前程序中使用,不能传递到上级和下级程序。2023-06-09 19:40:282
私有变量是什么意思啊最好说的浅显点我是初学者。我在学C#大神们帮帮忙
变量分为私有和公有的 私有的只有类内部才能访问 公有的别的类也能访问 就好比是“私有”是我个人的 别人当然用我个人的东西 当然不行了 但如果是“公共”的 那么大家就都能用了麻烦采纳,谢谢!2023-06-09 19:40:351
私有变量、静态私有变量
私有变量:函数内部定义的变量(局部变量),不能被外部使用。 私有函数:函数内部定义的函数(局部函数),不能被外部使用。 解决方案:可以定义一个闭包来对局部变量进行捕获。 静态私有变量:所有对象共享的局部变量。2023-06-09 19:40:531
私有变量Private variables 这个是不是就是C中的 局部变量
不是 Private 即私有变量是相对于对象来说的(只限于对象内部使用) 而C是面向过程的 不存在这个 有类似 不等效2023-06-09 19:41:001
C#中类的私有变量能被继承吗?若能被继承,那么private修饰的变量只能在它所属的类中被访问时怎么回事?
肯定不能啊如果能还要protected干嘛?private是私有的不论继承或者新建对象你在外部都不能用的protected只有本身和继承他的子类可以访问2023-06-09 19:41:082
java中类的私有变量是不可访问的
private在对同一个类内部是可见的2023-06-09 19:41:206
vfp二级,如图,求解释,私有变量的作用范围?
在VisualFoxPro中,若以变量的作用域来分,内存变量可分为:公共变量、私有变量和局部变量三类。 在任何模块中都可使用的变量为公共变量u2022公共变量要先建立后使用,建立命令:u2022Public <内存变量表>u2022公共变量的初值为.f.,赋值后改变。一旦建立就一直有效,即使程序运行结束返回到命令窗口也不会消失。只有执行clear memory、release、quit 等命令后,公共变量才被释放。 局部变量是只能在建立它的模块中使用,而不能在其上层或下层模块中使用的变量。当建立它的模块程序运行结束时,局部变量自动释放。u2022局部变量必须先建立后使用,用local命令建立:u2022Local <内存变量表>u2022建立时赋初值.f.。 在程序中直接使用(没有通过public和local命令事先声明)而由系统自动隐含建立的变量都是私有变量。私有变量的作用域是建立它的模块及其下属的各层模块。一旦建立它的模块程序运行结束,这些私有变量将自动清除。 变量隐藏命令格式:Private <内存变量表>Private all [like通配符|except通配符]其作用是隐藏指定的在上层模块中可能已经存在的内存变量,使其暂时失效,命令改变当前或下属模块变量时就不会影响上层变量的值,当前模块结束,返回上层模块时,被隐藏的内存变量就自动恢复有效性,并保持原值。 上述程序中,m、n为私有变量,初值为m=n=10, 执行sub1时,m被隐藏,并被赋值为5,私有变量n改变为6,执行sub2时,被隐藏的m恢复为原值10,n变为6;接着,n被隐藏,并被赋值200,m的值改变为100。执行完毕,返回到sub1,n恢复为6,再返回到主程序,m的值恢复为10。执行显示m,n,此时m的值为10,n的值为62023-06-09 19:41:351
如何访问私有如何访问私有变量
1.private怎么访问InPrivate浏览允许您在InternetExplorer中浏览网页,而不会留下任何私人信息的痕迹。这有助于防止使用您电脑的任何人看到您访问了哪些网站以及您在网上查看了哪些内容。您可以从新的选项卡页面或通过按CtrlShiftP启动InPrivate浏览.启动InPrivate浏览后,InternetExplorer将打开一个新窗口。InPrivate浏览提供的保护仅在您使用此窗口期间有效。您可以在此窗口中打开任意数量的选项卡,这些选项卡将受到InPrivate浏览的保护。但是,如果您打开另一个浏览器窗口,它将不受InPrivate浏览的保护。要结束InPrivate浏览会话,请关闭浏览器窗口。当您使用InPrivate浏览进行网上冲浪时,InternetExplorer会存储一些信息(如cookie和Internet临时文件),以便您访问的网页可以正常工作。但是,当InPrivate浏览会话结束时,此信息将被丢弃。下表描述了当浏览器关闭时,InPrivatebrowsing将丢弃哪些信息,以及这些信息在浏览会话期间将产生哪些影响。2.private变量如何访问用私有静态成员变量修饰的私有变量用静态私有变量修饰的私有变量只能被这个类调用,不能被其他类(包括子类)调用。静态成员变量也可以分为私有或公共变量。要调用静态成员变量,只需添加。到类名。其实private是修改后的共享作用域,static是修改后的变量类型。3.private官网怎么进忘记苹果iPhone开机密码怎么办?现在,用苹果iPhone4s的电脑朋友越来越多。大家可能为了隐私都设置了密码,但是过了一段时间密码就忘记了,很多电脑朋友一忘记密码就着急。在这里,我我来介绍一下苹果iPhone忘记开机密码的解决方法。材料:iphones4手机一部,电脑一台,苹果数据线一根。方法一这种方法只需要删除手机里的/private/var/keychains/keychain-2.db的keychain-2.db。方法是用苹果手机号电脑连接,然后从电脑输入你的手机/private/var/keychains/findkeychain-2.db,删除。然后重启手机看看你有没有我不需要密码。方法二1。首先,确定iTunes已安装在您的电脑上。如果你不不要去官方网站下载安装,然后在你的电脑上启动iTunes。2.现在将iphone4s连接到电脑上,按住(iphone4s)电源(开/关键)和Home(下面的圆键)10秒,等待你的iphone变黑(根据经验,黑屏后大约0.5-1秒),松开电源键,一直按住Home键,直到iTunes识别出你的iphone。3.过一会儿,你的电脑会找到新的硬件,然后iTunes检测到iPhone处于恢复模式。您必须恢复此iPhone,并配合iTunes使用它。此时单击确定。4.打开itunes,在显示你的ipod容量和信息的部分,点击恢复,选择硬盘上已经下载的1.1.4固件(如果没有下载,可以从苹果官网下载)开始恢复过程。5.等待您的iphone4s的屏幕显示数据线连接的图片。同时还会看到iTunes提示固件恢复已经完成,让给你手机密码,不用输入密码就能进入手机!总而言之,在设置密码的时候,它最好设置一个常用密码,然后用笔写在笔记本上。如果电上有电脑,也要记录下来,忘记了可以拿回来。4.private的访问权限private是一个系统文件,里面包含了手机程序和手机设置的数据。即使使用PC套件连接手机,手机内存中的私有文件夹也可以因为没有许可,所以不能阅读。把电脑和读卡器连接起来就可以删除手机内存卡里的私人文件夹。如果在使用手机文件管理时觉得私人文件夹碍眼,可以将文件夹属性设置为隐藏属性。5.private访问控制受保护的和私有的区别如下:1.private是完全私有的,只能由当前类的成员访问。2.protected是受保护的,只有当前类和继承它的类的成员才能访问它。6.怎么调用private一般情况下,私有成员函数一定不能外部调用,但虚拟私有成员函数可以外部调用。我们知道C多态性包括编译时多态性和运行时多态性。当通过基类的指针或引用调用虚函数时,会发生动态绑定,编译器的处理是静态的。它只会在调用这个成员函数时检查当前类范围内的访问控制(基类或B类中的F函数是公共的7.private怎么用私下强调归私人所有在中文里经常被翻译成私人还有私人比如私信,出于私人原因。虽然personal在某些方面与private有相同的含义和用法,但也可以说personalaffairs(私事)。但是个人主要强调个人还有个人使用8.private只能被什么访问structA{intA;intb;};B类{inta;intb;};一个aa;Bbb默认是指在没有指明访问权限时默认使用的权限。aa.a=10aa.b=20因为结构默认是公共的,所以可以直接访问,而bb.abb.b可以因为私有成员只能通过类接口访问。明白了吗?私教英语是私教。公:公。私人的就是私人的。Public:是public,具体体现在声明的私有数据成员或方法只能被封装在类中的其他方法访问,以防止用户通过声明的类对象直接修改数据成员。而且在被其他类以任何方式(公共继承、私有继承、受保护继承)继承后,在派生类中仍然是私有的!公共数据成员和方法不仅可以由方法访问,也可以由对象直接访问。被其他类公开继承后,在派生类中还是公开的!:9.如何访问private1.由公共修饰的成员变量该程序可以在任何地方访问,这意味着公共变量,并且可以由类的实例直接访问,而无需成员函数。2.私有修饰的成员变量只有类内部可以直接访问,类的私有实例可以通过成员函数访问,这样可以隐藏信息。3.protected是受保护的变量。类和子类可以直接访问,即如果基类中有受保护的成员,子类从基类继承,也可以访问基类的受保护成员。如果基类是私有成员,它对子类是隐藏的,不可访问。10.如何访问private方法子类不能直接访问父类中的私有变量。可行的解决方案是:将变量的访问修饰符更改为public或protected或default(不写任何内容)在父类中写一个公共成员方法,获取私有变量的值。示例代码如下:使用这种方法更安全。该变量被控制为private,其值通过get方法获得,其值通过set方法修改。11.无法访问privateprivate是完全私有的,只有当前类的成员可以访问它。protected是受保护的,只有当前类和继承该类的类的成员才能访问它。这两个是类成员访问权限的限制。如果要在类外使用类的成员,只能直接使用public类型,但是protected和private都可以不要访问它。对于课外使用,这两个是完全一样的。2023-06-09 19:41:421
java 对象能访问私有变量
private:访问权限仅限于类的内部,是一种封装的体现,例如,大多数成员变量都是修饰符为private的,它们不希望被其他任何外部的类访问。也就是说,private的私有只针对其他类,在同一类中并无关系,可以调用2023-06-09 19:41:511
java 如何访问类中的私有变量
new一个这个类的对象,然后通过对象.私有变量来调用。比如publicA{privateStringx;getx();set();}getset方法我就不放出来了publicB{Aa=newA();Stringresult=a.getx();}2023-06-09 19:42:032
java 父类中私有变量能被子类继承吗?
父类的所有变量都可以被继承只是private的`子类不能去访问而以2023-06-09 19:42:143
- 你说的本地变量指什么?局部变量?如果是局部变量,其作用域就是在相应的代码块中,比如方法,或者方法中的一个循环、if分支等等私有、公有变量是OO的概念吧私有变量就是一些不愿意被外部访问从而修改其值的变量,用private修饰。如果有访问的必要,可以开放一个入口,比如setProperty(xxxxxx),在setter方法中可以对参数做一些过滤或者验证的操作公有变量就是可以让外部直接访问了,不过还是建议通过getter、setter访问,可读性更强2023-06-09 19:42:321
关于内存变量的调用,下列说法中正确的是( )。
【答案】:BB。【解析】由系统自动隐含建立的变量是私有变量。私有变量的作用域是建立它的模块及其下属的各层模块。局部变量只能在建立它的模块中使用,不能在上层或下层模块中使用。当建立它的模块程序运行结束时,局部变量自动释放,局部变量用local命令建立。2023-06-09 19:42:431
java私有变量
vb 我会2023-06-09 19:42:502
如何声明线程私有全局变量
线程私有全局变量就是线程私有变量。Linux下C语言是这么实现的,定义一个全局变量:pthread_key_t thread_key;使用这个函数初始化:pthread_key_create(&thread_key,NULL);然后在线程内调用这个函数存储线程私有变量:pthread_setspecific(thread_key,(void*)num);//num是要存储的数据的指针在线程内的任意位置调用这个函数可以取得在这个线程内使用pthread_setspecific函数存进来的值,pthread_getspecific(thread_key);//取得num指针。反正一共就3个API,实在不明白就去搜索一下线程私有变量的用法2023-06-09 19:42:591
C# 定义私有变量报错
在函数中声明的变量称之为函数变量(也叫自动变量),C#中 public private 等访问修饰符不能用于修饰函数变量(因为这个变量只有在函数实例化的时候才会声明,并随着函数结束自动销毁)。参考:https://msdn.microsoft.com/zh-cn/library/st6sy9xe.aspx建议修改代码:public class Myclass{ private int a = 0; //这个叫私有属性 private int b; void test() { int c = a+b ; ......// c是个自动变量 代码执行完自动就销毁了 }}2023-06-09 19:43:051
全局变量 局部变量 私有变量之间关系..急急急!!!在线等!
这个你完全可以从他们的名字上来理解全局变量:就是在类中,方法的外面声明的变量, 全局变量可是在类中的任何方法内被调用局部变量:简单的说就是在一对"{}"括号内声明的变量 他的局部性就体现在,他只能在这对"{}"内 被访问私有变量:就是用private关键子声明的变量,从名字上 就不难理解,他是私有的,也就是只有声明了 它的那个类或是方法才可以访问它,其它任何 地方他都是不可见的2023-06-09 19:43:192
c++类中静态成员函数怎么访问类私有变量
如果私有变量是静态的,可以直接访问,或通过类名::变量名访问;如果私有变量是实例成员,要先创建一个类的对象,再通过对象名.变量名访问,或先new一个对象,将new的返回值赋给一个指针,通过指针名->变量名访问或通过(*指针名).变量名访问。2023-06-09 19:43:251
delphi私有变量
看一下Tdatamod在哪个单元内,uses一下。2023-06-09 19:43:343
在vfp中,如何理解全局变量,私有变量,局部变量
这张图可能容易理解一点吧。2023-06-09 19:43:552
Java通过反射可以设置私有变量的好处有哪
利用反射能 //假设类名为A// 实例化类A p = new A();// 获取classClass c = p.getClass();// 获取该类所有的字段Field[] fields = c.getDeclaredFields();// 遍历赋值for (int i = 0; i < fields.length; i++) {String filedName = fields[i].ge.2023-06-09 19:44:072
如何从oc中去获取一个私有的变量.....
1、定义的一个类,里面有一个私有变量mt_,并且在初始化值为"HaHa Ha "。 @interface Mobj : NSObject {@private NSString *mt_;}@end@implementationMobj- (id)init { self = [super init]; if (self) {mt_ =[[NSString alloc] initWithString:@"Ha Ha Ha"];} return self;}- (void) dealloc { [mt_ release]; 记得加头文件#import <objc/runtime.h ):NSString*str; Mobj *obj = [[Mobj alloc] init]; object_getInstanceVariable(obj, "mt_", (void *)&str); Ok,这样就实现了私有变量的访问。2023-06-09 19:44:331
java 如何调用一个私有方法里的私有成员变量
反射方法2023-06-09 19:44:4112
解决私有变量能够外部赋值用的是哪个关键字
解决私有变量能够外部赋值用的是值这个关键字。根据相关资料查询值这个关键字可以用来修饰类、方法和变量(包括成员变量和局部变量),当用值修饰一个类时,表明这个类不能被继承,也就是说,一个类永远不想继承就可以用值进行修饰。2023-06-09 19:45:271
javascript:什么叫做私有静态变量呢?
这个私有 是对 外面访问而言的。例如 你可以调用 testObject1.test1()但是 你不可以使用 testObject1.privateStaticVariable 来调用这个变量。外面是访问不了这个变量的,只有类中的 test 1 2 3这3个函数能够访问和修改。2023-06-09 19:45:441
c++怎么用引用&来访问类中的私有变量
是想在类内引用还是在类外引用?2023-06-09 19:45:543
java中如何调用私有变量或方法
通过类内部的公有方法调用这个类里面的私有变量。这个公有方法对外是可以被调用的2023-06-09 19:46:142
类的构造函数里能不能使用输入对私有变量赋值?
在main函数里声明一个person对象比如void main(){person p;}2023-06-09 19:46:251
Python中定义私有变量的方法是()。
Python中定义私有变量的方法是()。 A.使用this关键字B.()变量名C.使用private关键字D.变量名()正确答案:B2023-06-09 19:46:311
private variables是什么意思
private variables私有变量**************************************************************如果你对这个答案有什么疑问,请追问,另外如果你觉得我的回答对你有所帮助,请千万别忘记采纳哟!***************************************************************2023-06-09 19:46:381
Unity里私有变量和全局变量的区别
全局变量就是对全局起作用,局部变量只对某一程序段起作用,他们主要是作用范围不同;静态变量,在编译时分配的区间,执行过程中不自动释放会记住上次执行结果;动态变量在执行时根据需要临时分配空间,再次调用不会记录上次执行结果。静态和动态变量的区别本质上在于是否是在动态内存区域分配内存,表现上的区别是是否记录上次执行结果。说的不是很清晰,见谅。2023-06-09 19:46:541
c++:类中的私有变量只能总在类体内的计算或被该类的对象调用是这样吗?
该类的成员函数可以调用,该类的友元函数或者友元类也可以调用。其他函数或者类只能通过上述方法间接调用。2023-06-09 19:47:073
关于子类访问父类私有成员变量问题,大神来看看
调用子类构造方法时,还会调用父类的构造方法,应该有个父类A的实例2023-06-09 19:47:284
C#中 是不是定义一个私有变量 都要定义一个相应的属性来让用户在外部输入一个变量
是的2023-06-09 19:47:353
C# 一个类怎么去访问另一个类的私有变量
一般只能通过这个类的公有变量和方法去访问提供一个公有方法或属性2023-06-09 19:47:433
以类对象为形参的成员函数,为什么可以直接访问该形参的私有变量?
因为访问类对象的私有变量的成员函数所在的类与这个对象所属的类是同一类。在一个类的成员函数中可以访问这个类的对象的所有成员(包括私有成员)。2023-06-09 19:47:561
私有变量/属性/方法,前面加下划线真的好么
哥们你是C语言的老程序员吧。 下划线一般有两种作用:1.区分变量/函数名比如有一个类里面有个name变量需要在构造函数中被赋值,而构造函数的参数也是name,那么就将一个改成_name。优点是一键("_")轻松区分,缺点是很容易混淆,特别是如果出现有多个name的情况,你能一眼区分 ________________name, __________________name吗? 2.用来分割很长的变量名,比如 int zhonghuarenmingongheguorenkou 加了下划线以后 zhong_hua_ren_min_gong_he_guo_ren_kou较易读懂。但是下划线加长了变量名长度,不宜与代码格式对齐影响美观。3.加下划线写出来的代码有一种很classic的气息,而且很底层(离系统、硬件更近)。我个人从c学起的所以比较喜欢用下划线,而我软工出生的同事一般用大写首字母来替代下划线的以上作用。2023-06-09 19:48:041
delphi procedure访问私有变量问题
若不介意 请帖具体的代码 谢谢2023-06-09 19:48:124
java的类中成员变量前的私有和公共有什么区别
公有:可以被外部访问私有:禁止被外部访问2023-06-09 19:48:363
java中,父类的私有变量,子类继承后,父类的私有变量子类能访问吗?
不能2023-06-09 19:48:466
如何用js实现类似于面向对象语言中类的私有变量
JavaScript中对象的创建有以下几种方式: (一)使用内置对象 (二)使用JSON符号 (三)自定义对象构造 一、使用内置对象 JavaScript可用的内置对象可分为两种: 一,JavaScript语言原生对象(语言级对象),如String、Object、Function等; 二,JavaScript运行期的宿主对象(环境宿主级对象),如window、document、body等。 我们所说的使用内置对象,是指通过JavaScript语言原生对象的构造方法,实例化出一个新的对象。如: 复制代码 代码如下: var str = new String("实例初始化String"); var str一 = "直接赋值的String"; var func = new Function("x","alert(x)");//示例初始化func var o = new Object();//示例初始化一个Object 二、使用JSON符号 (i)何谓JSON ? JSON (JavaScript Object Notation)即JavaScript对象命名,是一种轻量级的数据交换格式,易于阅读和编写,同时也易于及其解析和生成。它基于 《JavaScript Programming Language, Standard ECMA-二陆二 三rd Edition - December 一999》的一个子集。JSON是完全独立于语言的文本格式,因此成为数据交换的理想格式。 JSON作为 JavaScript的一个自己,同时ActionScript、C、C#、ColdFusion、E、Java、JavaScript、ML、 ObjectiveCAML、Perl、PHP、Python、Rebol、Ruby、Lua等一系列的语言都提供支持,使得JSON成为Ajax开发的 首选方案。 JSON有两种构建方式,一种是采用简单的“键/值对”的集合,在不同的语言中被理解为对象、记录、结构、字典、哈希表、有键列表,或者关联数组等,另一种采用有序的值列表,大部分语言把它理解为数组。 常用的创建方式是第一种,即采用“键/值对”集合的形式。在这种形式下,一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号),“ ‘键/值" 对”之间使用“,”(逗号)分隔。 JSON具有以下特点:(一)简单格式化的数据交换;(二)易于人们的读写习惯;(三)易于机器的分析和运行。 在JavaScript中,JSON被理解为对象。通过字符串形式的JSON,数据可以很方便地解析成JavaScript独享,并进行数据的读取传递。通过JSON,在一定程度上客服了JavaScript对象无法作为参数系列化传递的问题。 一,简单的JSON {name:"刘德华",age:"二5",sex:"男"} 二,JSON值的类型 JSON的值可以是简单的数据类型,例如数字、浮点、字符等,也可以是数组及对象。例如以数组作为member键值的JSON: {member:[{name:"刘德华"},{name:"郭富城"},{name:"张学友"},{name:"黎明"}]} { book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}], author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}] } 三,在JavaScript中使用JSON JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或者工具包,JavaScript默认将JSON当做一个对象处理。 将对象传递给一个变量,例如: 复制代码 代码如下: var somebooks = { book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}], author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}] } JSON的每个“键”相当于对象的属性,例如访问book中的第一个条目,在JavaScript中,就可以简单地使用“somebooks.book[0].name”来获取“三国演义”这个值。 我们不但可以将一个JSON字符串转化为对象,反过来将一个对象“编译”为一个JSON字符串,以方便JavaScript中的对象的传输。例如: 复制代码 代码如下: var Animals = new Object(); Animals.name = "dog"; Animals.sex = "Male"; Animals.age = "二"; Animals对象无法被序列化传输,将Animals对象转化为JSON字符串,也就是“{name:"dog",sex:"Male",age:"二"}”。这样,把该JSON字符串作为HTTP请求的一个参数传递,从而达到序列化传输Animals对象的目的。 (ii)JSON通过字符串形式来表达JavaScript的对象。如: 复制代码 代码如下: var myObject = {nickname:"my girlfried",name:"big pig"}; JSON 实际上充当了一种在JavaScript对象和字符串之间实现相互转换的协议。由于JSON的“外表”可以看成但村的字符串,因此JSON在 JavaScript的对象传输方面可以起到一定的作用。例如把对象strObject转换成字符串后进行传输,在达到目的地后通过eval方法将其还原 成对象: 复制代码 代码如下: function test (o) { alert (o.name) } var strObject = "{nickname:"my girlfriend",name:"big pig"}"; test (eval_r("(" + strObject + ")")); 三、自定义对象构造 创建高级对象构造有两种方式:使用“this”关键字构造、使用原型prototype构造。如: 复制代码 代码如下: //使用this关键字定义构造的上下文属性 function Girl() { this.name = "big pig"; this.age = 二0; this.standing; this.bust; this.waist; this.hip; } //使用prototype function Girl(){} Girl.prototype.name = "big pig"; Girl.prototype.age = 二0; Girl.prototype.standing; Girl.prototype.bust; Girl.prototype.waist; Girl.prototype.hip; alert(new Girl().name); 上例中的两种定义在本质上没有区别,都是定义“Girl”对象的属性信息。“this”与“prototype”的区别主要在于属性访问的顺序。如: 复制代码 代码如下: function Test() { this.text = function() { alert("defined by this"); } } Test.prototype.test = function() { alert("defined by prototype"); } var _o = new Test(); _o.test();//输出“defined by this” 当访问对象的属性或者方法是,将按照搜索原型链prototype chain的规则进行。首先查找自身的静态属性、方法,继而查找构造上下文的可访问属性、方法,最后查找构造的原型链。 “this” 与“prototype”定义的另一个不同点是属性的占用空间不同。使用“this”关键字,示例初始化时为每个实例开辟构造方法所包含的所有属性、方法 所需的空间,而使用“prototype”定义,由于“prototype”实际上是指向父级的一种引用,仅仅是个数据的副本,因此在初始化及存储上都比 “this”节约资源2023-06-09 19:49:021
c++中可在一个类中将另一个类的对象作为私有变量吗
先解释问号部分:1、 point(int x1=0,int y1=0):x(x1),y(y1)............................................??????这叫列表初试化,把第一个x()括号内的值付给x,y()括号内的值付给y。2、circle(int cx,int cy,int r):center(cx,cy),radius(r)....................?????????????这还是列表初始化,但是他调用了center点的构造函数,把相印的参数给附上去。3、point textposition;.........................??????定义一个点类型的对象。4、circlewithtext(int cx,int cy,int r,char*msg):circle(cx,cy,r),text(msg)................????还是列表初始化,与2相同。回答你构造函数定义的问题:构造函数还有其他几种方式定义,但是个人感觉这种比较方便,还有,一般程序习惯把调用父类构造函数写在{}外而把自己新增的属性写在{}内。为什么能在别的类中定义point类的对象作为私有变量:Piont类与其他的int类用法是一样的,其实int类不也是可以作为私有成员吗,一个类型定义后完全可以看成独立的东西了。你说的私有问题是在类外不能进行调用,比如:如果你的piont类中的xy是私有的话,那么你就不能在point对象piont1中这样用,point1.x,这样是没有权限的。而point1是可以用的,他是一个整体,是point类的一个实例对象。希望对你有用。2023-06-09 19:49:213
小问题~~c++~~~私有函数的变量如何调用
cout<<p->i<<ednl;2023-06-09 19:49:304
C++中,如何给一个类中的私有变量赋值?
可以在public里再定义一个输入的函数set(){cin>>x>>y;}2023-06-09 19:49:475