java 类中定义方法_java中,能不能在方法中定义一个类呢

java中,能不能在方法中定义一个类呢?

假如能,请写个demo。

假如不能,请说明理由。

解决方案:5分

假如匿名内部类或这局部内部类要访问 方法的局部变量,这个变量要声明为final

public class A {

public static void main(String[] args) {

A a = new A();

a.methodA1();

a.methodA2();

}

public void methodA1(){

B b = new B(){

@Override

public void methodB() {

System.out.println("method in anonymous inner class");

}

};

b.methodB();

}

public void methodA2(){

class C extends B{

@Override

public void methodB() {

System.out.println("method in C");

}

}

C c = new C();

c.methodB();

}

}

class B{

public void methodB(){

System.out.println("method in B");

}

}

解决方案:5分

public class A {

public static void main(String[] args) {

A a = new A();

a.methodA1();

a.methodA2(true);

}

public void methodA1(){

final boolean bb = true;

B b = new B(){

@Override

public void methodB() {

System.out.println("method in anonymous inner class");

if(bb){

System.out.println("bb is true");

}

}

};

b.methodB();

}

public void methodA2(final boolean b){

class C extends B{

@Override

public void methodB() {

System.out.println("method in C");

if(b){

System.out.println("b is true");

}

}

}

C c = new C();

c.methodB();

}

}

class B{

public void methodB(){

System.out.println("method in B");

}

}

解决方案:5分

楼上已经给出了答案。

每天回帖即可获得100分可用分!

解决方案:5分

public class T{

public static void main(String[] args){

T t = new T();

t.say();

T.A a = t.new A();

a.say();

B b = new B();

b.say();

}

public void say(){

System.out.println("this is  T class");

A aa = new A();

aa.say();

B bb = new B();

bb.say();

}

class A{

public void say(){

System.out.println("this is A class");

}

}

}

class B{

public void say(){

System.out.println("this is B class");

}

}

输出结果:

this is  T class

this is A class

this is B class

this is A class

this is B class

解决方案:10分

人家不是问方法中能不能定义一个类吗?

直接回答

method(){

Class xxx{

//xxx

}

}

这样可以不可以不就行了

解决方案:5分

本人没试过,不过理论上本人觉得,原因是类的功能之一是代替以前的结构,所以类可以视作是一种数据类型,那在方法里定义一个数据类型应该也是合理的。

解决方案:3分

解决方案:2分

5楼回答的很好。就是那么个道理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值