A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wuhyoung 中级黑马   /  2014-6-5 21:17  /  1826 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

方法中含有内部类,能否在方法外访问次内部类呢?
  1. class Outer{
  2.         int x = 3;
  3.        
  4.         public void method(){
  5.                 final int y = 4;
  6.                 class Inner{
  7.                         void function(){
  8.                                 System.out.println(x);
  9.                                 System.out.println(y);
  10.                         }
  11.                 }
  12.         }
  13. }
复制代码

如上代码,能否在方法外访问内部类Inner呢?

12 个回复

倒序浏览
这个能创建嘛?来学习学习.
回复 使用道具 举报 1 0
你把代码测试一下,看看效果不就知道了
回复 使用道具 举报 1 0
本帖最后由 xp8812 于 2014-6-5 22:02 编辑

1.在外部类的一般方法中创建:直接使用Inner in = new Inner();
2.在外部类的静态方法中创建:以为静态方法无法访问非静态对象,所以Inner in = new Outer().new Inner();这样创建,即创建一个外部类的对象再用外部类对象去创建内部类对象。
3.在别的类中,使用Outer.Inner in = new Outer().new Inner();创建
回复 使用道具 举报 1 1
xp8812 发表于 2014-6-5 22:00
1.在外部类的一般方法中创建:直接使用Inner in = new Inner();
2.在外部类的静态方法中创建:以为静态方法 ...

他的内部类在方法中啊.这怎么可能创建啊.
回复 使用道具 举报 1 0
内部类是个难理解的知识点啊,我也经常晕晕乎乎的
回复 使用道具 举报
xp8812 发表于 2014-6-5 22:00
1.在外部类的一般方法中创建:直接使用Inner in = new Inner();
2.在外部类的静态方法中创建:以为静态方法 ...

在方法外的创建方法中的内部类
回复 使用道具 举报
xp8812 发表于 2014-6-5 21:58
你把代码测试一下,看看效果不就知道了

我是想问一下在方法外如何实例化方法中的内部类,
回复 使用道具 举报
局部位置的内部类,在其他的类中应该不能调用把? 要想调用function()方法只能在本类中创建一个对象调用,在其他类中调用method()的方法把。
回复 使用道具 举报
其他方法应该是不能调用的,如果想让其他方法调用就不要定义到方法里了,定义内部类到类里面,这样内部类可以作为类成员来使用
回复 使用道具 举报
你这个应该叫局部类,其作用范围和局部变量一样。
回复 使用道具 举报
  1. class Outer{
  2.        
  3.         class Inner{
  4.                 void show(){
  5.                         System.out.println("class Inner void show(){}");
  6.                 }
  7.         }
  8. }
  9. public class Demo
  10. {
  11.         public static void main(String[] args)
  12.         {
  13.                         Outer.Inner o_i=new Outer().new Inner();
  14.                         o_i.show();
  15.         }
  16. }
复制代码
回复 使用道具 举报
内部类作为局部成员的时候,在局部范围外是不能被访问的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马