객체(object)
- 의사나 행위가 미치는 대상 (사전적 의미)
- 구체적, 추상적 데이터의 단위 (학생, 회원, 생산, 주문, 배송)
- 절차 지향 프로그래밍 = 시간이나 사건의 흐름에 따른 프로그래밍 방식( ex: 일어난다 -> 씻는다 -> 밥을 먹는다 -> 버스를 탄다 -> 요금을 지불 한다 -> 학교에 도착한다)
- 객체 지향 프로그래밍 = 객체를 정의하고 각 객체가 제공하는 기능들을 구현하고 각 개체가 제공하는 기능들 간의 소통(메시지 전달)을 통하여 객체 간의 협력을 구현
class
———> 추상적(불분명): 클래스(설계도)를 통한 객체 생성이 될 수도 있고 안 될수도 있으니 불분명, 추상적
———> 설계도, 주조틀
———> 자바에서 생성되는 최소 단위, 특정 객체를 설계
———> 현실 세계의 개념인 객체를 컴퓨터에 존재하는 개념의 객체로 바꾼다.
ex) 에어컨 ———> class Aircon
(에어컨의 특성, 기능) ———> (Aicon클래스의 멤버 변수, 메소드)
- 특성: 객체를 특징 지을 수 있는 성질, 단위 ( 제조사, 색상, 크기, 현재 온도…)
- 기능: 객체가 할 수 있는 행위, 동작 ( 전원을 끈다, 전원을 켠다, 온도를 올린다, 온도를 내린다…)
❤️🔥객체 지향 프로그래밍을 할 때 객체를 정의하고 각 객체의 속성을 멤버 변수로, 역할을 메소드로 구현한다. 각 객체간의 협력을 구현.
함수(function)
- 하나의 기능을 수행하는 일련의 코드
- 구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환 됨
- 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음
- 함수의 구성: 이름, 매개 변수, 반환 값, 함수 몸체(body)
- 선언부 + 구현부
함수의 유형 네가지
00 -> void(return타입도 없고) 매개변수도 없다
01 -> void(return타입도 없고) 매개변수는 있다
10 -> return값(가져갈 값)이 있고 매개변수는 없다
11 -> return값도 있고 매개변수도 있다
함수 호출과 스택 메모리
- 스택: 함수가 호출될 때 지역 변수들이 사용하는 메모리
- 함수의 수행이 끝나면 자동으로 반환 되는 메모리
함수 -> 어디에 속해있는게 아닌 단독으로 존재한다.
메소드 -> 클래스에 속해있다
메소드 (method)
- 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수
- 멤버 함수 (member function)이라고도 함
- 메소드를 구현함으로써 객체의 기능이 구현 됨
- 메소드의 이름은 그 객체를 사용하는 객체(클라이언트)에 맞게 짓는 것이 좋음
- ex) getStudentName()
👉절차에 따라 영화 티켓 발권 프로그래밍을 한 예
👉영화 티켓 발권에 필요한 객체에 따라 메소드를 분화하고 필요에 따라 메소드를 호출하여 객체 지향적 프로그래밍을 한 예
👉절차적 프로그래밍과 다르게 프로그램의 수정과 관리가 필요에 따라 각 객체 중심으로 이루어져서 효율적인 코드 관리에 도움이 된다.