BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #19327同步于 2011/7/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

问个访问控制的问题

watershed
2011/7/12镜像同步13 回复
在C++里面: private:只能由1.该类中的函数、2.其友元函数访问。 不能被任何其他访问,该类的对象也不能访问。 protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。 但不能被该类的对象访问。 public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。 明确提到了类的对象的访问权限。 而在Java中,我在网上搜了一下: 1、同一类中:private ,friendly ,protected , public 修饰可以访问; 2、同一包的类中friendly ,protected , public 修饰可以访问; 3、子类可以访问protected , public 修饰的父类; 4、public可以供所有类的访问。 基本都是上面描述的。 并没有对类的对象的访问权限进行说明? 我想问下,JAVA里面类的对象对其成员和函数的访问权限是怎么样的啊? 谢谢啦!
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
buptlong机器人#1 · 2011/7/12
这个问题,我真想不出用什么语言来表达 【 在 watershed (watershed) 的大作中提到: 】 : 在C++里面: : private:只能由1.该类中的函数、2.其友元函数访问。 : 不能被任何其他访问,该类的对象也不能访问。 : ...................
ox机器人#2 · 2011/7/12
【 在 watershed 的大作中提到: 】 : 在C++里面: : private:只能由1.该类中的函数、2.其友元函数访问。 : 不能被任何其他访问,该类的对象也不能访问。 : ...................
watershed机器人#3 · 2011/7/12
其实我也觉得我没有把问题描述清楚。。。 【 在 buptlong 的大作中提到: 】 : 这个问题,我真想不出用什么语言来表达
watershed机器人#4 · 2011/7/12
这个表格我搜到过,我想描述的问题是: 在C++里,对类的成员或者函数,类和类的对象的访问权限是不同的 搜到的资料里面也都对类的对象的访问权限有明确说明 但是在JAVA里,搜到的资料如你所贴出的:类,同包的其他类,子类,既不同包也不是子类的其他类。没有提到类的对象的概念。 C++和java里面的这个不同让我很迷惑。 PS:在另外一个类里面要访问其他类的成员或者函数,是需要声明一个其他类的对象实例,然后通过这个对象去访问?那么,访问权限跟类还是类的对象无关?只跟声明这个对象的位置在什么地方有关? 。。。好吧,我也越来越觉得我问题的描述有问题。 总而言之,C++访问控制的资料里明确的提到了类的对象的概念,而且跟类体内时不同的,但是JAVA访问控制的资料里,我没有看到类的对象的描述。。。 【 在 ox 的大作中提到: 】 :
buptlong机器人#5 · 2011/7/12
我只能说,一般而言,Java类的成员都会声明为私有的,但是提供get/set方法来访问 【 在 watershed (watershed) 的大作中提到: 】 : 这个表格我搜到过,我想描述的问题是: : 在C++里,对类的成员或者函数,类和类的对象的访问权限是不同的 : 搜到的资料里面也都对类的对象的访问权限有明确说明 : ...................
ox机器人#6 · 2011/7/12
还是没太看明白你的意思 非静态成员通过实例化对象来访问 静态成员通过类名访问 访问权限控制两者的方式是一样的,通过关键字private,protected,public,默认分成四种 【 在 watershed (watershed) 的大作中提到: 】 : 这个表格我搜到过,我想描述的问题是: : 在C++里,对类的成员或者函数,类和类的对象的访问权限是不同的 : 搜到的资料里面也都对类的对象的访问权限有明确说明 : ...................
ox机器人#7 · 2011/7/12
PS: 个人建议,学java的话,不要总被C++的思维局限,并试图使用C++的设计理念来理解Java的设计,虽然都是面向对象的语言,但是两者还是有很大不同的 【 在 watershed (watershed) 的大作中提到: 】 : 这个表格我搜到过,我想描述的问题是: : 在C++里,对类的成员或者函数,类和类的对象的访问权限是不同的 : 搜到的资料里面也都对类的对象的访问权限有明确说明 : ...................
buptlong机器人#8 · 2011/7/12
c++一窍不通的飘过 【 在 ox (小贝) 的大作中提到: 】 : PS: 个人建议,学java的话,不要总被C++的思维局限,并试图使用C++的设计理念来理解Java的设计,虽然都是面向对象的语言,但是两者还是有很大不同的
watershed机器人#9 · 2011/7/12
我举个例子吧:C++里面 protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。 但不能被该类的对象访问。 class A { protected: int a; void seta(int n) { a = n; //正确 } }; A temp; temp.a = 0; //错误,无法访问 类和类的对象对其成员或者函数的访问权限是不同的,并且资料里面有明确的说明,明确地提到类的对象的情况。 但是JAVA我看到的资料讲到访问控制时,几乎没有提到过类的对象的概念。 【 在 ox 的大作中提到: 】 : 还是没太看明白你的意思 : 非静态成员通过实例化对象来访问 : 静态成员通过类名访问 : ...................