`

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

    博客分类:
  • 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#中的反射机制来访问类中的私有变量或方法。通过一个具体的示例代码,我们将详细了解反射的基本概念、使用场景以及如何具体操作。 ### 一、C#反射机制简介 #### 1.1 什么是...

    C# 公有变量 私有变量 静态变量

    与公有变量相反,私有变量只能在声明它们的类内部访问。这是封装原则的体现,有助于保护数据不被外部代码随意修改。例如: ```csharp public class MyClass { private int PrivateVar = 10; // 私有变量 public ...

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

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

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

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

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

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

    java * 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class

    提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,java * 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,java * 反射工具类. 提供调用getter/...

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

    当我们尝试访问`pub`类的私有变量`__info`和方法`__func2`时,会收到`AttributeError`,因为它们是私有的。然而,我们可以通过定义公共方法(如`get`)来间接访问私有变量。`dir(a)`显示了实例`a`的所有可访问属性,...

    java 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class

    提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实类等工具函数.反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class, 被AOP过的真实...

    js类中的公有变量和私有变量

    在JavaScript中,理解类的公有变量与私有变量的概念对于编写高效、安全的代码至关重要。本文将通过具体的实例来深入探讨这两个概念,并解释它们如何影响对象的行为。 #### 公有变量与私有变量的基本概念 在...

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

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

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

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

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

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

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

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

    Python私有变量的用法共1页.pdf.zip

    此外,理解Python的私有变量对于类的设计和继承非常重要。在子类中,如果重写父类的私有变量,尽管它们有相同的名称,但实际上是不同的变量。因为私有变量在每个类实例中都是独一无二的,不会在子类与父类之间共享:...

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

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

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

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

    【JavaScript源代码】详解ES6实现类的私有变量的几种写法.docx

    这种方式下,私有变量对于类的外部是不可见的,但可以通过特定的方法访问。 ##### **2.1 基础闭包实现** 考虑以下示例: ```javascript class Person { constructor(name) { let _num = 100; this.name = name; ...

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

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

    Java反射机制修改私有成员变量的实现_Reflection

    在Java中,私有成员变量通常被视为封装的一部分,不被外部类直接访问。然而,通过反射,我们可以绕过这种限制。 以下是详细步骤: 1. **获取Class对象**:首先,我们需要获取到目标类的Class对象,这可以通过`...

Global site tag (gtag.js) - Google Analytics