객체지향 Obejct Oriented Programming
단어의 뜻을 보면 뭔가 오브젝트를 기반으로 프로그램을 작성하다 라는 의미같다.
이는 컴퓨터 프로그래밍의 패러다음의 하나로 객체라는 개념을 반영하여 설계되고 구현하는것을 의미한다.
그렇다면 객체라는게 뭘까
객체는 데이터(속성) 과 그 데이터를 조작하는 행위(메서드)를 하나로 묶은 개념을 의미한다.
그렇다면 객체지향의 의미는 이러한 객체들을 다뤄 프로그램을 작성하는것을 의미하게 된다.
객체는 위 설명처럼 속성과 행동을 포함하는 프로그램의 하나의 단위가 된다.
속성은 객체의 상태를 나타내고, 행동은 객체가 할 수 있는 작업을 의미한다.
string name1 = "김씨";
int age1 = 20;
Console.WriteLine($"{age1}살 {name1}은 말합니다.");
string name2 = "이씨";
int age2 = 20;
Console.WriteLine($"{age2}살 {name2}은 말합니다.");
위의 코드가 있다고 가정하자.
이처럼 두명의 사람이 있다고 가정할땐 아무런 문제가 없다.
하지만 1000명의 사람이 필요하다면
코드의 작성도 굉장히 힘들어지고 name을 nmae 으로 오타로 작성하는경우,
또한 height 라는 데이터 입력이 추가로 필요하다면
1000줄의 추가 코드작성이 필요하게 된다.
그렇기에 이러한 문제점을 보완하기 위해 클래스의 객체 개념이 필요하다.
클래스는 간단히 말하자면 하나의 템플릿 이라고 보면된다.
PPT문서 템플릿을 본적이 있는지 생각해보자.
템플릿이라고 하면 발표용, 문서용, 행사용 등등 여러 템플릿을 볼 수 있는데,
각 용도에 맞게 보다 쉽게 PPT를 작성할 수 있게 기본적인 틀이 작성되어 있고 이를 활용해 쉽게 문서를 작성할 수 있다.
클래스의 개념도 똑같다.
짜여진 내용에 데이터를 넣고, 활용하는 용도이다.
위 김씨와 이씨를 보면 우선 사람은 이름과 나이가 있고, 뭔가 말을 하는 행동도 있는것 같다.
public class People
{
public string _name;
public int _age;
public void Speak()
{
Console.WriteLine($"{_age}살 {_name}은 말합니다.");
}
}
클래스를 작성했으며 PPT 템플릿처럼 하나의 클래스라는 템플릿이 작성되었다.
이 템플릿을 기반으로 김씨를 뽑아내보자.
People p1 = new People();
p1._name = "김씨";
p1._age = 20;
p1.Speak();
이처럼 People을 실제로 하나 만들어주게 되었다.
이러한 대상을 하나의 오브젝트, 하나의 객체, 하나의 인스턴스 라고 한다.
클래스에 정의된 속성과 메서드를 그대로 가지고 있으며 p1이라는 객체를 다뤄 쉽게 파악, 작업이 원활해진다.
'프로그래밍 용어' 카테고리의 다른 글
TCP 와 UDP (1) | 2024.11.07 |
---|---|
네트워크와 OSI 7 계층 (2) | 2024.11.07 |
객체지향(OOP) 4대 특징 (0) | 2024.07.21 |
매개변수(Parameter) 와 인자(Argument)의 차이 (0) | 2024.07.15 |
스트림이란? Stream (0) | 2024.02.20 |