应该是有其他的意义吧。
public class Test2
{
private MyObj obj;
public Test2()
{
this.obj=new MyObj("Sailing","21");
this.doS(obj);
}
private void doS(final MyObj n)
{
//n.setName("Vincent");
//n.setAge("21");
System.out.println(n.getName());
System.out.println(n.getAge());
}
public static void main(String args[])
{
new Test2();
}
}
class MyObj
{
private String name;
private String age;
public MyObj()
{
}
public MyObj(String na,String ag)
{
this.setName(na);
this.setAge(ag);
}
public void setName(String na)
{
this.name=na;
}
public String getName()
{
return this.name;
}
public void setAge(String ag)
{
this.age=ag;
}
public String getAge()
{
return this.age;
}
}
这一段代码编译与运行就很正常~~~~~~~
而且对于String和基本数据类型就更没有问题了应该是有别的意思,如果加上final有意义的话。

解决方案 »

  1.   

    这段代码是没问题,可我想要知道,究竟和一般数据类型加上 final 的效果有什么不同?
      

  2.   

    你这个是inner class的方法吧。
      

  3.   

    从软件工程的角度看,他目的主要是想传一个value or Object reference.使使用者不能改变它的value or reference.
      

  4.   

    按照我对你问题理解说一下:
    final+基本类型 说明此基本类型的值不可变.final+类类型  说明此类的实例引用不可变,但属性可变.final+方法    说明此方法是不可覆写的.final+类      说明该类不可被继承