????Java??????????????
???????????? ???????[ 2012/11/13 11:38:36 ] ????????
???????????д??????????????Щ??С??????????????????java?о?????????Щ????????
?????????????????Bug??????????????Щ?????????????????Ч???????????鱾????????????????????????????????е?????? Bug????????????????????Щ????????????????棬????????Щ????????????????????????????Щ????????????????????????????????????????????Java??????????????????????Щ????????飬????????????????????????Щ??????????????
???????????????????????????????????Щ?????????????????????????????????????????????????????????????????????????????????????????????????????????????е??????????????????????? ?????????????(code inspection)????????????????????????????????—??????????????е????—????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????Ч?????°???????????????У????г???11?? Java????г????????????????Щ?????????????????????б?(checklist)?У?????????????????????????????????в????????????????
???????????????1#????ο????????
???????????????????????????????????(immutable)??????????????????????????????????????????????????????????String??
?????????????????String??????????????????StringBuffer?????????????????????
String s = new String ("Text here");
???????????δ??????????????б?????????????????????μ???????д????????
String temp = "Text here"; String s = new String (temp);
??????????δ???????????String?????????????????????????
String s = "Text here";
????????????????2#????п????clone??????????
?????????encapsulation????????????????????????????Java???С??????????????——Java????????????????????reference?????????????????????
import java.awt.Dimension;
/***Example class.The x and y values should never*be negative.*/ public class Example{
private Dimension d = new Dimension (0?? 0);
public Example (){
}
/*** Set height and width. Both height and width must be nonnegative * or an exception is thrown.*/
public synchronized void setValues (int height??int width) throws IllegalArgumentException{ if (height < 0 || width < 0)
throw new IllegalArgumentException();
d.height = height; d.width = width;
}
public synchronized Dimension getValues(){
// Ooops! Breaks encapsulation return d;
}
}
????Example??????????洢??height??width?????????????????setValues()????????????????????????????????getValues()????d?????????????d?????????????д???μ?????????
Example ex = new Example(); Dimension d = ex.getValues(); d.height = -5; d.width = -10;
?????????Example??????и????!???getValues() ????????????????÷????Dimension?????width ??height??????????????????????????????
?????????????????????????????????????????Dimension???????????????????????????????????????飬????????????????С?
???????????????getValues()?????????
public synchronized Dimension getValues(){ return new Dimension (d.x?? d.y); }
?????????Example????????????????????????????????????????????????????????????Example???????????????????setValues()??????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11