티스토리 뷰
객체지향의 개념
OOP(Object Oriented Programming)
: 모듈화된 소프트웨어 개발에 대한 요구 발생, 객체지향프로그래밍
- 객체지향을 통해 보다 높은 유지보수성 유지가 가능해짐
- 객체와 객체 간 자유로운 데이터 이동이 가능해짐
객체, 클래스, 인스턴스
- 객체 : 현실 세계에 존재하는 유,무형의 모든 것
- 정적인 요소 : 변수 (Variable) [이름, 속도, 색깔]
- 동적인 요소 : 메서드 (Method) [시동켠다(), 이동한다()]
- 클래스 : 현실 세계의 객체를 컴퓨터 메모리에 생성할 수 있는 템플릿
Class Car { //클래스
String name; //변수
void startEn(){} //메서드
}
- 인스턴스 : 컴퓨터 메모리에 존재하는 객체
객체지향 언어의 주요 개념 1) 상속과 다형성
- 상속 (Inheritance)
: 기존의 클래스를 이용해서 새로운 클래스를 작성함
- 상속을 통해 "중복"이라는 문제 해결
: 상속은 코드를 간결하게 하여 코드의 재사용성을 높이는 객체지향의 핵심 개념
부모 클래스와 자식 클래스의 관계가 일반화, 특별화('is a ~')에 있어야 함.
- 자바는 상속을 통해 객체들 사이의 계층 구조를 이룰 수 있음
- 다형성 (Polymorphism)
: 하나의 인터페이스를 이용해 서로 다른 구현을 제공함
- 다형성은 메서드 오버로딩(Overloading)과 메서드 오버라이딩(Overriding)을 통해 지원됨
- 메서드 오버로딩 : 한 클래스 안에 같은 이름의 메서드를 여러 개 정의하면서, 그 인자의 개수나 유형을 다르게 해 놓은 형태
- 메서드 오버라이딩 : 상속 관계에 있는 하위 클래스가 상위 클래스가 가지고 있는 메서드를 재정의하는 것
객체지향 언어의 주요 개념 2) 추상화, 캡슐화, 정보 은닉, 메시지
- 추상화 (Abstraction)
: 구체적인 사실들을 일반화시켜 기술하는 것.
현실 세계에 존재하는 다양한 객체들의 공통된 특성을 모아 일반화해 놓는 것
- 캡슐화 (Encapsulation)
: 변수와 메서드 하나의 추상화된 클래스로 묶는 과정을 의미함.
-> 객체가 제공하는 메서드를 통해 객체를 이용하고, 데이터가 실제 어떻게 처리되는 지는 알 필요 없음
- 정보 은닉 (Information Hiding)
: 객체지향 언어에서는 캡슐화된 변수나 메서드를 선택적으로 공개하거나 숨길 수 있음.
- 메시지 (Message)
: 객체 간에 서로 통신하는 방법
'Coding - Algo > Java' 카테고리의 다른 글
[백준] 10871번:X보다 작은 수 (Java 자바) (0) | 2021.07.17 |
---|---|
[Java] 클래스의 구조 (0) | 2021.07.10 |
[JAVA] jdk 파일 설치 시, “다른 Java 설치가 진행 중”이므로 JDK 를 설치할 수 없습니다" (0) | 2021.07.06 |
pom.xml 오류 - 버전 오류 (0) | 2021.04.15 |
JRE 버전 경고 문제 해결 방법 (3) | 2021.04.15 |
- Total
- Today
- Yesterday
- 1240 자바
- 백준 풀이
- yoloV3
- union-find
- SSAFY
- poker swea
- 백준 dp 문제
- 프로그래머스 더 맵게
- 파이썬 풀이
- swea 1240 자바
- 삼성청년SW아카데미
- swea 4070 타일링
- 프로그래머스
- 파이썬
- 3996 자바
- swea 1240
- 프로그래머스 자바
- swea 타일링
- 1699 자바
- 프로그래머스 파이썬
- 백준 17144
- SWEA
- 백준파이썬
- 타일링 자바
- 메뉴리뉴얼 풀이
- 더 맵게
- swea 타일링 자바
- 백준
- ubuntu
- 우분투
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |