`

访问类本身的私有变量,很不理解的地方

    博客分类:
  • java
 
阅读更多
网上看到这个文章,表示没理解.http://my.oschina.net/magicly007/blog/164191

看代码吧:


class TestPrivate2 {
	private int n;
}

public class TestPrivate {

	private int n;

	public void accessOtherPrivate(TestPrivate other) {
		other.n = 10;//这里是可以访问同类型的其他对象other的private字段的
		System.out.println(other.n);
	}
	
	public void accessOtherPrivate(TestPrivate2 other) {
//		other.n = 10;//编译错误
//		System.out.println(other.n);//编译错误
	}
	public static void main(String[] args) {
		new TestPrivate().accessOtherPrivate(new TestPrivate());
	}

}



0
1
分享到:
评论
2 楼 huangyunbin 2013-10-03  
arthur8 写道
第一个方法与你要访问的参数的field都在同一个TestPrivate类中,所以是可以的,但是第二个不再是同一个类,当然不能使用instance.privatedfield访问了。

为什么是同一个类就可以访问私有变量。参数其实是对象吧,对象怎么能访问私有变量?
1 楼 arthur8 2013-10-01  
第一个方法与你要访问的参数的field都在同一个TestPrivate类中,所以是可以的,但是第二个不再是同一个类,当然不能使用instance.privatedfield访问了。

相关推荐

    C#net反射实现访问类中的私有变量或者方法

    C#net反射实现访问类中的私有变量或者方法

    Java反射访问私有变量和私有方法.doc

    Java 反射访问私有变量和私有方法 Java 反射机制是 Java 语言中的一种强大的工具,使得我们可以在运行时装配代码,而无需在对象之间进行源代码链接,从而使代码更具灵活性。在实际测试中,我们经常需要访问类的非...

    python 类的私有变量和私有方法.docx

    只能允许这个类本身进行访问了,连子类也不可以用于命名一个类属性(类变量),调用时名字被改变(在类FooBar内部,__boo变成_FooBar__boo,如self._FooBar__boo) 3、 __xx__定义的是特列方法。用户控制的命名空间内...

    C++访问类中私有成员变量的方法

    原则上,C++类中私有变量不允许在类之外的其他任何地方访问,一般来说功能完善的类都会提供get,set方法来操作类属性值,还有是是通过友元访问。但是!但如果没有get、set方法都没有提供,也没有定义友元,比如使用...

    易语言从外部访问类的私有成员

    易语言从外部访问类的私有成员源码,从外部访问类的私有成员,私有成员外部初始化,测试_输出私有成员的值,子程序_说明,取变量数据地址_ASM,变量_ASM变量地址还原数据指针,变量_ASM变量地址指向新数据地址

    类私有变量的“偷窃”以及 构造函数“私有化”的实验

    1、类中声明的私有变量 都有谁可以访问?“私有”是对谁而言的?是类本身还是类的实例? msdn 中说: private Class members declared as private can be used only by member functions and friends (classes or ...

    反射修改私有成员变量例子

    使用 `setAccessible()` 方法设置私有成员变量的可访问性为 true。 4. 修改私有成员变量的值 使用 `set()` 方法修改私有成员变量的值。 实例代码 在以下代码中,我们将使用反射机制来修改私有成员变量的值: ```...

    e语言-类的私有成员实现从外部访问

    可以直接用赋值的方式来修改,但易语言只有私有成员,无法直接用赋值的方式来改动私有成员的数据值,这个例程演示了如何把内部私有成员的数据地址跟外部变量的变量地址打通,从而间接实现从类外部修改内部私有成员的...

    Java对类私有变量的暴力反射技术讲解

    Java对类私有变量的暴力反射技术讲解是Java语言中的一种技术,用于访问和修改类中的私有变量。私有变量是指在类中声明的私有成员变量,以private关键字修饰的变量。这些变量只能在声明的类中访问,外部类或对象无法...

    外部访问类的私有成员+修改虚表

    在C++编程语言中,"外部访问类的私有成员+修改虚表"是一个涉及到类的封装、继承和多态性的高级话题。首先,我们来理解每个关键词的意义: 1. **私有成员(Private Members)**:在面向对象编程中,类的成员变量和...

    accessive包-帮助访问私有参数和私有变量

    2. **设置和获取私有变量**:通过`accessive`,可以轻松地读取或修改对象的私有字段值,这对于验证对象状态或者模拟特定条件非常有用。 3. **兼容性**:`accessive`设计时考虑了与JUnit和其他测试框架的兼容性,...

    c++访问私有private成员变量的常用方法

    在 C++ 编程中,private 成员变量是类的内部实现细节,不能被外部直接访问,这是为了保护类的封装性和安全性。然而,在某些情况下,我们需要访问私有成员变量,例如在测试、调试或特殊业务逻辑中。本文将介绍四种...

    浅谈Python中的私有变量

    私有变量表示方法 在变量前加上两个下划线的是私有变量。 class Teacher(): def __init__(self,name,level): self.__name=name self.__level=level #获取老师的等级 def get_level(self): return self.__...

    易语言源码从外部访问易语言类的私有成员源码.rar

    易语言源码从外部访问易语言类的私有成员源码.rar 易语言源码从外部访问易语言类的私有成员源码.rar 易语言源码从外部访问易语言类的私有成员源码.rar 易语言源码从外部访问易语言类的私有成员源码.rar 易语言...

    View类变量的访问

    这样,调用者可以通过`View`对象间接访问变量,而不是直接访问类的内部。 4. **使用回调函数**:`View`类可以接受一个回调函数,当需要更新变量时,调用这个函数。这使得其他类能够参与`View`的变量更新过程,而不...

    Python面向对象程序设计之私有变量,私有方法原理与用法分析

    本文实例讲述了Python面向对象程序设计之私有变量,私有方法原理... 实际上,如果真要访问私有变量和私有方法,也是可以访问的,因为实际上私有化的操作只是将变量或函数名更改了而已: 下例中由private_value变为了_

    类的私有成员实现从外部访问

    利用自定义数据可以把单个的私有成员打包,然后将外部变量的地址指向类内部的私有成员数据地址,就可以实现修改外部变量的同时,类内部的私有成员数据也发生了变化。从而实现了类内部私有成员的数据可以直接操作的...

    Java实例变量、类变量、局部变量

    当一个对象将类变量进行修改后,这个类的其他所有对象访问这个类变量都是修改之后的值。当实例变量修改后,只有当前对象的值被修改了,其他对象的依然不变,变的只是当前对象的实例变量的值。 局部变量,即定义在...

    类变量、全局变量、实例变量, 多态、为什么ruby、ruby编码规范

    全局变量以`$`前缀标识,它们在整个程序的任何地方都可被访问。全局变量的使用应谨慎,因为它们可能导致意外的副作用和难以调试的问题。通常,推荐使用局部变量和实例/类变量来代替全局变量。 ```ruby $global_var ...

Global site tag (gtag.js) - Google Analytics