코틀린 문법을 배우면서 객체지향에 대해 살짝 배웠다.
객체지향 프로그래밍 (Object Oriented Programming : OOP)
하나의 파일에 모든 것을 구현하려고 하면 엄청나게 길어진다.
--> 나중에 수정하거나 다시 살펴볼때 너무 어려워진다.
따라서 각각의 역할에 따라 파일을 나눠서 구현한 후에 연결?해서 동작한다.
--> 각 파일의 코드량이 줄어들어 나중에 알아보기가 편해진다.
이떄 중요한 점이 있다.
1. 객체(Object) : 상태와 그 상태를 처리하는 행동의 묶음
--> 상태는 변수, 처리하는 행동은 매서드가 된다.
2. 책임(Responsibility) : 객체가 수행해야 하는 역할 또는 기능을 말한다.
--> 자동차 객체의 주행, 정지는 그 객체의 책임이다.
3. 역할(Role) : 객체가 수행하는 책임의 집합이다. 여러 객체가 동일한 역할을 수행할 수 있다.
4. 상호작용(Interaction) : 객체간의 서로 메시지를 주고받아 책임을 수행하고 상호작용한다.
위 4가지를 잘 활용해서 객체지향 프로그래밍을 한다.
잘 만들어진 객체지향 프로그래밍은 책임과 역할을 잘 나누어서 코드를 작성한다는 것이다.
클래스 (Class)
클래스는 쉽게 말해서 설계도라고 할 수 있다.
예를 들어 붕어빵을 만들려면 붕어빵 틀이 필요하다.
붕어빵 틀에 반죽을 넣고 일정시간 구워내면 붕어빵이 나온다.
그리고 필요에 의하면 틀에 다시 반죽을 넣고 또 빵을 만들어 낼 수 있다.
또한 설계도에는 2가지를 상태와 행위을 내포한다
붕어빵 모양은 상태에 해당한다.
얼마나 구울지는 행위에 해당한다.
인스턴스 (Instance)
클래스를 설계도라고 하고 설계도대로 객체를 만들는 과정을 인스턴스화라고 한다.
즉 객체를 인스턴스라고 한다.
인스턴스는 메모리 공간을 차지한다.
정보와 행위를 작성한 클래스를 실체화해서 프로그램에 로딩한다.
정보와 행위가 그대로 로딩되는 것이 아니라 위치정보(주소값)를 메모리에 로딩한다.
프로그램은 객체의 위치정보를 변수에 저장해두고 필요할 때 참조해서 이용한다.
인터페이스(Interface)
특정 기능을 가진 메소드의 집합을 정의하는 추상화 구조이다.
클래스가 특정한 메소드를 구현하도록 강제시킬 수 있다.
코드의 일관성을 높인다.
객체지향 프로그래밍에서 역할을 나타낸다.
다형성을 구현할 수 있다.
'개발관련 > TIL' 카테고리의 다른 글
내배캠 3주 4일차 (0) | 2024.05.02 |
---|---|
내배캠 3주 3일차 (0) | 2024.05.01 |
내배캠 3주 1일차 (0) | 2024.04.29 |
2024-04-24 (0) | 2024.04.24 |
2024-04-22 (0) | 2024.04.22 |