Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

Min's dev-log

[JAVA] 객체 지향 언어 본문

JAVA

[JAVA] 객체 지향 언어

minyy 2023. 5. 1. 01:59

자바는 객체 지향 프로그래밍 언어이다.

객체 지향 프로그래밍이란 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고,

객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.

객체에 대해서는 다음에 클래스와 객체로 정리를 해보겠다.

 

객체 지향 언어란 "함수에게 주어가 생기는 것"이라고도 말할 수 있다.

 

객체 지향 언어의 특징

1) 추상화

설계를 용이하게하는 객체지향언어의 특징이다.

 

- 객체의 공통적인 속성과 기능을 추출하여 정의

- 추상화를 구현할 수 있는 문법 : 추상클래스, 인터페이스

- 어떤 객체가 수행해야 하는 핵심적인 역할만 규정해두고, 실제 구현은 해당 인터페이스를 구현하는 각각의 객체들에서 하도록 프로그램을 설계

- 어떻게 정의하느냐에 따라 다양한 output이 나옴

 

추상클래스와 인터페이스를 간단하게 살펴보자면!

* 추상클래스 : 일반적인 클래스와 마찬가지로 필드와 메서드가짐 + 추상메서드 포함 가능, 다중상속 X

* 인터페이스 : 추상메서드로만 이루어짐, 메서드구현은 인터페이스를 구현한 클래스에서 가능, 다중상속 O

                       인터페이스를 사용하는 이유는 메서드 강제를 함으로써

                       메서드 표준을 정하기 위해, 메서드명 공유하기 위해서이다.

 

2) 상속

부모의 내용을 자식이 별도로 선언, 구현없이 바로 사용이 가능하다.

 

- 부모의 코드를 재사용하여 새로운 클래스를 작성 == 코드 재사용성 증가

- 반복코드 최소화, 오류의 파급효과 절감, 개발의 비용과 시간이 절감 == 유지보수 용이

 

3) 다형성

상황에 따라 다른 역할을 수행할수있도록 객체를 구성하는 것이다.

오버라이딩과 오버로딩을 통해 다형성을 구현할 수 있다.

 

* 오버라이딩: 메서드 재정의(메서드 시그니처가 동일)

상위클래스에 선언되어있는 메서드를 하위 클래스에서 동일하게 선언하여 구현내용을 재정의할 수 있다.

기능을 원하는대로,입맛대로 쓸 수 있는 장점이 있다!

* 오버로딩: 메서드명 중복정의(메서드 시그니처가 달라야만 함)

함수명 중복정의를 허용함으로써 같은 기능을 수행하는 함수끼리 같은 함수명을 공유한다.

ex) println(), 생성자

 

4) 캡슐화

- 서로 관련된 속성과 기능들을 하나로 모듈화하여 데이터를 외부로부터 보호 가능

- 데이터 은닉(hiding)을 통해 내부의 동작을 감추고 필요한 부분만 외부에 노출

- 접근제어자, getter·setter 메서드를 통하여 캡슐화를 구현

 

Comments