对象私有成员的使用条件

原创 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); //报错
}
}

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

利用Java反射机制获得私有成员

1.Java对于一些类的封装使得私有属性无法在类外获得,但是java可以于运行时加载、探知、使用编译期间完全未知的classes,利用安全管理器及反射,可以在不修改源码 的基础上访问私有成员。 举例:...
  • apxar
  • apxar
  • 2013年09月26日 22:49
  • 4961

Python类的私有成员

#!/usr/bin/env python #-*- coding:utf8 -*- """ Python中类的成员函数、成员变量默认都是公开的(public), 而且Python中没有类似p...
  • ajaxuser
  • ajaxuser
  • 2012年07月25日 20:21
  • 3178

在重载运算符时,类的对象可以直接访问私有成员解惑

以前对这里确实有点疑惑,但是最近在看
  • IAccepted
  • IAccepted
  • 2014年06月26日 16:47
  • 1941

C++中类的访问权限针对的是类而不是对象!(为什么类中的函数可以访问对象的私有成员?)

我们首先看一段程序:class A { private: int i; public: A(int i): i(i) {} void print(A a) { ...
  • fukaibo121
  • fukaibo121
  • 2017年06月22日 21:18
  • 1033

C++本类可以访问本身类的私有成员(即拷贝构造函数可以访问本身对象的私有成员)

#include #include using namespace std; class String { public: String(const char *str=NULL); Str...
  • jianghuihong2012
  • jianghuihong2012
  • 2014年04月10日 21:59
  • 939

js私有成员定义和访问

Javascript  根本上是和对象相关的。数组是对象。函数是对象。对象是对象。那什么是 对象呢?对象是名 - 值对的集合。名是字符串,值可以是字符串,数字,布尔值或者对象 ( 包 括数组和函数 )...
  • fyhjuyol
  • fyhjuyol
  • 2015年05月07日 17:53
  • 615

python 类私有成员

Python中默认的成员函数,成员变量都是公开的(public),而且python中没有类似public,private等关键词来修饰成员函数,成员变量。 在python中定义私有变量只需要在变...
  • mafuli007
  • mafuli007
  • 2012年07月24日 08:01
  • 2314

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

转自:http://www.cnblogs.com/dwdxdy/archive/2012/07/17/2595741.html【C++】 私有成员变量的理解 私有成员变量的概念,在脑海中的...
  • CHENGUANCHI
  • CHENGUANCHI
  • 2014年02月21日 13:49
  • 2469

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

类的对象不能直接访问类声明的私有成员变量,否则破坏了信息隐藏的目的。 在C++中,为了防止某些数据成员或成员函数从外部被直接访问,可以将它们声明为private,这样编译器会阻止任何来自外部非友元的...
  • u010418035
  • u010418035
  • 2015年05月04日 20:22
  • 7608

Python3 类 私有性 公有性

类的私有属性:__private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。12类的方法:在类地内...
  • qq_19399235
  • qq_19399235
  • 2017年07月26日 14:55
  • 339
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对象私有成员的使用条件
举报原因:
原因补充:

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