안녕하세요 넴넴입니다~
주말은 잘 지내셨나요? 드디어 올 것이 왔네요
객체 지향 프로그래밍 <- 이거 중요하니 잘 이해해야합니다..
긴 말은 줄이고 바로 공부로 들어가보겠습니다.
개념때문에 글이 많이 긴데 이해해주세여
객체 지향 프로그래밍
OOP : Object Oriented Programming
부품 객체를 먼저 만들고 하나씩 조립해 프로그램 만드는 기법
객체란?
- 물리적으로 존재(현실세계).
- 자신의 속성과 동작을 가지는 모든 것
- 필드, 메소드로 구성된 자바 객체 모델링 가능.
객체의 상호 작용
- 객체들은 서로 간 기능(동작)을 히용하고 데이터를 주고 받음.
객체간 관계
- 객체는 다른 객체와 관계를 맺음
관계 종류
1. 집합 관계 : 완성품과 부품의 관계
2. 사용 관계 : 객체가 다른 객체를 사용
3. 상속 관계 : 종류 객체와 구체적인 사물 객체 관계
캡슐화
1. 객체 필드, 메소드를 하나로 묶고 실제 구현 내용 감춤.
2. 내부 구조 알지 못하고 객체가 노출해 제공하는 필드와 메소드만 이용 가능
3. 접근 제한자 사용.
상속
1. 상위 필드와 메소드를 하위 객체에게 물려줌.
2. 재사용해서 빨리 개발 가능
3. 반복 코드 중복 줄임
4. 유지 보수의 편리성 제공
5. 객체의 다형성 구현
다형성
1. 같은 타입이지만 실행 결과가 다양한 객체를 대입.
2. 부모 타입에는 모든 자식 객체가 대입
3. 인터페이스 타입에는 모든 구현 객체가 대입
효과
- 객체 부품화 가능, 유지보수 용이
객체와 클래스
1. 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의
2. 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스
3. 하나의 클래스로부터 여러 개의 인스턴스 만들 수 있음.
궁금하면 구글에 자바 예약어 검색해서 봐봅시다
New 연산자
1. 객체 생성 역할
- 클래스()는 생성자를 호출하는 코드
- 생성된 객체는 힙 메모리 영역에 생성
2. new 연산자는 객체 생성 후 객체 생성 번지 리턴
클래스 변수
1. new 연산자에 의해 리턴 된 객체 번지 저장(참조 타입 변수)
2. 힙 영역의 객체를 사용하기 위해 사용
고생하셨습니다. 이게 개념이 좀 많아서 많이들 지루해 합니다.(저도 그랬고요)
코드로 이해하러 가봅시다. 클래스 2개를 만들어 줍시다.
new 생성자를 사용했기 때문에 std1과 std2에는 메모리 주소가 있게 됩니다.
맨 위 사진에는 값이 없기 때문에 다른 값이 나오지는 못합니다.
~ 참조함 사이에 값이 std1의 주소값입니다.
클래스의 구성 멤버
1. 필드 - 객체 데이터 저장
2. 생성자 - 객체 생성 시 초기화 역할 담당
3. 메소드 - 객체 동작에 해당하는 실행 블록
필드의 내용
1. 객체의 고유 데이터2. 객체가 가져야 할 부품 객체3. 객체의 현재 상태 데이터
코드로 이해하러 가봅시다클래스 2개 만들어주시고(하나는 public~ 체크 없이, 하나는 public~ 체크)
이렇게 한 후 출력을 해봅시다(출력 전에 값을 생각해봅시다!)
저희가 Car에서 적은 값들이 다 나왔습니다.
그럼 저 위의 값들을 바꿔보죠
new 연산자를 사용해 myCar와 yourCar는 서로 다른 번지를 가지게 됩니다.
동일한 Class를 사용하고 있지만 값이 다르게 나오게 됩니다.
더 하려고 했지만 개념이 너무 많아 여기서 더 하면 안될거 같아서
이렇게 끊고 다음 공부에서 객체지향 프로그래밍 못한 것을 이어서 하겠습니다.
'JAVA Basic' 카테고리의 다른 글
공부 8일차) 문제 정답 (0) | 2022.12.28 |
---|---|
공부 8일차) 필드, 메소드 (0) | 2022.12.28 |
공부 6일차) 열거 타입 (0) | 2022.12.24 |
공부 5일차) 참조 타입 + 배열 (0) | 2022.12.16 |
공부 4일차) 문제 정답 (0) | 2022.12.15 |