구조체 1. 상속을 받지도 하지도 않는다. 2. 클래스는 항상 new연산자를 사용해 객체를 생성했다. 구조체는 new를 사용하지 않아도 된다. 하지만 이렇게 하면 객체는 메모리에 할당되지 않은 상태로 남기 때문에 모든 멤버(필드)를 초기화 해줘야 한다. 생성자를 선언할 때 매개변수 없이 하면 오류가 발생한다. .. IT_Programming/C# 2006.02.27
인터페이스 1. 자신에게서 상속받을 클래스가 구현해야 할 기능을 나열해 놓은 것이다. 2. 자신은 직접 기능레 대한 구현을 가지지 않고, 자신의 파생 클래스가 그 메소드를 구현하도록 하는 것이다. 3. 인터페이스의 상속은 클래스의 상속과 같다. 4. 오버라이드 할 때 new,override키워드를 사용하지 않고, 선언되었던.. IT_Programming/C# 2006.02.27
Const / readonly Const 상수는 컴파일 될 때 그 값이 결정돼서 프로그램이 시작할 때부터 끝날 때까지 메모리에 담아두고 사용한다. 클래스의 인스턴스가 생성될 때 상수를 만들고 객체가 소멸될 때 같이 메모리에서 해체하고 싶으면 readonly 키워드를 사용한다. Const는 컴파일 할 때 값이 결정되기 때문에 선언과 동시에 .. IT_Programming/C# 2006.02.27
This 키워드 [ 예제 ] class Test This 키워드는 할당된 객체 자신을 가리킨다. 왼쪽 예제의 { setAge() 메서드의 인자 age와 Test 클래스의 멤버 변수 age를 구분할 수 있는 것이다. 왼쪽 예제에서 SetAge() private int age; 메서드의 this age는 클래스의 인스턴스의 age를 가리키고 인자 age는 밖에서 들어오는 지역 변수이다. 인자 변.. IT_Programming/C# 2006.02.24
메서드 오버라이딩 오버라이딩(Overriding)은 "무시하다. 짓밟다"의 뜻이 있다. 메서드 오버라이딩은 기존의 메서드를 완전히 무시하고 새로운 기능을 입히는 것을 말한다. new키워드를 사용하면서 과거를 숨기고 새로운 모습으로 다시 태어날 수 있다. Overriding가 new와 다른 것은 메서드와 프로파티만 재정의할 수 있고, 사용.. IT_Programming/C# 2006.02.24
메서드 오버라이딩3 - virtual virtual 키워드와 abstract 키워드의 차이는 abstract 메서드가 구현을 가지지 않고, abstract 클래스안에 선언되어야 하는 것에 반해, virtual 메서드는 구현을 가지고 일반 클래스에 선언될 수 있다는 것이다. 사실 virtual 메서드는 virtual제한자가 붙는다는 것 외에는 다른 메서드와 동일합니다. virtual 메서드는 .. IT_Programming/C# 2006.02.24
메서드 오버라이딩2 - abstract abstract 제한자는 콜래스, 메서드 및 프로퍼티에 대해 사용할 수 있다. 메서드가 abstract로 선언되었다면 해당 클래스에서는 이 메서드를 구현하지 않고 해당 클래스의 파생 클래스가 이 메서드를 구현해야 한다. abstract 메서드는 머리만 있고 몸통이 없는 메서드이기 때문에 해당 클래스에서는 사용할 .. IT_Programming/C# 2006.02.24
메서드 오버라이딩1 - new 접근제어자 new 반환형 메서드이름([인자]) 여기서 new는 "이 메서드를 새로 쓰겠다." 라고 C# 컴파일러에게 알려주고 있다. new 제한자는 메서드 뿐 아니라, 부모 클래스의 모든 멤버를 숨길 수 있다. 이렇게 부모 클래스의 멤버를 숨기면 자식 클래스는 이 멤버를 마치 부모에게서 물려받지 않고 자신이 .. IT_Programming/C# 2006.02.24
상속 class 클래스 이름 : 부모 클래스 class Patent(기본 클래스) { //부모가 가지고 있는 코드.... } class Child :Patent {(파생클래스) //부모에게서 물려 받았기 때문에 //이곳에 아무 코드를 기록하지 않아도 //부모가 가진 멤버 중 상속을 막은 멤버를 제외한 //모든 멤버를 물려 받게 된다. } IT_Programming/C# 2006.02.24
접근제한자 public 모든 곳에서 해당 멤버에 대해 접근이 가능하게 노출할 때 사용한다 Protected 자신이 속해 있는 클래스 외부에 대해서는 은닉시키지만, 파생된 클래스는 해당 멤버에 대해 접근할 수 있다. Internal 같은 프로젝트 안에서만 접근할 수 있다. private 클래스 내부에 있는 멤버가 아니면 파생된 클래스라.. IT_Programming/C# 2006.02.24