解决方案: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分可用分!
每天回帖即可获得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
}
}
这样可以不可以不就行了
直接回答
method(){
Class xxx{
//xxx
}
}
这样可以不可以不就行了
解决方案:5分
本人没试过,不过理论上本人觉得,原因是类的功能之一是代替以前的结构,所以类可以视作是一种数据类型,那在方法里定义一个数据类型应该也是合理的。
解决方案:3分
解决方案:2分
5楼回答的很好。就是那么个道理