디지털 너구리 : 게임, IT 정보 및 다양한 지식 공유드립니다.

안녕하세요 엘빈입니다. 저번 포스팅에서는 유니티 학습을 위한 c# 가장 기초적인 문법을 포스팅하였습니다. 이번 포스팅에서는 저번 포스팅 단계에서 좀 더 심화된 문법들을 알아보려고 합니다.

 

 

 

 

 

 

 

 


1. 클래스

 

(1) 클래스 선언

C#은 객체 지향 언어이다. 즉 실제 세계에 있는 것을 객체로 표현한다는 이야기인데 이 역할을 클래스가 수행한다. 클래스는 맴버 변수와 메서드로 이루어져 있다.

클래스 선언문은 위 그림과 같으며 중괄호 안에 변수와 메소드를 구현하면 된다. 클래스는 객체를 만들기 위한 그릇이다. 쉽게 말해 설계도라고 생각하면 된다. 선언된 클래스를 기반으로 생성되는 변수를 인스턴스(객체)라고 한다.

 

(2) 객체(인스턴스) 생성

 

인스턴스는 new 키워드를 통해 생성할 수 있다. 위 그림은 car라는 인스턴스가 생성된 모습이다.

 

 

클래스는 파일 한개에 여러개 생성할 수 있다. 또한 클래스 안에 클래스를 선언할 수 있다. 

 

 

(3) 접근 제한자

클래스 변수와 메소드에 접근 제한자를 지정할 수 있다. (미지정시 기본적으로 private로 지정된다)

 

보통 중요한 변수는 private로 선언되며 get,set 메소드를 통해 값을 지정 및 반환한다.

 

 

(4) Static 변수,메소드

static이 붙은 변수나 메소드는 객체가 아닌 클래스 자체에 소속되있다고 생각하면 된다. 즉 static이 안붙은 변수와 메소드들은 객체의 계산 방향에 따라 다른 객체 변수 메소드와 값이 달라지지만 static 변수 및 메소드는 객체 상태 상관 없이 값이 동일하다.

 

 

(5) 메소드 오버로딩

메소드 오버로딩이란 이름은 같고 매개변수와 리턴 값의 자료형이 각기 다른 메소드를 만드는 것을 말한다.

 

(6) 생성자

생성자는 클래스 기반으로 객체를 생성할 때 무조건 자동적으로 호출되는 메소드다. 생성자 메소드 이름은 클래스 이름과 동일하며 반환과 관련된 선언을 하지 않는다.

 

this 키워드는 자신의 클래스를 가리키는 키워드이다. 

 

(7) 캡슐화

캡슐화란 클래스 내에 선언된 변수의 직접적인 접근을 보호하는 방법이다. 변수의 접근 제한자를 private로 지정한 후 get,set 메소드를 통해 해당 변수에 접근한다.

 

 

2. 리스트

리스트는 배열과 유사하다. 특별한 점은 꺾은 괄호(<>) 안에 자료형을 지정한다는 점이다. 리스트는 그 크기가 동적으로 할당되기 때문에 자료값을 추가 및 삭제하는데 용이하다. 

 

 

3. 값 복사와 참조 복사

int,float 등 기본 자료형은 값 복사 형태이다. 즉 변수간 복사가 이루어 질때 해다 변수의 값이 직접적으로 복사되어 할당된다는 뜻이다.

 

 

객체는 기본적으로 참조 복사이다. 즉 클래스 변수간에 복사가 이루어 질때 해당 값이 직접적으로 복사되는 것이 아니라 값에 대한 주소가 복사된다. 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band