class A
{
   xxxx xxx int ID;
   public A(id)
   {
      ID = id;
   }
}
让ID这个变量只能被读取值,无法被修改,就像C#中的class A
{
   private int id;
   public A(id)
   {
     this.id = id;
   }
   public int ID
   {
     get{return id;}
   }
}

解决方案 »

  1.   

    private final int ID;
     
    public int A(int id) {
       ID = id;
       return ID;
    }
     定义成final,一旦方法被调用传递进值就不能被改变了
      

  2.   

    一样的啊,定义成私有变量,然后写get函数获取,不写set函数设置就行了
      

  3.   

    写成private就可以了,并且不提供修改的接口给外界就ok了
      

  4.   


    C#中那是属性,不是方法,可能java只能用方法来实现
      

  5.   

    定义为私有的 提供给外部get()方法就可以
    或者定义为final int a = 0;final 就是说明此变量不可以改变
      

  6.   

    设置私有变量,只提供一个get接口就行。private int id;public A(id){
        this.id=id;
    }public int getId(){
        return(id);
    }PS:
    1.关于修饰符:Java类成员的默认访问修饰为所谓的默认类型(因为是默认的,所以SUN就懒得给它定关键字了),其访问权限与C++中的friendly一致。所以在Java类中定义私有成员必须加private关键字。
    C#类成员变量的默认访问修饰为private,成员方法的默认访问修饰为internal,所以在C#类中定义私有成员变量完全可以省略修饰符。class A
    {
       int id;
       public A(id)
       {
         this.id = id;
       }
       public int ID
       {
         get{return id;}
       }
    }2.关于C#中的“属性”,在下的个人观点认为其应当是对方法的一种封装。据说由于这种封装机制,使得其访问效率要高于一般方法(内联函数?)。例如对一属性:int ID
    {
        set{}
        get{return(1);}
    }用ildasm对其反编译可以看出它对应一个句柄ID与其内部的两个函数:
    get_ID与set_ID
      

  7.   

    final就行了,在构造函数进行初始化
    对 final int XXX;写void setXXX(int X)
    写法是错的,都通不过编译
      

  8.   

    或者就用ls说的用final,最好用配置文件管理,免得以后代码重构还得动代码。