请大家给点思路
以下是一个不可改变类的测试程序,构建3个类一个命名为” MutableClass”为可改变类,一个是“ImmutableClass“为不可改变类,另一个为“TestClass”使程序的打印结果和注释的一样。(提示TestClass为抽象父类或者是接口)
public class ImmutableClassTester { public static void main(String args[]) {
MutableClass mc = new MutableClass(1);
ImmutableClass iMc = new ImmutableClass(1);
int a = add(mc);
int b = add (iMc);
System.out.println(a);//打印2
System.out.println(b); //打印2
System.out.println(mc.getValue());//打印2
System.out.println(iMc.getValue());//打印1
} static int add (TestClass tc) {
return tc.plus(1).getValue();
}
}
尤其是静态类里的return tc.plus(1).getValue();这个我不知道怎么实现.
TestClass我建的是接口
以下是一个不可改变类的测试程序,构建3个类一个命名为” MutableClass”为可改变类,一个是“ImmutableClass“为不可改变类,另一个为“TestClass”使程序的打印结果和注释的一样。(提示TestClass为抽象父类或者是接口)
public class ImmutableClassTester { public static void main(String args[]) {
MutableClass mc = new MutableClass(1);
ImmutableClass iMc = new ImmutableClass(1);
int a = add(mc);
int b = add (iMc);
System.out.println(a);//打印2
System.out.println(b); //打印2
System.out.println(mc.getValue());//打印2
System.out.println(iMc.getValue());//打印1
} static int add (TestClass tc) {
return tc.plus(1).getValue();
}
}
尤其是静态类里的return tc.plus(1).getValue();这个我不知道怎么实现.
TestClass我建的是接口
解决方案 »
- 寻求简单方法!!
- java树形图求助
- 对象数据写入文件问题
- 在顺序栈上实现将输入的一个非负十进制数分别转换成二进制,八进制和十六进制输出。
- 实现applet和servelet通信,由applet发送数据给servelet,servelet查询数据库返回结果给applet?
- 怎么使用jdk来创建一个在Linux下有执行权限的文件呢?
- 简单问题
- 下面的线程到底用什么程序名来运行?是用Multi_Thread.java还是Multi_Thread fiel.java
- 根据队列长度动态确定开线程数的问题
- awt中有没有类似swing中JOptionPane的类?
- 用myeclipes写的程序,在命令窗口下java运行出错
- 求助
MutableClass implements TestClass
final ImmutableClass extends MutableClass 然后ImmutableClass 重写getValue方法不就行了么?
this.aInt = aInt;
return this ;
}
mc和iMc均为子类引用,那么在执行的时候直接执行子类的方法.把LZ的代码分成单个执行的顺序如下:mc.plus();
mc.getValue();
iMc.plus();
iMc.getValue();mc.getValue();
iMc.getValue();只看mc执行的记录:LZ的要求就是,当mc连续两次执行getValue()方法的时候,却得到不同的结果.这个不太可能,因为引用为子类引用,执行的方法是一样的.所以返回的结果也是一样的. -->不可能
int getValue(); TestClass plus(int i);
}class MutableClass implements TestClass {
int value; MutableClass(int i) {
value = i;
} public int getValue() {
return value;
} public TestClass plus(int i) {
value += i;
return new MutableClass(value);
}
}class ImmutableClass implements TestClass {
int value; ImmutableClass(int i) {
value = i;
}
public int getValue() {
return value;
} public TestClass plus(int i) {
return new ImmutableClass(value + i);
}
}
这样么?
是this
知道么
是this