Effective Java ѧϰ±Ê¼Ç£¨£±£©
ͨ³£Çé¿öÏ£¬ÎÒÃÇÔÚдһ¸öÀàʱ£¬Ò»°ã»á¸³ÓèËüÒ»¸ö»ò¼¸¸öpublicµÄ¹¹Ô캯Êý£¬ÈÃÍⲿ³ÌÐòÄܹ»´´½¨¶ÔÏó.¡¡È»¶ø£¬ÔÚeffective¡¡java ÖУ¬´ÓÁíÒ»¸ö½Ç¶È¸æ½ëÎÒÃÇÔÚʹÓÃpublicµÄ¹¹Ô캯Êýǰ£¬ÏÈ¿¼ÂÇÓÃpublic µÄ¾²Ì¬º¯ÊýÀ´´´½¨¶ÔÏó.¡¡
ÆäÓŵãÈçÏ£º
£±.¡¡Ò»¸ö¾²Ì¬µÄ¹¤³§º¯Êý£¬¿ÉÒÔÈ¡²»Í¬µÄÃû×Ö.¡¡¶ø¹¹Ô캯ÊýµÄÃû×ÖÖ»ÄÜÓëÀàͬÃû.¡¡
¡¡¡¡Ò»¸öAPIµÄÉè¼ÆÖУ¬Ò»¸öºÃ¶®µÄÃû×Ö¿ÉÒÔÃâȥʹÓÃÕßÔÚÎĵµÖвéÕÒÆäʹÓ÷½·¨µÄÂé·³.¡¡
¡¡¡¡¡¡È磺¡¡¼ÙÈçÓиöÀà½ÐHuman£¬¼ÙÈçËüÓиö¹¹Ô캯Êý¡¡Human£¨¡¡int sex) ,¸ù¾Ý²ÎÊýÀ´´´½¨²»Í¬µÄ¶ÔÏó.¡¡Óû§¾Í¿ÉÄÜÈ¥²éÎĵµ£¬sex=1 or sex=0 ·Ö±ð´ú±íʲô.¡¡µ«Èç¹ûÎÒÃǸøËü¼ÓÁ½¸ö¾²Ì¬µÄ¹¤³§º¯Êý£¬Human.getMan() ºÍ¡¡Human.getWoman() Óû§Ò»¿´Ãû×Ö¾ÍÖªµÀÊÇÔõôÓÃ.
¡¡¡¡¡¡ÁíÍ⣬ÕýÒòΪ¾²Ì¬¹¤³§º¯Êý¿ÉÒÔÈ¡²»Í¬µÄÃû×Ö£¬¿ÉÒÔÃâÈ¥¹¹Ô캯ÊýÏÞ¶¨²ÎÊýµÄ·³ÄÕ.
¡¡¡¡¡¡Àý×ÓͬÉÏ£¬ÈçÎÒÃÇÒªÓÐÒ»¸ö¸ù¾ÝÉí¸ßÀ´´´½¨Ò»¸öHuman¶ÔÏó£¬ÓÚÊÇÎÒÃÇдÓÐHuman(int height), ºóÀ´£¬ÎÒÃÇÓÖÏë¸ù¾ÝÄê¼ÍÀ´´´½¨Ò»¸ö¶ÔÏó£¬ÓÚÊÇÎÒÃÇÓÖÓÐHuman(int age), ºÜÃ÷ÏÔ£¬ÓÉÓÚº¯ÊýÇ©ÃûµÄÏÞÖÆ£¬ÎÒÃÇÖ»ÄÜÑ¡ÔñÆäÖÐÒ»¸ö¹¹Ô캯Êý.µ«Ê¹Óþ²Ì¬¹¤³§·½·¨¾ÍûÓÐÕâ¸ö·³ÄÕ.¡¡ÎÒÃÇ¿ÉÒÔÓÐHuman.getInstanceByHeight(int height) Ò²¿ÉÒÔÓÐ Human.getInstanceByAge(int age),ËûÃÇ¿ÉÒԺܺÏгµÄÔÚÒ»Æð¹¤×÷.
2. ʹÓþ²Ì¬¹¤³§º¯Êý,²»±ØÏñ¹¹Ô캯ÊýÄÇÑùÿ´Î¶¼´´½¨¶ÔÏó,¿ÉÒÔÔںܴó³Ì¶ÈÉϽÚÔ¼×ÊÔ´,ÌØ±ðÊÇÓÐЩÀà½öÓÐÓÐÏÞ¸öÊýµÄ¶ÔÏóʱ.
Èç ÎÒÃÇÓÐMonthÕâôһ¸öÀà, °´ÕÕÔÀ´µÄ·½·¨,ÎÒÃÇ¿ÉÄÜÓÐMonth(int mon), ÓÚÊÇ,ÿ´Îµ÷ÓÃÒ»¸ö¹¹Ô캯Êý,¾Í»á´´½¨Ò»¸öMonth¶ÔÏó,Æä½á¹ûÊÇÄÚ´æÖкܿÉÄÜ´æÔÚ´óÓÚ12¸öMonth¶ÔÏó. È»¶ø,¼ÙÈç,ÎÒÃÇÊÂÏȶ¨Òå12¸ö¾²Ì¬¶ÔÏó,´ÓJanµ½Dec,È»ºó¸øÒ»¸öMonth.getMonth(int mon)Õâôһ¸ö¾²Ì¬¹¤³§·½·¨, ÔÚº¯ÊýÖиù¾ÝÊý×Ö·µ»ØÆäÖÐÒ»¸ö¾²Ì¬¶ÔÏó,ÕâÑù,²»¹Ü³ÌÐòÔõôÔËÐÐ,ÄÚ´æÖÐʼÖÕÖ»ÓÐ12¸öMonth¶ÔÏó.
ÕâÑù×ö»¹ÓÐÒ»¸öºÃ´¦¾ÍÊÇ, Óû§¿ÉÒÔÖ±½ÓʹÓÃ== ±È½ÏÁ½¸ö¶ÔÏóÊÇ·ñÏàµÈ,¶ø²»ÓÃequal·½·¨.
3. Ò»¸ö¾²Ì¬¹¤³§º¯Êý£¬·µ»ØµÄ¶ÔÏó¿ÉÒÔÊÇÕâ¸öÀàµÄ¶ÔÏó£¬Ò²¿ÉÒÔÊÇÆä×ÓÀàµÄ¶ÔÏó£¬Ôö¼ÓÁËÉè¼ÆµÄÁé»îÐÔ¡£ÔÚʵ¼ÊÔËÓÃÖУ¬¿ÉÒԵõ½¼¸¸öºÃ´¦¡£
ÆäÒ»£¬¿ÉÒÔÒþ²ØÒ»Ð©À࣬¼õÉÙ¶ÔÍ⹫²¼µÄAPIÊý£¬¾«¼ò½Ó¿Ú¡£Õâ¾ä»°¿ÉÒÔÕâÑùÀí½â¡£±ÈÈçÉè¼ÆÒ»¸ö¿ò¼Ü£¬ÀïÃæ°üº¬ÓÐ20¸öÀ࣬µ«Êµ¼ÊÉÏ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýʹÓþ²Ì¬¹¤³§º¯ÊýÒþ²ØÒ»Ð©ÄÚ²¿ÊµÏÖ£¬Ê¹Óû§²»ÓÃÖªµÀÈ«²¿µÄÀ༰ʹÓ÷½·¨£¬Ê¹¿ò¼ÜÒ×Óá£
Ïà¹ØÎĵµ£º
JavaÓïÑÔµÄÊäÈëÊä³ö¹¦ÄÜÊÇÊ®·ÖÇ¿´ó¶øÁé»îµÄ£¬ÃÀÖв»×ãµÄÊÇ¿´ÉÏÈ¥ÊäÈëÊä³öµÄ´úÂë²¢²»ÊǺܼò½à£¬ÒòΪÄãÍùÍùÐèÒª°ü×°Ðí¶à²»Í¬µÄ¶ÔÏó¡£ÔÚJavaÀà¿âÖУ¬IO²¿·ÖµÄÄÚÈÝÊǺÜÅÓ´óµÄ£¬ÒòΪËüÉæ¼°µÄÁìÓòºÜ¹ã·º:±ê×¼ÊäÈëÊä³ö£¬ÎļþµÄ²Ù×÷£¬ÍøÂçÉϵÄÊý¾ÝÁ÷£¬×Ö·û´®Á÷£¬¶ÔÏóÁ÷£¬zipÎļþÁ÷....±¾ÎĵÄÄ¿µÄÊÇΪ´ó¼Ò×öÒ»¸ö¼òÒªµÄ½éÉÜ¡£
¡¡¡¡Á ......
import org.junit.Test;
public class ConstructorTest {
@Test @SuppressWarnings("unchecked")
public void testConstructor(){
try {
Class clazz = Class.forName("cn.vicky.utils.User");
Method method = clazz.getDeclaredMethod("getName");
Constructor<? extends Live> constructor = ......
Õ⼸ÌìÔÚ¿´JAVA£¬Í¼Êé¹Ý½èµÄÒ»±¾JAVA¿ª·¢´óÈ«£¬Í¦ºñµÄÒ»±¾£¬ÄÚÈݺܶ࣬µ«²»Éî¡£°üÀ¨JAVAµÄ»ù±¾Óï·¨¡¢Ï̱߳à³Ì¡¢×ÀÃæ³ÌÐò¡¢Ö÷ÒªÀà¿â¡¢ÒÔ¼°ºóÃæJSP²¿·Ö¡£¿´ÁË5ÌìÁË£¬¸Õ°ÑJÏ߳̿´Íê¡£ÓÉÓÚ֮ǰѧ¹ýC++£¬ËùÒÔÇ°Ãæ»ù´¡Êý¾ÝÀàÐÍ£¬»ù±¾Óï·¨µÈµÈÖ»×ÅÖØ¿´¿´JAVA¶ÀÌØµÄµØ·½¡£ÒÔÏÂÊÇÎÒ¸öÈËÀí½â×ܽáµÄһЩJAVAÓëC/C++²»Í¬µØ·½¼°×Ô¼ºµÄ¶ÔJ ......
Êý¾Ý½á¹¹ºÍËã·¨
ðÅÝ£ºÃ¿´Î±È½Ï¶¼¿ÉÕÒ³ö×î´ó»ò×îСµÄ£¬ÓÐÐòµÄÔÚ×îÓÒ±ß
Ñ¡ÔñÅÅÐò£ºÓÐÐòµÄÔÚ×î×ó±ß
²åÈëÅÅÐò£ºËٶȱÈðÅÝ¿ìÒ»±¶£¬±ÈÑ¡ÔñÒ²¿ì¡£
µÝ¹é
µ÷ÓÃ×ÔÉí
ººÅµËþÎÊÌ⣺
/**
* @ººÅµËþµÄÎÊÌâ
*/
......
Êý¾Ý¿âÁ¬½Ó
Á÷ÊÇÖ¸Ò»Á¬´®Á÷¶¯µÄ×Ö·û£¬ÊÇÒÔÏȽøÏȳöµÄ·½Ê½´¦ÀíµÄ¡£
¹¹ÔìÒ»¸öÎļþÊäÈëÁ÷¶ÔÏó£ºInputStream o = new FileInputStream(“a.txt&rdquo ......