객체 지향 프로그래밍 OOP:Object-Oriented Programming
객체란?
- 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별 가능한 것.
- 객체는 속성과 동작으로 구성
- 객체 모델링(Object Modeling): 현실 세계의 객체를 소프트웨어 객체로 설계하는 것
객체의 상호작용
- 객체들 사이의 상호작용 수단은 메소드
- 객체가 다른 객체의 기능을 이용하는 것 == 메소드 호출
메소드 호출
- 리턴값 = 전자계산기객체.메소드(매개값1, 매개값2,...);
- int result = Calculator.add(10,20);
객체 간의 관계
- 객체는 개별적으로 사용될 수 있으나, 대부분 다른 객체와 관계를 맺고 있음
- 집합관계: 하나는 부품, 하나는 완성품
- 사용관계: 객체간의 상호작용; 객체는 다른 객체의 메소드를 호출하여 원하는 결과를 얻음
- 상속관계: 상위객체를 기반으로 하위 객체를 생성하는 관계
객체와 클래스
- 클래스: 설계도; 객체를 생성하기 위한 필드와 메소드와 정의되어 있음
- 인스턴스: 클래스로부터 만들어진 객체
객체 지향 프로그래밍 개발
1. 클래스 설계
2. 설계된 클래스를 가지고 사용할 객체를 생성
3. 생성된 객체를 이용
클래스 선언
- public 접근 제한자: 파일이름과 동일한 이름의 클래스 선언에만 붙일 수 있음
- 파일 이름과 일치하지 않는 클래스 선언에 public 접근 제한자를 붙이면 컴파일 에러가 발생
- 소스 파일 하나당 동일한 이름의 클래스 하나를 선언하는 것이 좋음
객체 생성과 클래스 변수
- 클래스로부터 객체를 생성하려면 new 연산자를 사용
- new 클래스();
- new는 클래스로부터 객체를 생성시키는 연산자
- new 연산자 뒤에 생성자가 오고 생성자는 클래서()형태를 가지고 있음
- new 연산자로 생성된 객체는 Heap 영역에 생성됨
- 힙영역에 객체 생성 후 객체의 번지를 리턴
- 대부분의 객체 지향 프로그램은 라이브러리와 실행 클래스가 분리되어 있음
클래스의 구성 멤버
- 필드: 객체의 고유 데이터, 부품 객체, 상태 정보를 저장;
- 생성자와 메소드 전체에서 사용되며 객체가 소멸 되지 않는 한 객체와 함께 존재
- 생성자: 생성자는 new 연산자로 호출되는 특별한 중괄호 {} 블록;
- 객체 생성 시 초기화 담당
- 클래스 이름으로 되어있고 리턴 타입으 잆음
- 메소드: 객체의 동작에 해당하는 중괄호{} 블록
- 메소드를 호출하면 중괄호 블록에 있는 모든 코드들이 일괄적으로 실행
- 필드를 읽고 수정하는 역할 + 다른 객체를 생성해서 다양한 기능을 수행
- 객체 간의 데이터를 전달하는 수단
- 외부로부터 매개값을 받아 실행 + 실행 후 결과 값을 외부로 리턴
'Java > 혼자 공부하는 자바' 카테고리의 다른 글
혼자공부하는자바 6-6 패키지와 접근 제한자 (0) | 2022.11.28 |
---|---|
혼자공부하는자바 6-5 인스턴스 멤버와 정적 멤버 (0) | 2022.11.28 |
혼자공부하는자바 ch 6-4 메소드 (0) | 2022.11.25 |
혼자공부하는자바 ch 6-3 생성자 (0) | 2022.11.25 |
혼자공부하는자바 ch 6-2 필드 (0) | 2022.11.23 |