YTCW
java 객체 지향 프로그래밍, oop (object - orientend - programming) 본문
객체란?
데이터(속성)와 해당 데이터를 처리하는 방법(메서드)을 포함하는 프로그래밍의 기본 단위
객체의 예시
ex) 커피 자판기라고 하면
속성으로는
커피의 종류, 가격, 현재 재고, 물의 온도를 지정할 수 있다.
기능으로는
커피 제조, 재고 관리, 가격 설정
ex) 학교 관리 시스템
학생 객체의 속성은
학생 이름, 학번, 수강 과목 등의 데이터가 있겠고
기능으로는
성적 조회, 수강 신청 등의 메서드가 있을 수 있다.
ex) 교수 객체는
속성으로 교수이름, 연구 분야, 담당 과목 등
기능으로는 강의 계획서 업로드, 성적 입력 등이 있을 것이다.
ex) 수업 객체는
속성으로는 과목명, 강의 시간, 강의실 등이 있고
기능으로는 강의 자료 업로드나 출석 체크와 같은 걸 할 수 있다.
클래스 Class
객체를 생성하기 위한 템플릿, 데이터와 메서드를 정의
자동차 클래스
- 속성 (색상, 브랜드, 모델 등)
- 메서드 (주행, 정지, 속도 변경 등) 이 있다.
객체
클래스의 인스턴스 실제로 메모리에 할당되어 동작하는 구체적인 엔티티
ex) 자동차 클래스를 기반으로 만들어진 실제 자동차
볼보 xc60 흰색 자동차 등
상속
한 클래스 (부모)의 속성과 메서드를 다른 클래스(자식)가 받아서 사용하는 기능
전기 자동차 클래스
일반 자동차 클래스의 모든 특성을 상속받고
추가적으로 배터리 관련 속성과 충전 메서드를 가짐
다형성
같은 메소드 호출이 다른 클래스의 객체에 대해 다른 방식으로 실행 가능
ex) 주행이라는 메서드 행동은 전기자동차 객체에서는 전기를 사용
가솔린 자동차 객체에서는 가솔린을 사용하여 주행
캡슐화
객체의 데이터를 외부로부터 숨기고, 내부의 메서드를 통해서만
해당 데이터를 조작할 수 있게 하는 것
자동차의 엔진은 외부에서 직접 조작이 안된다
엔진을 조작하기 위해서는 시동 버튼, 가속 페달 등을 사용하는 것과 같다
추상화
복잡한 세부사항을 숨기고 사용자에게 필요한 정보만을 제공
자동차 운전자는 자동차의 모든 부품 원리를 알지 않아도
방향, 속도, 정지 등의 기본 기능만 이해하면 운전 가능
객체 지향 프로그래밍의 장점(중요성)
재사용성 증가
유지 보수성 증가
확장성 증가
자바에서의 객체 지향 프로그램
코드의 모든 구조가 객체로 표현 가능
프로그램의 유연성과 모듈성 증가
'java' 카테고리의 다른 글
java 메소드, method (0) | 2024.09.05 |
---|---|
java 객체 지향 프로그램의 변수 (0) | 2024.09.05 |
java 배열, array (4) | 2024.09.05 |
java 반복문, for, while, do-while (0) | 2024.09.04 |
java switch, 조건문 (0) | 2024.09.04 |