자바 프로그램 공부를 하면서 실습으로 공구 관리 프로그램을 만들고 있습니다.
아주 기본적인 정보을 담은 클래스(변수 갯수가 10개 정도됩니다.) 를 시작으로 상속을 하고 있습니다.
족보로 치면 대략 10대 정도됩니다. 1대 부터 10대 후손까지..1대가 거칠 때마다 대략 2-3개의 변수가 추가 되는 형태입니다.
코드 작성 중 1대에서 3대 까지는 참으면서 생성자를 넣고 있습니다. 허나 더 할 자신이 없습니다.ㅜㅜ
대략 코드의 형태는
class AAA
{
int a;
int b;
int c;
int d;
public AAA(int a, int b, int c, int d)
{
this.a=a;
.
.
.
}
}
class BBB extends AAA
{
int e;
int f;
public BBB(int a, int b, int c, int d, int e, int f)
{
super(a,b,c,d);
this.e=e;
this.f=f;
}
}
위의 생성자의 파랑색 글씨가 대를 거듭할수록 갯수가 너무 많아져서 넣는게 부담스러워지고 있습니다. 차후 트러블 슈팅할 자신이 없습니다. 자손 클래스에서 생략할 방법이 있는지요? 오버로딩에 의해 초기화해야 하기에 반드시 있어야 할것 같긴한데, 뭔가 스마트한 방법이 있을 듯합니다.
À§ÀÇ°æ¿ì °°Àº »óȲ¿¡¼´Â init() °°Àº ÇÔ¼ö¸¦ ¾µ°Í °°³×¿ä... ±×¸®°í ¸¸¾à À§¿¡¼ ÇÏ·Á°í ÇÏ´Â ÀÏÀ» ÇÏ·Á¸é ¾Æ¹«¸® ºÎ´ã½º·¯¿öµµ ºÎ´ã½º·¯¿î ÀÏÀ» Çؾß(?) ÇÒ°Í °°¾Æ¿ä... ±×¸®°í º¯¼ö¸¦ ÇϳªÇϳª¾¿ Àú·¸°Ô ÆĶó¹ÌÅÍ·Î ³ÖÁö ¾Ê°í ºÎ¸ðŬ·¹½º Åë°·Î ÇÏ´Â°Ô ´õ °ü¸®Çϱ⠽±°Ú½À´Ï´Ù...
class BBB extends AAA
{
int e;
int f;
public BBB(AAA aaa, int e, int f)
{
super(aaa);
this.e=e;
this.f=f;
}
}
¹¹ ÀÌ·±½Ä?
¾Æ´Ï¸é ¿©·¯°¡Áö ¹æ½ÄÀÌ ÀÖÀ»¼ö ÀÖ½À´Ï´Ù¸¸ ÆĶó¹ÌÅÍ¿¡ ³Ö´Â º¯¼öµéÀ» º¯¼öŬ·¡½º·Î ¸¸µé¾î¼ ¹´øÁö¿ä... ÀÌ°ÍÀ» Ǫ´Â ¹æ¹ýÀº ¹«ÁöÇÏ°Ô ¸¹À» ¼ö Àִµ¥¿ä... Map Ŭ·¹½º ¿ÀºêÁ§Æ®¸¦ ¾²¸é °Å±â¿¡´Ù°¡ ÆĶó¹ÌÅ͸¦ ´Ù ³Ö¾î¼ ÆнºÇÏ¸é µÇ°ÚÁÒ...
¾ÆÁ÷ Ãʺ¸ÀûÀÎ ÀÚ¹Ù¼öÁØÀÌ¶ó ¸»¾¸ÇϽô ³»¿ëÀ» ¿ÏÀüÈ÷ ÀÌÇØÇϱⰡ ¾î·Æ³×¿ä. ÃÖ»óÀ§ Ŭ·¡½º¿¡¼ º¯¼ö¸¦ ¼±¾ðÇÒ ¶§ »ç¿ëµÉ º¯¼ö¸¦ ¸ðµÎ ¾Ë°í ÀÖÀ¸¸é, ½±°Ô ÇØ°áÀÌ °¡´ÉÇÒ µíÇѵ¥, ¹ÌÁöÀÇ º¯¼ö°¡ °è¼Ó ´Ã¾î³ª°í ÀÖ¾î ÃÖ»óÀ§ Ŭ·¡½º¿¡¼ ¼±¾ðÀ» ¸øÇÏ°í Àֳ׿ä.
OOP ´ë¹°¸²ÀÇ ¸ñÀû°ú °¡»óÇÔ¼ö ±×¸®°í ÀÚ¹Ù¿¡¼´Â ºô´õŬ·¡½º¸¦ ÀÌÇØÇÏ½Ã¸é »À´ë°¡ ÀâÈù´Ù°íÇؾßÇϳª¿ä...
ÀÚ¹Ù°¡ ÀÌÁ¦¼¾ß ºûÀ» º¼¼öÀÖ´Â°Í °°¾Æ¿ä... Ãʱ⿡´Â ÄÜ›¼Àº ¹«ÁöÁÁÀºµ¥... Çϵå¿þ¾î µîµî ÆÛÆ÷¸Õ½º°¡ ³Ê¹« µþ·Á¼... ¹ö¹÷ÀÓÀ» ÇÇÇÒ¼ö°¡ ¾ø¾ú°Åµç¿ä... ¿äÁò¿£ ÀÚ¹Ù¾îÇø®ÄÉÀ̼ÇÀÌ Æ¼µµ¾È³ª°Ô µ¹¾Æ°¡´Â ¼¼»óÀÌ µÇ¾î¼... ±×¸®°í ¾îÂ¥ÇÇ À©µµ¿ì¿¡¼µµ ´å³ÝÇÁ·¹ÀÓ¿öÅ©¶ó´Â ºñ½ÁÇÑ ÄÜ›¼À» ¾²°í ÀÖ°í...
public BBB(AAA aaa, int e, int f)
{
super(aaa);
this.e=e;
this.f=f;
}
Áß AAA.aaa°¡ AAAŬ·¡½ºÀÇ »ý¼ºÀÚ¸¦ ¸»¾¸ÇϽôÂÁö¿ä?
´ëºÐÀÚ AAA´Â »óÀ§ Ŭ·¡½ºÀÏÅÙµ¥ ¼Ò¹®ÀÚ aaa°¡ ¹«¾ùÀÎÁö¿ä?
»ý¼ºÀÚ¿Í Å¬·¡½ºÀÇ À̸§ÀÌ °°¾Æ¾ß Çϴµ¥...
¿¹·Î ÁֽŠ³»¿ëÀ» º¸°í ¾î¼¸é...½¬¿öÁú°Í °°Àºµ¥..¶ó´Â »ý°¢À¸·Î ÇØ º¸¾Ò´Âµ¥ »ý¼ºÀÚ´Â super·Î ¹Û¿¡ È£ÃâÀÌ ¾ÈµÇ³ª º¾´Ï´Ù.
AAA - Ŭ·¡½ºÀ̸§
aaa - ÆĶó¹ÌÅÍÀ̸§
c++ À̳ª c# À¸·Î º»´Ù¸é ±×³É protected ·Î º¯¼öµéÀ» ¼±¾ðÇؼ »ó¼ÓÇØÁÖ¸é µÇÁö ¾Ê³ª¿ä?
»ý¼ºÀÚ¾ß ÀÔ¸À¿¡ ¸À°Ô ¿©·¯°¡Áö ¸¸µé¾îÁÖ¸é µÇ°í..
±×¸®°í ÇÔ¼ö ÀÔ·Â ÆĶó¹ÌÅÍ °¹¼ö°¡ Á¡Á¡ ±æ¾îÁö´Â °ÍÀÌ °ÆÁ¤ÀÌ µÈ´Ù¸é
¾Æ¿¹ ÀÖÀ» ¼ö ÀÖ´Â ÆĶó¹ÌÅ͸¦ ¸ðµÎ ¸ðÀº Ŭ·¡½º¸¦ Çϳª Á¤ÀÇÇؼ ±× Ŭ·¡½º¸¦ ÀÔ·Â ÆĶó¹ÌÅÍ·Î ³Ö¾îÁÖ´Â °Íµµ..
´Ü¼øÈ÷ »ó¼Ó¹Þ±âÀ§ÇØ
public BBB(int a, int b, int c, int d, int e, int f) ¸Þ¼Òµå¸¦ ±â¼úÇϽŰǰ¡¿ä?
¾Æ·¡ ÄÚµå·Î ÇØ°áÀÌ µÇ½Ã·Á³ª¿ä?
public class Parent{
int a;
int b;
int c;
int d;
int e;
int f;
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
.
.
.
}
public class Child extends Parent{
public Child(){
setA(1);
setB(2);
setC(3);
System.out.println(getA());
System.out.println(getB());
System.out.println(getC());
}
}