博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
私有域的访问权限
阅读量:4051 次
发布时间:2019-05-25

本文共 760 字,大约阅读时间需要 2 分钟。

-- Start

我们都知道对象的私有变量只有它自己能访问, 其他任何对象都不能访问, 然而如果你看 String 类的源代码, 你会发现如下的代码.

private final char value[];private final int offset;private final int count;public boolean equals(Object anObject) {	if (this == anObject) {		return true;	}	if (anObject instanceof String) {		String anotherString = (String) anObject;		int n = count;		if (n == anotherString.count) { // 注意此处			char v1[] = value;			char v2[] = anotherString.value; // 注意此处			int i = offset;			int j = anotherString.offset; // 注意此处			while (n-- != 0) {			    if (v1[i++] != v2[j++])				return false;			}		return true;		}	}	return false;}
原因是 anotherString 是 String 类对象,而 String 类的方法可以访问 String 类的任何一个对象的私有域.

--更多参见:

-- 声 明:转载请注明出处
-- Last Updated on 2012-05-16
-- Written by ShangBo on 2012-05-16
-- End

你可能感兴趣的文章
关于对象赋值及返回临时对象过程中的构造与析构
查看>>
VS 2005 CRT函数的安全性增强版本
查看>>
Visual Studio 2010:C++0x新特性
查看>>
drwtsn32.exe和adplus.vbs进行dump文件抓取
查看>>
cppcheck c++静态代码检查
查看>>
在C++中使用Lua
查看>>
一些socket的编程经验
查看>>
socket编程中select的使用
查看>>
可以在线C++编译的工具站点
查看>>
关于无人驾驶的过去、现在以及未来,看这篇文章就够了!
查看>>
所谓的进步和提升,就是完成认知升级
查看>>
为什么读了很多书,却学不到什么东西?
查看>>
长文干货:如何轻松应对工作中最棘手的13种场景?
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>
No.174 - LeetCode1305 - 合并两个搜索树
查看>>
No.175 - LeetCode1306
查看>>
No.176 - LeetCode1309
查看>>
No.182 - LeetCode1325 - C指针的魅力
查看>>
mysql:sql alter database修改数据库字符集
查看>>
mysql:sql truncate (清除表数据)
查看>>