자바는 대표적인 객체지향 프로그래밍 (OOP: Object Oriented Programming)언어.
1. 객체란?
1) 정의
: 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신과 다른 것을 식별 가능한 것.
(예) 물리적으로 존재하는 사람, 책, 자동차, 추상적인 학과, 강의, 주문 등이 모두 객체가 될 수 있음.
2) 구성
- 객체는 크게 속성 과 동작으로 구성됨.
(예) 사람과 자동차
-사람의 속성 : 이름, 성별 등
-사람의 동작 : 먹다, 말하다, 웃다 등
-자동차의 속성 : 색상, 모델명 등
-자동차의 동작 : 달린다, 멈춘다 등 과 같다.
자바에서는 이러한 객체의 속성을 필드(field), 동작을 메소드(method)라고 부른다.
> 현실세계의 객체를 소프트웨어 객체로 설계하는 것을 객체모델링 이라고 하며,
현실세계 객체의 속성과 동작을 추려내어 소프트웨어 객체의 필드와 메소드로 정의하는 과정 이라고 볼 수 있음.
3) 특징
- 객체들은 각각 독립적으로 존재하며, 다른 객체와 서로 상호작용 하며 동작함.
- 이때, 객체들 간의 상호작용 수단은 메소드.
메소드 호출을 통해 다른 객체의 기능을 이용, 매개값(넘겨주는 값)과 리턴값(돌려받는 값)을 통해 데이터를 주고받기도 함.
- 객체는 개별적으로 사용될 수 있지만, 대부분 다른 객체와 관계를 맺고 있다.
관계의 종류는 크게 상속관계, 집합관계, 사용관계가 있다.
- 상속관계는 상위(부모)객체를 기반으로 하위(자식)객체를 생성하는 관계를 말함. (예) 자전거는 교통수단이라는 상위객체의 하위객체가 될 수 있다.
- 집합관계는 부품과 완성품으로 비유할 수 있는데, 여러 가지 부품들의 집합이 모여 하나의 완성품 객체를 완성한다.(예) 바퀴객체, 브레이크 객체, 핸들객체 등이 모여 자전거 객체가 된다.
- 사용관계는 객체간의 상호작용을 말한다. (예) 사람객체는 달린다, 멈춘다 등의 메소드를 통하여 자전거 객체를 사용할 수 있다.
2. 객체지향 프로그래밍의 특징
- 캡슐화(Encapsulation) : 캡슐처럼 묶어 내부의 구조를 감추는 것을 말함.
외부에서는 내부의 구조를 알지 못하며, 객체가 노출하여 제공하는 필드와 메소드만 이용할 수 있음.
1) 캡슐화를 하는 주된 이유
a. 공개하고 싶지 않은 내용의 보안성
b. 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 한다.
▶ 중요한 부분이 밖으로 노출되어 있으면, 사용자의 실수로 인해 오류가 발생할 수 있음.
자바에서는 접근제한자(Access Modifier)를 통해 캡슐화된 멤버의 사용범위를 제한함.
접근제한자의 종류는 public, protected, private 등이 있다.
- 상속(Inheritance)
: 일반적으로 상속은 부모가 가지고 있는 재산을 물려주는 것을 뜻함.
하위객체는 상위객체를 재사용하여 쉽고 빠르게 설계할 수 있어, 반복된 코드의 중복을 줄여줌.
(개발의 효율성 ↑, 개발 소요시간↓)
- 다형성(Polymorphism)
: 다형성은 하나의 타입에 여러 객체를 대입하여 다양한 기능을 이용할 수 있도록 함.
부모 타입에는 모든 자식 객체가 대입될 수 있으며, 인터페이스 타입에는 모든 구현 객체가 대입될 수 있다.
출처: https://devuna.tistory.com/3 [튜나 개발일기]
[자바(JAVA) 개념]- 객체 / 객체지향 프로그래밍의 특징
자바는 대표적인 객체지향 프로그래밍 (OOP: Object Oriented Programming)언어이다. 여기서, 객체란 무엇일까? 객체(Object)란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신과 다른
devuna.tistory.com
'[JAVA]' 카테고리의 다른 글
Long과 long은 어떤 차이가 있는 걸까? (0) | 2023.11.03 |
---|---|
자료형 정리 (2) | 2023.10.31 |
try-catch-finally 말고 try-with-resources 사용법 (0) | 2023.06.10 |
Anonymous Class - 익명 클래스, 무명 클래스 (0) | 2021.09.13 |
화면으로부터 입력 받기 - Scanner, string 객체, equals() (0) | 2021.08.31 |
자바는 대표적인 객체지향 프로그래밍 (OOP: Object Oriented Programming)언어.
1. 객체란?
1) 정의
: 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신과 다른 것을 식별 가능한 것.
(예) 물리적으로 존재하는 사람, 책, 자동차, 추상적인 학과, 강의, 주문 등이 모두 객체가 될 수 있음.
2) 구성
- 객체는 크게 속성 과 동작으로 구성됨.
(예) 사람과 자동차
-사람의 속성 : 이름, 성별 등
-사람의 동작 : 먹다, 말하다, 웃다 등
-자동차의 속성 : 색상, 모델명 등
-자동차의 동작 : 달린다, 멈춘다 등 과 같다.
자바에서는 이러한 객체의 속성을 필드(field), 동작을 메소드(method)라고 부른다.
> 현실세계의 객체를 소프트웨어 객체로 설계하는 것을 객체모델링 이라고 하며,
현실세계 객체의 속성과 동작을 추려내어 소프트웨어 객체의 필드와 메소드로 정의하는 과정 이라고 볼 수 있음.
3) 특징
- 객체들은 각각 독립적으로 존재하며, 다른 객체와 서로 상호작용 하며 동작함.
- 이때, 객체들 간의 상호작용 수단은 메소드.
메소드 호출을 통해 다른 객체의 기능을 이용, 매개값(넘겨주는 값)과 리턴값(돌려받는 값)을 통해 데이터를 주고받기도 함.
- 객체는 개별적으로 사용될 수 있지만, 대부분 다른 객체와 관계를 맺고 있다.
관계의 종류는 크게 상속관계, 집합관계, 사용관계가 있다.
- 상속관계는 상위(부모)객체를 기반으로 하위(자식)객체를 생성하는 관계를 말함. (예) 자전거는 교통수단이라는 상위객체의 하위객체가 될 수 있다.
- 집합관계는 부품과 완성품으로 비유할 수 있는데, 여러 가지 부품들의 집합이 모여 하나의 완성품 객체를 완성한다.(예) 바퀴객체, 브레이크 객체, 핸들객체 등이 모여 자전거 객체가 된다.
- 사용관계는 객체간의 상호작용을 말한다. (예) 사람객체는 달린다, 멈춘다 등의 메소드를 통하여 자전거 객체를 사용할 수 있다.
2. 객체지향 프로그래밍의 특징
- 캡슐화(Encapsulation) : 캡슐처럼 묶어 내부의 구조를 감추는 것을 말함.
외부에서는 내부의 구조를 알지 못하며, 객체가 노출하여 제공하는 필드와 메소드만 이용할 수 있음.
1) 캡슐화를 하는 주된 이유
a. 공개하고 싶지 않은 내용의 보안성
b. 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 한다.
▶ 중요한 부분이 밖으로 노출되어 있으면, 사용자의 실수로 인해 오류가 발생할 수 있음.
자바에서는 접근제한자(Access Modifier)를 통해 캡슐화된 멤버의 사용범위를 제한함.
접근제한자의 종류는 public, protected, private 등이 있다.
- 상속(Inheritance)
: 일반적으로 상속은 부모가 가지고 있는 재산을 물려주는 것을 뜻함.
하위객체는 상위객체를 재사용하여 쉽고 빠르게 설계할 수 있어, 반복된 코드의 중복을 줄여줌.
(개발의 효율성 ↑, 개발 소요시간↓)
- 다형성(Polymorphism)
: 다형성은 하나의 타입에 여러 객체를 대입하여 다양한 기능을 이용할 수 있도록 함.
부모 타입에는 모든 자식 객체가 대입될 수 있으며, 인터페이스 타입에는 모든 구현 객체가 대입될 수 있다.
출처: https://devuna.tistory.com/3 [튜나 개발일기]
[자바(JAVA) 개념]- 객체 / 객체지향 프로그래밍의 특징
자바는 대표적인 객체지향 프로그래밍 (OOP: Object Oriented Programming)언어이다. 여기서, 객체란 무엇일까? 객체(Object)란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신과 다른
devuna.tistory.com
'[JAVA]' 카테고리의 다른 글
Long과 long은 어떤 차이가 있는 걸까? (0) | 2023.11.03 |
---|---|
자료형 정리 (2) | 2023.10.31 |
try-catch-finally 말고 try-with-resources 사용법 (0) | 2023.06.10 |
Anonymous Class - 익명 클래스, 무명 클래스 (0) | 2021.09.13 |
화면으로부터 입력 받기 - Scanner, string 객체, equals() (0) | 2021.08.31 |