객체지향
현실에서 어떤 물체를 만들 때 부품 하나하나를 만들어 조립하는 것처럼
소프트웨어에선 부품에 해당하는 객체를 먼저만들고 객체들을 하나씩 연결하여 프로그램을 만든다
이를 객체지향 프로그램이라 한다.
1) 객체
객체란?
- 세상에 존재하는 식별 가능한 물체 [물리적 : 자동차 사람, 계산기 // 개념적 : 학문, 운동]
- 속성(필드) + 행동(메소드)
- 객체 모델링 : 현실의 객체를 프로그램상의 객체로 설계하는 것
객체 간 관계
- 집합 관계 : 완성품과 부품의 관계[자동차 - 엔진, 타이어,핸들]
- 사용 관계 : 객체의 속성(필드)을 읽고 변경하거나 행동(메소드)을 호충하는 관계[사람 - 자동차(전진, 후진)]
- 상속 관계 : 부모와 자식의 관계(공장[부모]과 제품[제품]의 관계라 생각 할 수 있다.)
객체 지향 프로그램의 특징
- 캡슐화 : 객체의 속성, 행동을 하나로 묶어 외부에 감추는 것 [외부의 잘못된 사용으로 객체가 손상가지 않게하기 위해]
- 상속 : 부모 객체가 자식 객체에게 필드와 메소드를 물려주는것[코드이 재사용성을 높이며, 유지보수 시간을 최소화]
- 다향성 : 하나의 객체에서 필드와 메소드를 변경해 다른것을 만드는것 [자동차의 색상과 타이어]
- 추상화 : 객체의 공통된 부분을 모아 상위 개념으로 새롭게 선언하는 것
객체와 클래스
- 쉽게 설명해 클래스(설계도) 객체(제품)[인스턴스라고도 부른다]로 동일 클래스로 여러 개의 인스턴스를 만드는것
이를 인스턴스화라고 한다.
- 객체를 생성할려면 [클래스명 클래스변수 = new 클래스명]
2) 클래스
설계도를 작성하는 작업
- 클래스명은 대문자로 시작하며 카멜스타일로 작성
- 구성 : 필드/생성자/메소드
- 필드 : 객체의 데이터를 저장 [고유 데이터, 상태 데이터, 객체 데이터]
- 생성자 : new연산자로 객체를 생성할 때 초기화역활을 당담한다. [리턴 타입이 없고 클래스와 이름이 동일]
- 메소드 : 객체가 수행할 동작
클래스 멤버 [static]
- 메소드 영역의 클래스와 같은 위치에 고정적으로 위치하고 있는 멤버
- 객체의 생성 필요 없이 바로 사용이 가능
- 클래스 멤버로 선언된 메서드는 인스턴스 멤버를 사용불가. [객체 생성없이 바로 사용가능해서]
- 반대로 인스턴스 멤버로 선언된 메서드는 클래스 멤버를 사용가능
적고있는데도 이해가 안가냐
'내일배움캠프 > TIL' 카테고리의 다른 글
객체를 활용한 계산기 제작 과정 (0) | 2025.01.06 |
---|---|
[프로그래머스]_알고리즈 코드타카 (0) | 2025.01.03 |
[Intelij] 컴파일도중 프리징이 걸린다면 (0) | 2024.12.31 |
[GitHub]_파일 업로드 중 에러코드 해결방안(2) (0) | 2024.12.27 |
[GitHub]_파일 업로드 중 에러코드 발생시 해결방법(1) (2) | 2024.12.26 |