개발업무를 한지가 8년이 넘어간다. OOP 프로그래밍이 내 주변에서 떠돈것이 8년쯤되나 보다.
그러나 이제서야 객체를 이해하게 되었다.

객체의 본질은 무엇인가? 그것에 대한 질문의 답을 이제야 얻은 것 되겠다.

공식으로 따지면 이따위 모양되겠다.

"객체 = 속성 + 할수있는것"

이것을 설명하며 각종 서적과 강의에서는 전화기가 어떻고 차가 어떻고 하며 떠든것이다.
다시말해
"객체는 그 객체를 설명하는 속성과 그 객체가 할 수 있는 것"을 정의한것 되겠다.

실제코딩으로 보면 이런 현태가 되는거다.

public class a{
    string aa = "1234";
    public string mthod(){
        return aa;
    }
}


아~ 얼마나 심플한가?
이것을 이해하는데 몇년을 걸렸다니 너무나 애석하기만 하다. 하긴 출발점이 잘못된 탓도 없지 않아 있으리라.

이제 이것을 사용해보자 b란 클래스에서 a란놈을 불러서 mthod라는 행동을 유발해보자.

using System;
class Test {
  public static void Main() {
    a al = new a();
    string r = al.mthod();
    Console.WriteLine (r);
  }
}
public class a{
    string aa = "1234";
    public string mthod(){
        return aa;
    }
}
}


그리고 속성을 건드려보자.
물론 건드릴 속성이 private속성의 aa라는 변수라면 인터페이스를 만들어줘야 한다.
using System;
class Test {
  public static void Main() {
    a ar = new a();
    ar.AA="abcdef";
    Console.WriteLine ("인터페이스결과:"+ar.mthod());
  }
}
public class a{
    private string aa;
    
    public string AA{
      get{
          return aa;
      } 
      set{
          aa = value;
      } 
    } 

    public string mthod(){         return aa;     } }


private가 아닌 public이라면 그냥 바로 설정하면 된다.
using System;
class Test {
  public static void Main() {
    a ar = new a();
    ar.aa = "12345";
    Console.WriteLine ("그냥박기:"+ar.mthod());
  }
}
public class a{
    public string aa;
    public string mthod(){
        return aa;
    }
}


갑자기 필받아서 이렇게 두서없이 쓰긴했지만... 하고 싶은 이야기는 바로 클래스는 데이터의 집합체로 봐야 한다는 결론을 내렸다. 이렇게 데이터의 집합체로 놓고 설계를 해보면 다음과 같이 할 수 있을것이다.

냉장고라는 녀석이 하는일을 클래스화 시켜 보면 이렇게 정의할 수도 있을것이다.
class 냉장고{
        절전기능 = "Y";
        색깔 = "파란";
        높이 = "2m";
        폭 = " 50cm";
        깊이 = "40cm";
        실내온도 = "20c";
        public void 냉각(온도){
           실내온도 = 온도;
        }
}


이런것은 많이 봤을터이고 업무로 한번 해보자. 은행원이 수납, 인출받는 업무만 한다고 가정하고
class 은행원{
        성별 = "여";
        유니폼색 = "하늘색";
        public void 인출(금액){
              계좌 -= 금액;
        }
        public void 수납(금액){
              계좌 += 금액;
        }
}

2007/03/07 10:57 2007/03/07 10:57

트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다