黑马程序员技术交流社区

标题: 内部类被private修饰之后还能被外部类的方法调用了吗? [打印本页]

作者: 康师傅-蛋黄派    时间: 2014-10-22 20:23
标题: 内部类被private修饰之后还能被外部类的方法调用了吗?
内部类被private修饰之后还能被外部类的方法调用了吗?

作者: 刘家斌    时间: 2014-10-22 20:37
应该是不能
作者: 香草芭芙    时间: 2014-10-22 20:54
  1. package com.itheima.net;

  2. public class Game9
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 new Temp().method();
  7.         }
  8. }
  9. class Temp
  10. {
  11.         private class In
  12.         {
  13.                 // ---
  14.                 int a = 11;
  15.                 int b = 22;
  16.                 In()
  17.                 {
  18.                         System.out.println("我是In类的构造函数");
  19.                 }
  20.                 void methodIn()
  21.                 {
  22.                         System.out.println("我是In类的method");
  23.                 }
  24.         }
  25.         Temp()
  26.         {
  27.                 // ---
  28.                 System.out.println("我是Temp的构造函数");
  29.         }
  30.         public void method()
  31.         {
  32.                 // ---
  33.                 In in = new In();
  34.                 in.methodIn();
  35.                 System.out.println("我是Temp的method");
  36.         }
  37. }
复制代码

可以用啊. 内部类成了外部类的成员, 当然可以使用private修饰的成员
作者: chen578157939    时间: 2014-10-22 21:46
应该是不能哦
作者: 康师傅-蛋黄派    时间: 2014-10-22 22:09
刘家斌 发表于 2014-10-22 20:37
应该是不能

事实是可以的。我也不太明白,正常外部类(非其他外部类)访问内部类是要建立内部类对象,而内部类private后却能在外部类里面建立内部类对象。
作者: 康师傅-蛋黄派    时间: 2014-10-22 22:11
香草芭芙 发表于 2014-10-22 20:54
可以用啊. 内部类成了外部类的成员, 当然可以使用private修饰的成员

哦,那是不是内部类private后是可以建立对象的,其他类都是不可以的,这算是一个特殊的点吗?
作者: 康师傅-蛋黄派    时间: 2014-10-22 22:13
chen578157939 发表于 2014-10-22 21:46
应该是不能哦

事实是可以的。我也不太明白,正常外部类(非其他外部类)访问内部类是要建立内部类对象,而内部类private后却能在外部类里面建立内部类对象。
作者: 刘家斌    时间: 2014-10-22 22:16
康师傅-蛋黄派 发表于 2014-10-22 22:09
事实是可以的。我也不太明白,正常外部类(非其他外部类)访问内部类是要建立内部类对象,而内部类privat ...

哦,对,是可以的,我想成了外部类以外的其他类了
作者: Eric1225    时间: 2014-10-22 22:23
当然不能
作者: 践行渐远    时间: 2014-10-22 23:50
肯定是可以的
作者: cs8630323    时间: 2014-10-23 07:44
你内部类都能烦我我外部类的私有域,还不让我外部类访问你的私有域?还能不能讲理了!!
作者: zhappy    时间: 2014-10-23 08:27
不能了。
作者: 面具猴    时间: 2014-10-23 08:45
私有的内部类就好像私有的成员变量、私有的成员方法一样不能被外部直接调用,
必须通过嵌套它的类的一个public的方法实例化内部类并调用其成员的方式才能间接访问内部类。。
作者: 沙拉很好吃    时间: 2014-10-23 09:41
貌似是不能的吧,private修饰符应该是只在当前class下的权限吧
作者: 贾浩田    时间: 2014-10-24 00:51
可以啊,对于外部类只有(default和public两个权限),但是对于内部类(无论是静态内部类还是成员内部类)则可以有private属性,并且修饰了private的内部类不能本外部类的其他类访问




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2