2011. 6. 3. 17:49

객체 프로그래밍

다양항 클래스 멤버
클래스는 다양한 형태의 멤버를 가질 수 있습니다. 클래스에 정의하는 기본 멤버에는 필드(Field), 메서드(Method), 프로퍼티(Property)가 있습니다.

멤버 종료                       설명
필드(Field)                     객체의 속성을 나타내는 값으로, 멤버 변수라 부르기도 합니다.  예) int x;
메서드(Method)               객체의 기능을 함수로 정의합니다. 클래스 멤버로 함수를 정의하기 때문에, 멤버 함수라고 
                                     부르기도합니다. 예) void SetPoint(int x, int y);
프로퍼티(Property)           프로퍼티를 쓰는 입장에서 보면 필드(field)처럼 사용하는 것처럼 보입니다. 그러나 실제로
                                     프로퍼티는 메서드의 정의한 것입니다.(get과 set)


멤버 접근 제어
 클래스에 정의된 멤버를 외부에서 마구 사용할 수 있는것은 아닙니다.
클래스 멤버를 정의할 때, 멤버마다 외부에서 함수로 접근할 수 없도록 접근 권한을 부여합니다, 각 멤버 앞에 private/public 키워드를 붙여서 멤버 접근을 제한합니다.

public 멤버는 클래스 내부는 물론 외부에서도 사용하도록 허용된 멤버이고, private 멤버는 클래스 내부에서만 사용하도록 허용된 멤버 입니다. 클래스 외부에서 private 멤버를 사용하려고 하면 컴파일 오류가 발생합니다.


멤버 접근 제어자
 클래스에 전의한 멤버 각각에 대한 멤버 접근 제어자를 붙여서 사용을 제한할 수 있습니다.

[제어자] data_type Member;
[제어자] data_type Method( [param1, param2,...]);

멤버 접근 제어자에는 다음과 같은 것들이 있습니다.

public, private
protected, protected internal, internal

1. internal 키워드가 붙은 멤버는 public 멤버와 흡사한데, 같은 어셈블리 내에 정의된 클래스에게만 멤버 사용을 허용합니다.

2. protected 멤버는 상속 관계에 있는 클래스에서 베이스 클래스에 있는 멤버사용을 제어할 때 사용합니다.



인스턴스
인스턴스(instance)란 생성된 객체를 부르는 말입니다. 인스턴스를 인스턴스 객체 또는 그냥 객체라고 부르기도 합니다.
다음과 같이 객체를 새성한 경우, pt1과 pt2가 Point 객체의 인스턴스 입니다.

Point pt 1 = new Point ();
Point pt 2 = new Point ();


생성자
생성자(constructor)란, 객체가 생성될때 불려지는 메서드 입니다. new 연산자를 사용해서 객체를 생성하며, 보통 생성자에서 클래스 멤보를 초기화 합니다. 마치 메서드를 부르듯이 생성자를 부르죠.

class point
{
public Point() //생성자
this.x = 0;
this.y = 0;
}



인자를 가진 생성자

public Point (int x, int y) //인자를 가진 생성자
{
        this.x = x;
        this.y = y;
}