OOP란?: 객체 지향 프로그래밍 (Object Oriented Programming)
C#은 OOP언어 입니다.
개발시 나오는 모든것을 객체라 할 수 있습니다. 객체 지향 프로그래밍이란 이렇게 만들어진 객체들을 유기적으로 연결해서 개발해 나가는 방식입니다.
객체 지향 특징
객체 지향의 4가지 중요한 특징입니다.
- 캡슐화
- 데이터와 코드를 외부에서 알 수 없게 감추는 것
- 외부에서는 필요한 정보만 알면 된다.
- 추상화
- 객체들의 공통적인 특징은 추려내는 것
- 상속
- 하위 클래스가 상위 클래스의 모든 것을 활용가능
- 클래스를 재사용하여 반복적인 코드를 줄일 수 있다.
- 다형성
- 프로그램 언어의 각 요소(상수, 변수, 식, 오브젝트, 함수, 메소드) 들이 여러가지 타입을 가질 수 있는 것
장점
- 재사용 가능한 코드가 많다.
- 코드 생산성이 높아진다.
- 유지보수에 용이하다
class
class를 이용하면 이 데이터들의 공통된 부분을 추상화 할 수 있습니다.
이 클래스의 영역 안에서는 변수를 만들거나 함수를 만들 수 있습니다.
함수의 호출이나 계산 등의 동작은 할 수 없습니다.
이러한 경우 함수를 하나 만들어서 그 안에서 필요한 내용을 작성하면 됩니다.
class Character
{
string userName;
string job;
string level;
public void IntroduceCharacter() <- 함수를 만들어서 실행
{
Console.WriteLine("제 이름은 " + userName + "입니다");
//class안에서 console을 이용한 호출은 불가능하기 때문에 함수를 하나 더 만듦
}
}
객체에 대해서
클래스를 만들어 준다고 동작하지 않습니다. 사용을 위해서는 객체를 생성해야 합니다.
Character myCharacter = new Character(); <- 객체 생성
class Character
{
string userName;
string job;
string level;
public void IntroduceCharacter()
{
Console.WriteLine("제 이름은 " + userName + "입니다");
}
}
각 변수나 함수에 접근할 때는 이 객체를 통해 접근을 해야합니다.
객체의 속성을 접근하려면 . 을 눌러서 접근할 수 있습니다.
Character myCharacter = new Character();
myCharacter.userName = "chad" ;
myCharacter.job = "전사";
myCharacter.level = 20;
myCharacter.IntroduceCharacter();
class Character
{
string userName;
string job;
string level;
public void IntroduceCharacter()
{
Console.WriteLine("제 이름은 " + userName + "입니다");
}
}