如下:public class SetVaule{
private int a;
public SetVaule(){

} public void int setA(int a){
this.a = a;
}
public int getA(){
  retuern a
}
public void use(){
a = 3;
setA(3);
} }两种赋值方式,即a = 3;和setA(3);哪种效率高或者哪种安全性好

解决方案 »

  1.   


    public void int setA(int a){
                this.a = a;
            }写错了吧
      

  2.   

    即a = 3;和setA(3);楼主 需要先 看看 你的 a 是私有 变量,就是 说 在 你当前 类 中,你可以 选择 这2个方法 中 的 任何 一个,至于哪个效率搞,二者相差的 太少了 ,几乎可以 忽略不计 但 这 不是 重点,setA方法 是public 是公有的,让 别人用的,别人 用你的 类时,可以 a =3,是行不通的所以 setA方法 优势出来了,呵呵 
      

  3.   

    要说效率当然是a=3
    setA(3)调用了方法,还有建栈,入栈,出栈的过程
      

  4.   

    这个不能这样说啊,你的a是private修饰的,这个a在SetVaule类外不能用的,而setA(3)是public
    修饰的 可以在类外调用, 
      

  5.   

    都在一个class里   安全性一样
    直接 a=3 更快   
      

  6.   

    a=3 效率高了由于定义是私有的所有安全性也是最高的,但是考虑到其他类要调用的话,当然是要set()跟get()了。
      

  7.   

    如果要实现封装,这点效率可以忽略不计,它不会对程序影响太大。
    虽然a = 3比set()快,但是也要看场合。
      

  8.   

    简单说,类的内部赋值用a=3,其它类给a赋值用set虽然 a=3 比 set 快,但是效率上也不可能有质的飞跃;如果滥用a=3,在程序的封装性,安全性上都会受影响,面向对象的观点是,如果AB无继承关系,A类应该尽可能少的了解B类的属性。
      

  9.   

     a=3 效率高那是肯定的,只需向内存申请为其分配存储空间就OK了
     setA(3) 安全性要高点。