关于局部内部类实例化的问题

问题描述

classOut{voidshow(){classIn{voidsay(){System.out.println(5);}}newIn();}}classDemo{publicstaticvoidmain(String[]args){?????????}}请问main方法中如何创建classIn的实例对象调用classIn中的say方法呢?

解决方案

解决方案二:
不能调用吧,classin中的say方法为局部内部类中的方法,只作用在这个局部内部类中,外面不能调用了
解决方案三:
你是想要这样的效果吗classOut{voidshow(){classIn{voidsay(){System.out.println(5);}}newIn().say();}}publicclassDemo{publicstaticvoidmain(String[]arg){newOut().show();}}

解决方案四:
方法内部的类,怎么能够在方法外面调用呢,你是想测试内部类的什么特性呢?
解决方案五:
1楼已经给出答案了,局部内部类只能在该类中实例化,也只能调用该类内部的方法。是无法在外部类中实例化和调用的。
解决方案六:
/***@authorweinianjie*@date2014年7月24日*@time下午5:28:37*/publicclassTest{publicstaticvoidmain(String[]args){newOut().newIn().say();}}classOut{voidshow(){System.out.println("sayout");}classIn{publicvoidsay(){System.out.println("sayin");}}}

解决方案七:
该回复于2014-09-22 08:44:57被版主删除

时间: 2024-11-03 12:59:59

关于局部内部类实例化的问题的相关文章

Java多继承方法(名)冲突和成员内部类、局部内部类、静态内部类、匿名内部类

Java内部类     ①内部类是在一个java类体内,再定义一个类,即外部类的内部再定义一个类(相对的).      ②内部类分为四类:          成员内部类.局部内部类.静态内部类.匿名内部类      ③内部类作为外部类的一个成员,并依附于外部类而存在.包括:成员内部类.局部内部类.匿名内部类      ④内部类可以由private.public.protected.default访问修饰符和static修饰:      ⑤而外部类,即和public类平行的,只能有default修

为什么局部内部类只能访问外围方法的常量?

问题描述 为什么局部内部类只能访问外围方法的常量? 解决方案 解决方案二:内部类其实就是另外一个类,一个类访问另外一个的方法或变量的时候必须要实例化,除非它是静态的.解决方案三:路过,学习一下解决方案四:因为这样可能会访问到没有初始化的变量

java内部类实例化错误

问题描述 java内部类实例化错误 请帮我看看下面出错的原因是什么?(粗体字部分) 为什么静态方法里不能直接调用内部类,成员方法却可以? package com.zcl5; class Quetion1 { class ATM { int myMoney = 100; int viewMoney(){ return myMoney; } void outMoney(int money){ myMoney=myMoney-money; } } public void m1(){ ATM atm=n

接口-JAVA抽象的局部内部类怎么用?

问题描述 JAVA抽象的局部内部类怎么用? 刚刚试了一下,发现抽象的局部内部没有报错,可是不能用来继承. 设定为接口类也会报错,那为什么抽象的能呢.? 解决方案 局部内部类只为其所在的类服务,相当于一个私有类,设为抽象类,其他类是不可能继承的:一般只会在该类创建的对象只会被使用一次的时候才会使用局部内部类这种方式:设为抽象类或者接口根本毫无任何意义 解决方案二: 局部内部类,感觉好高大上.... 不能用来继承是什么意思,是指子类无法访问么?子类不能访问父类的private,可以访问protect

匿名内部类属于内部类的一种吗,与局部内部类和成员内部类如何区别

问题描述 匿名内部类属于内部类的一种吗,与局部内部类和成员内部类如何区别 匿名内部类看了半天真心看不懂,不知如何理解,如何更好的应用,还要它是否属于内部类的一种,和成员内部类以及局部内部类有什么区别. 解决方案 匿名类对于Java来说,它主要用于传一个方法给一个函数. 在C++里面,我们直接传函数指针就可以了,在C#里面,我们可以用委托表示方法. 但是Java是一种臃肿和不合逻辑的语言,它没有这样的语法支持.于是为了传一个函数,我们不得不传一个拥有这个函数原型接口的类,里面包着这个函数. 于是J

java 内部类-java方法中定义的局部内部类问题

问题描述 java方法中定义的局部内部类问题 在方法中定义的内部类为什么只能访问方法中的final类型局部变量? package com.study; interface OutInterface2{ //定义一个接口 } class OuterClass3 { public OutInterface2 doit(final String x){//doit方法参数为final类型 //在doit()方法中定义一个内部类 class InnerClass2 implements OutInter

浅析Java中的嵌套类和内部类

以前看<Java编程思想>的时候,看到过嵌套类跟内部类的区别,不过后来就把它们的概念给忘了吧.昨天在看<数据结构与算法分析(Java语言版)>的时候,又遇到了这个概念,当时就很大的疑惑:嵌套类跟内部类有什么区别?只有是否有关键字static的区别吗? 所以今天找了个时间查了一下两者的详细区别,总结在这篇博客中,既方便自己的复习和学习,也启示他人吧. 1,概念: 定义在一个类内部的类,叫作"嵌套类".嵌套类分为两种:static的和非static的.后者又有一个专

java内部类总结

内部类是指在一个外部类的内部再定义一个类. 内部类作为外部类的一个成员,并且依附于外部类而存在的. 内部类可为静态,可用protected和private修饰.(而外部类不可以:外部类只能使用public和默认的). 内部类分为:成员内部类.局部内部类.静态内部类.匿名内部类 几种内部类的共性:A.内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号,比如Outer.class和Outer$Inner.class.B.内部类不能用普通的方

关于Java内部类的初始化

Java类的位置 1.在同个Java文件中,但不是内部类 public class Test { } class T{ } 这里的T不是内部类,只是在Test.java文件的内部而已. T 的修饰符只允许使用"public"."abstract"和"final". T的实例化过程和主类没有区别 T t = new T(); 就可以,在本Java文件和其他Java文件都是这样实例化.但是要注意,由于没有权限修饰符是默认包访问权限,所以只能在包内实例