[JAVA]객체 지향 프로그래밍과 클래스
카테고리: JAVA
[11] 객체 지향 프로그래밍과 클래스
11.1. 객체와 객체 지향 프로그래밍 (Object Oriented Programming, OOP)
- 객체(Object)
- 구체적 데이터 단위(물리적 객체)
- ex)
개, 고양이, 호랑이, 학생, 회원, 소나타...
- ex)
- 추상적 데이터 단위(개념적 객체)
- ex)
동물, 주문, 배송, 자동차,....
- ex)
- 구체적 데이터 단위(물리적 객체)
- 절차 지향 프로그래밍과 객체 지향 프로그래밍
- 절차 지향 프로그래밍
- 시간이나 사건의 흐름 중심
- ex)
기상 -> 세면 -> 식사 -> 버스 탑승 -> 요금 지불 -> 학원 도착
- ex)
- 시간이나 사건의 흐름 중심
- 객체 지향 프로그래밍
- 각각의 객체 중심
- ex)
객체 : [학생] / [밥] / [버스] / [학교] [학생] -> 먹는다 -> [밥] [학생] -> 탄다 -> [버스] [학생] -> 간다 -> [학원]
- ex)
- 객체 지향 프로그래밍 방법
- 클래스를 통해 객체 정의 → 메서드를 통해 각 객체의 속성 구현(멤버 변수) → 메시지 전달을 통한 객체간 협력 구현
- 객체의 예
- 온라인 쇼핑몰에 로그인을 하고 여러 판매자의 제품 중 하나를 골라 주문
- 학원 가는 길에 별다방에 들려 커피를 주문
- 성적 확인을 위해 학사 관리 시스템에 로그인하여 수강했던 과목들의 성적 확인
- 각각의 객체 중심
- 절차 지향 프로그래밍
11.2. 클래스
- 객체와 관련된 데이터와 처리 동작을 한데 모은 코드 뭉치
-
추상화(Abstraction) : (= 일반화) 데이터를 비슷한 특징이나 동작을 기준삼아 추려내는 것
객체 추상화된 클래스 탈것 이륜 자전거, 오토바이 Bike = 자동차 승용차, 버스, 트럭 Car = 운송수단 자동차, 배, 비행기 Vehicle - 명사적 특징을 뽑아내는 추상화 과정 => 멤버 변수(필드) 추출
-
동사적 특징을 뽑아내는 추상화 과정 => 멤버 함수(메서드) 추출
-
클래스는 객체의 청사진(Blueprint)이다.
- this : 객체 자신의 주소
- super : 조상 객체의 주소
11.3. 객체와 클래스
- 클래스 : 객체를 생성하기 위해 추상화를 거쳐 기술해놓은 프로그래밍 설계도
- 객체(Object)생성 / 인스턴스(Instance)화 : 클래스를 기초삼아 실체화하는 작업
-
소프트웨어의 객체 : 설계도(클래스)에 따라 구현된 내용을 메모리에 탑재, 메모리 주소를 부여한 것
-
클래스를 객체로 만드는 코드
Student myStudent = new Student(); : Student 클래스의 Student() 생성자를 이용, new를 통해 새로 생성된 객체를 메모리에 적재 후 변수 myStudent에 대입
클래스 타입 (참조)변수 객체 생성 생성자 Student myStudent new Student();
댓글 남기기