JAVA_11_객체지향 프로그래밍
[객체 지향프로그래밍]
1. 객체지향프로그래밍: 객체들의 모임, 각각의 객체는 메시지를 주고받고 데이터 처리
-프로그램이 복잡할 경우 수행에 편리함
VS절차지향 프로그래밍: 프로그램을 수행하는 절차나 함수를 중심으로 구성
-단순한 프로그램 수행에는 편리함
-하드웨어와 친밀한 프로그래밍 예)C언어
문제가 생겼을 때 전체를 바꿔야 함 VS 문제가 생긴 곳만 교체
2. 객체지향 프로그래밍 특징
1)캡슐화(Encapsulation)-접근제한자 private, getter, setter 메소드
● 관련된 필드(속성)와 메소드(기능)를 하나로 묶고, 실제 구현내용을 외부로부터
감추는 기법(정보은닉)
● 만일의 상황(타인이 외부에서 조작할 경우)을 대비하여 특정 속성이나 메소드를
사용자가 조작할 수 없도록 숨겨놓음
● 외부에서는 공개된 메소드(기능)를 통해 접근함
2)상속(Inheritance)-extends 상위클래스, 하위클래스
● 이미 작성된 클래스(상위클래스)의 특성을 그대로 이어받아 새로운
클래스(하위클래스)를 생성하는 기법
● 기존 코드를 재사용하거나 재정의→재사용+확장
3)추상화(Abstraction)-abstract 추상클래스, 추상메소드
● 객체에서 공통된 속성과 행위를 추출하는 기법
● 상세한 정보는 무시하고 필요한 정보들만 간추려서 구성
예)개의 특성을 나열하면 개라는 것을 알 수 있음(그외 세세한 정보는 무시)
4)다형성(Polymorphism)-오버로딩, 오버라이딩
● 다양한 형태로 나타날 수 있는 능력
● 같은 기능(메소드)를 호출하더라도 객체에 따라 다르게 동작하는 것
예)리모콘의 >버튼을 눌렀을 때 컴퓨터, TV에서 각각 다른 기능이 동작하는 것
● 상위 클래스의 동작을 하위 클래스에서 다시 정의하여 사용하는 것도 포함(오버라이딩, overriding)
3. 클래스
● 객체(인스턴스)가 가지는 필드(속성)와 메소드(기능)을 묶어둔 하나의 단위
● 현실의 객체를 표현하기 위한 설계도
필드(변수들의 모임) 메소드
속성 행동
MVC 패턴
- Model: 데이터
- View: 출력되는 부분 예)메인문
- Controller: 코드가 실행되는 부분 예)메소드문
'JAVA' 카테고리의 다른 글
[JAVA]13.상속 (0) | 2023.06.12 |
---|---|
[JAVA]12. 생성자 (0) | 2023.06.11 |
[JAVA]10. ArrayList (0) | 2023.06.09 |
[JAVA]9. 메소드 (0) | 2023.06.08 |
[JAVA]8. 2차원 배열 (1) | 2023.06.07 |