ÀνºÅϽº ¸Þ¼Òµå ¸®ÆÑÅ丵À¸·Î º¯È¯

 

ÀÌ ¼½¼ÇÀº Convert to Instance Method ¸®ÆÑÅ丵 À§¿¡¼­ Æ÷°ýÀûÀÎ overview ¿Í how ÀÌ ¸®ÆÑÅ丵ÀÌ IntelliJ IDEA¿¡¼­ »ç¿ëµÉ ¼ö Àִ°¡¸¦ Á¦°øÇÕ´Ï´Ù.

°³¿ä


Convert to Instance Method ¸®ÆÑÅ丵Àº Ãʱ⠸޼ҵåÀÇ Å¸ÀÔ ¸Å°³ º¯¼ö°¡ µÇ´Â Ŭ·¡½º¿Í ÇÔ²² ºñ Á¤Àû, Ŭ·¡½º ÀνºÅϽº ¸Þ¼Òµå¿¡ À־ÀÇ Á¤ÀûÀÎ ¸Þ¼Òµå¸¦ º¯È¯Çϱâ À§ÇØ »ç¿ëµË´Ï´Ù.


¿¹¸¦ µé¸é, ¿ì¸®´Â ¸®ÆÑÅ丵 Àü¿¡ ´ÙÀ½ Äڵ带 °¡Áý´Ï´Ù:

 
    public class MyClass {
        ClassA classA = new ClassA();
        ClassB classB = new ClassB();
 
        static public void greatMethod(ClassA classA, ClassB classB){
            System.out.println("classA = " + classA);
            System.out.println("classB = " + classB);
        }
 
        public void myMethod(){
            MyClass.greatMethod(classA, classB);
        }
    }



°Ô´Ù°¡ µÎ Ŭ·¡½º, ClassA ¿Í ClassB°¡ °°Àº ÆÐŰÁö¿¡ ÀÖ½À´Ï´Ù.  Convert to Instance Method ¸®ÆÑÅ丵 ÀÌÈÄ ÄÚµå´Â ´ÙÀ½°ú °°ÀÌ º¼ °ÍÀÔ´Ï´Ù:
 
    public class MyClass {
        ClassA classA = new ClassA();
        ClassB classB = new ClassB();
 
        public void myMethod(){
            classB.greatMethod(classA);
        }
    }



±×¸®°íClassB  : 

 
public class ClassB {
    public void greatMethod(ClassA classA){
        System.out.println("classA = " + classA);
        System.out.println("classB = " + this);
    }
}



ÀνºÅϽº ¸Þ¼Òµå·Î º¯È¯


 1.  º¯È¯À» Çϱâ À§ÇØ, ´ëü·Î ¼±¾ð ¶Ç´Â ¸®ÆÑÅä µÇ´Â ¸Þ¼ÒµåÀÇ »ç¿ë »ó¿¡¼­ ij·µÀ» ¹èÄ¡ÇϽʽÿÀ.  ¸Þ¼Òµå´Â ¹Ýµå½Ã Á¤ÀûÀÏ °ÍÀÌ°í ±× ¸Å°³ º¯¼ö´Â ´ç½ÅÀÇ ÇÁ·ÎÁ§Æ®·ÎºÎÅÍ Å¬·¡½º ŸÀÔÀÏ °ÍÀÓ¿¡ Ʋ¸²¾ø½À´Ï´Ù.  ¹Ù²Ù¾î ¸»Çϸé, ´ç½ÅÀº ¸®ÆÑÅ丵¿¡ ´ëÇÑ StringŸÀÔÀ¸·Î¼­ ±×·± ¸Å°³ º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ¾ø°í ±×°ÍµéÀº ½ÉÁö¾î °í·ÁµÇÁö ¾Ê½À´Ï´Ù.

±×¸®°í ÁÖ ¸Þ´º ¶Ç´Â ¿¡µðÅÍ¿¡¼­ ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ´Â °Í¿¡ ÀÇÇØ ºÒ·ÁÁö´Â ÆË¾÷ ¸Þ´º¿¡¼­ Refactor Convert to Instance Method...  Ç׸ñÀ» Ŭ¸¯ÇϽʽÿÀ. ´ÙÀ½ÀÇ Convert to Instance Method ´ÙÀ̾ó·Î±×°¡ ³ªÅ¸³³´Ï´Ù:



 2.   Select an instance parameter ÅؽºÆ® Çʵ忡¼­, º¯È¯µÈ ¸Å°³ º¯¼ö À̸§À» ÁöÁ¤ÇϽʽÿÀ.

 3.   ¸Þ¼Òµå´Â ¼±ÅÃÇÑ ¸Å°³ º¯¼ö(ClassB)¿¡ ºÎÇÕÇϴ Ŭ·¡½º·Î ¿Å°ÜÁý´Ï´Ù.  Á¤ÀûÀÎ ¸Þ¼Òµå·ÎÀÇ ÄÝÀº Ŭ·¡½º ÀνºÅϽº ¸Þ¼Òµå·ÎÀÇ ÄÝ¿¡ º¯°æµË´Ï´Ù. ±×¸®°í ClassB ÀνºÅϽº·ÎÀÇ ÄÝÀº thisÀ» À§ÇØ º¯°æµË´Ï´Ù.

Ưº°ÇÑ ÁÖ¼®


¸¸ÀÏ º¯È¯µÈ ¸Å°³ º¯¼ö°¡ null  À̶ó¸é, ´ç½Å¿¡°Ô ´ÙÀ½ÀÇ °æ°í°¡ ÇÁ·ÒÇÁÆ® µÉ °ÍÀÔ´Ï´Ù.



»ý¼º ÄÚµå´Â À߸øµÉ °ÍÀÔ´Ï´Ù.


±×·¯³ª, ¸¸ÀÏ ¼±ÅÃÇÑ ¸Å°³ º¯¼ö°¡ null·Î¼­ »ý¼ºµÇÁö ¾ÊÀ¸¸é ±×°ÍÀº ´õ ±³¹¦ÇÒÁöµµ ¸ð¸¨´Ï´Ù ±×·¯³ª ±×°ÍÀº null ÀÔ´Ï´Ù(nullÀÌ ¸Þ¼Òµå ¸®ÅÏ °ªÀÎ °Í ó·³).  ´ç½ÅÀº ±×·± °æ¿ì¿¡¼­ ½ÅÁßÇØ¾ß¸¸ ÇÕ´Ï´Ù.  IDEAÀº ±×°ÍÀ» ÀνÄÇÒ ¼ö ¾ø°í ¸®ÆÑÅ丵Àº ¸Å²ô·´°Ô ÀÛµ¿ÇÒ °ÍÀÔ´Ï´Ù.  ÄÚµå´Â ½ÉÁö¾î ÄÄÆÄÀÏ µÉ ¼öµµ ÀÖÁö¸¸ ÀûÀýÇÏ°Ô ½ÇÇàµÇÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.