관리 메뉴

caLAB

[C# 공부] 개념 다지기 02 - 클래스 , this 본문

개발 공부/C# 공부하기

[C# 공부] 개념 다지기 02 - 클래스 , this

도이(doi) 2022. 2. 3. 15:48
728x90

객체 지향 프로그램

프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법. 객체를 설계하고 객체가 해야될 일들을 객체 스스로 알고 있음. 객체들을 잘 관리하고 때에 따라서 적절한 메서드를 주면 프로그램이 완성된다. 

용어 정리 

클래스 - 붕어빵 틀, 설계도

집단에 속하는 속성(attribute)과 행위(behavior)를 변수와 메서드로 정의한 것

인스턴스/오브젝트(객체) - 붕어빵, 실제 생산 된 자동차

클래스에서 정의한 것을 토대로 실제 메모리에 할당된 것

 

클래스는 여러개의 변수(속성)와 메서드(행위)가 모여서 하나의 클래스를 생성합니다. 클래스를 선언할 때 new를 사용하는데 new 라는 키워드는 메모리 할당 연산자이다. 클래스가 단순히 하나의 변수를 선언하는 것이 아닌 많은 변수가 조합되어서 만들어지기 때문에 필요한 만큼 메모리 할당이 필요하다. 

접근제한자 Private, Public

접근제한자 Public은 설계하는 사람이 어떤 것은 외부에 보이게 해서 값을 바꿀 수 있게 하고 호출 가능하게 하고 접근제한자 Private은 어떤 변수나 메서드는 아예 외부에서 안보이게 해서(정보 은닉) 사용자에게 감추는 것.

클래스에서는 변수나 메서드를 선언할 때 이를 외부에 보이게 할지 안보이게 할지에 대해서 선언하고 시작한다. 

 

클래스 내부의 변수를 필드라고 부르기도 한다. 

 

캡슐화 -> private으로 선언하여 외부에서 접근 가능하지 않지만, 함수를 호출할 경우에 private 변수의 값을 변경 가능하도록 한다. 접근제한자에 대한 표시가 없다면 기본으로는 private이다. 하지만 이를 명시적으로 표시해주는 것이 좋다.  나중에 혼란을 줄일 수 있기 때문에 더 추천한다. 

 

클래스에 명시적으로 아무런 접근 제한자가 붙지 않으면 기본적으로 클래스는 internal로 선언되어진다. internal의 의미는 해당 namespace 안에서만 사용 가능하다는 것이다. 만약 접근 제한자를 public으로 바꾸게 되면 다른 namespace에서도 해당 class에 접근 가능하게 된다. 

생성자

기본적으로 생성자의 선언은 함수의 선언과 같다. 생성자는 무조건 public이어야 된다. 생성자는 외부에서 호출해서 실제 클래스를 외부에서 만들려는 것이다. 그런데 private으로 선언하게 되면 외부에서 접근할 수 없기 때문에 아무런 의미를 가지지 못하게 된다. 생성자는 return 타입이 없다. 생성자의 return 타입은 클래스 타입이다. 생성자의 함수의 명은 클래스의 이름과 같아야 된다. 

닷(.) 연산자

클래스의 필드나 함수를 호출할 때 사용하는 연산자 

키워드 this

this라는 키워드는 클래스의 현재 인스턴스를 가르킨다. 

728x90
반응형
Comments