java实现的困惑?等待

05-05-19 wljun1024
请问各位下面两个的实现有啥区别?孰优孰劣?

public class A
{
  public String strA ;
  public String strB ;
  public A
  {
  }
}
<p>

public class A
{
  private String strA ;
  private String strB ;
  public A
  {
  }
  
  public void setA(String strParam)
  {
    strA = strParam
  }
  
  public void setB(String strParam)
  {
    strB = strParam
  }

  public String getA()
  {
    return strA ;
  }

  public String getB()
  {
    return strB ;
  }
}
<p>

anonymous
2005-05-19 11:12
一个是构造方法赋值 一个set方法,看你喜欢了。

wljun1024
2005-05-19 15:24
老大们,我关心的是两个的实现有啥区别?孰优孰劣?

MiMiEye
2005-06-20 18:01
看你的A实例等不等着用。急着用就第一种,不着急用第二种。

liaowufeng
2005-07-10 10:56
几点区别,

1 从JAVA BEAN规范说一下, 第一种不是标准的JAVA BEAN写法,第二种则是。

2 从使用方法说一下,第一种这么使用

A a = new A();

设置值时:

a.strA = "goods";

a.strB = 'goods';

获取值时:

String a1 = a.strA;

String a2 = a.strB;

第二种这么使用:

A a = new A();

设置值时:

a.setA("goods");

a.setB("goods");

获取值时:

String a1 = a.getA();

String a2 = a.getB();

3 从以后设置重构和安全性说一下,

如果使用第一种写法,我设计要求属性strA是可获取值,不可设置值时,将没办法完成。

第二种,则很简单,我可以把getA()方法为public 的,setA()为private的,或者在getA(),setA() 中再写判断逻辑。

4 从生成的WIN平台的汇编代说一下,当然是第一种省代码量呀。(本人见解).

最后,所以为了规范及设计重构方便,使用JAVA BEAN规范是最好的(人家都为你想到了,你还在问吗。)

gaofangjian
2005-08-24 11:03
第一种写法不好,把类内部的变量直接暴露在外面,破坏类的封装性。

猜你喜欢