객체지향언어의 특징(캡슐화, 상속, 다형성)과 클래스, 객체, 인스턴스
1. 객체지향언어란?
객체지향언어는 현실세상에서 우리가 관찰할 수 있는 모든 객체(ex, 자동차, 바퀴, 의자, 사람 등)는 자신만의 "속성"과 "기능"을 가지고 상호작용한다고 보고, 이러한 개념을 프로그램에 적용하여 여러가지 독립된 단위인 객체를 생성하고, 조작하여 객체끼리 상호작용할 수 있게 하는 프로그래밍 언어를 말합니다.
2. 클래스, 객체, 인스턴스
프로그램상에서 구현할 대상을 객체라고 하며, 객체의 "속성"과 "기능"을 정의한 설계도와 같은 것이 클래스입니다.
그리고 클래스의 내용대로 메모리상에 구현된 실체가 인스턴스(instance)이며, 일반적 의미로 객체라고도 부릅니다
3. 객체지향언어의 특징 (캡슐화, 상속, 다형성)
1) 캡슐화 (Encapsulation)
캡슐화란 객체의 내부 구조 및 정보를 캡슐처럼 하나로 감싸 외부에서 볼수 없게 은닉하여 보호하는 것을 말하며, 외부와의 상호작용을 위해 필요한 부분만 일부 공개하게 됩니다.
자바에서는 이러한 캡슐 기능이 클래스를 통하여 구현되며, 클래스는 내부에 멤버변수와 멤버함수(메소드)로 구성되어 있습니다. 이와같이 캡슐화된 객체는 외부에서 직접적으로 접근하는 것을 막고, 외부접근이 허락된 멤버변수와 멤버함수(메소드)를 통해서만 다른 객체와 상호작용할 수 있도록 합니다.
2) 상속 (Inheritance)
상속은 부모 클래스로부터 자식 클래스가 부모 클래스의 속성을 물려받는 것을 말합니다.
자식 클래스는 부모 클래스가 가지고 있는 속성에 자식 클래스만의 속성을 추가함으로써 기능을 확장시켜 사용할 수 있습니다. 이때 부모클래스를 슈퍼클래스, 자식클래스를 서브클래스라고 부릅니다.
3) 다형성 (Polymorphism)
다형성은 하나의 객체나 메소드가 여러가지 다른 형태를 가질 수 있는 것을 말합니다.
다형성의 대표적인 사례로는 오버라이딩(overriding)과 오버로딩(overloading), 그리고 상속받은 객체의 참조변수 변환 등이 있습니다.
- 오버라이딩(overriding) : 부모클래스로부터 상속받은 메소드를 자식클래스에서 재정의하여 사용하는 것.
- 오버로딩(overloading) : 메소드의 이름은 동일하나 매개변수의 타입이나 개수를 달리하여 중복 정의함으로써 매개변수에 따라 특정 메소드가 호출되는 것.
'IT 개발 > Java' 카테고리의 다른 글
[Java] 자바 - 객체 배열 사용법 및 예제 (0) | 2022.06.25 |
---|---|
[Java] 자바 - 클래스 및 객체 생성과 사용법 (0) | 2022.06.25 |
[Java] 자바 - 2차원 배열 사용법 및 예제 (다차원 배열) (0) | 2022.06.22 |
[Java] 자바 - 배열의 사용법과 활용 예제 (선언, 생성, 이용 방법) (0) | 2022.06.21 |
[Java] 자바 - 난수 / 랜덤 숫자 생성하기 - Math.random() 사용법 (0) | 2022.06.17 |