对象私有成员的使用条件

原创 2016年08月31日 11:48:28

一、本类中,或外部类中

public class Outer {
class Inner{
private int a = 5;

private void f(){
System.out.println("abc");
}
/*
* 一个类的私有成员在本类外部是不可见的,即使在本类外部创建了本类对象,也不能调用私有成员,除非开放了一个公有接口
* 一个类的内部类的私有成员在外部类获得内部类对象后是可以调用的

* 可以这样理解:
* 比方说两个独立的人张三和李四,李四有点石成金的技能
* 张三抓住了李四(相当于获得了李四这个对象),他强迫使用李四的点石成金的方法,但李四很有骨气,宁死也不给他用
* 最后迫于无奈,李四说我可以给你变金子,但必须答应我的某些条件..

* 如果李四是张三的忠心耿耿的手下
* 那么张三有了李四,就可以无条件的使用李四的点石成金

*/
}

public Inner getInner(){
// Inner inner = new Inner();
// return inner;
return this.new Inner();
}

public static void main(String[] args) {
Inner inner = new Outer().getInner();
System.out.println(inner.a);
inner.f();
}
}

二、其他类中

import day13.other.Outer.Inner;


public class Other {
public static void main(String[] args) {
Inner i = new Outer().getInner();
i.f(); //报错
System.out.println(i.a); //报错
}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

原则上,C++类中私有变量不允许在类之外的其他任何地方访问,一般来说功能完善的类都会提供get,set方法来操作类属性值,但如果没有get、set方法都没有提供,比如使用的是第三方提供的.o(或者动态...

Java反射机制,通过对象访问调用类的私有成员属性或者方法

Class是对类的抽象(每个类对应一份字节码)。一般情况下,比如A a = new A();直接通过a对象调用方法即可。但是在有些场景下,这样是做不到的,比如类名A是通过参数传递过来的,这时候你就无法...

对象能够直接访问其私有成员变量

转自:http://www.cnblogs.com/dwdxdy/archive/2012/07/17/2595741.html【C++】 私有成员变量的理解 私有成员变量的概念,在脑海中的...

访问对象私有成员方式的比较

在程序中,难免要访问某个对象的私有成员。那么以前实现这类功能的方法有两种,第一种方法最简单,就是把成员访问符从“private”改为“public”即可;而另一个就是提供公有的成员访问函数来进行访问。...
  • wnety
  • wnety
  • 2011-06-27 13:47
  • 511

同一个类不同对象,可以互相访问对方的私有成员而不通过get()或set()

今天看C++的书看到有一个类,类中定义了静态私有的本类对象,然后默认的构造函数是用此静态对象直接用 . 运算符访问自身成员来初始化的。成员的访问控制符是针对类而言的,而不是对象的,下面用C++验证

JavaSE第六十四讲:使用反射机制调用对象的私有方法、访问对象的私有成员变量

1. 反射打破面向对象的封装性,以下例子实现外部类通过反射机制访问类的私有方法: package com.ahuier.reflect; public class Private { /...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)