본문 바로가기
🌱 Computer Science/Programming

[Programming] JAVA(객체지향언어)특징

by 카프리썬_ 2020. 1. 12.
728x90
728x90
객체지향언어 특징

1. 상속 : 상위객체가 하위객체에게 필드와 메소드를 물려줘서 상속받아 사용할 수 있는 것

공통적인 내용이 있는 클래스에서 상속받아 사용할 수 있어서 코드의 '재사용'에 용이합니다.

2. 캡슐화 : 외부의 잘못된 사용으로 내부 객체가 손상되지 않도록 접근지정자를 통해 '정보은닉'을 하는것

객체의 필드,메소드를 하나로 묶고 실제 구현한 내용을 감추는 것

높은 응집도낮은 결합도를 유지할 수 있도록 설계

*응집도: 클래스나 모듈 안의 요소들이 얼마나 밀접하게 관련되어 있는지 나타내는것

*결합도 : 어떤 기능을 실행하는데 다른 클래스나 모듈들에 얼마나 의존적인지 나타내는 것

캡슐화를 통해서 낮은 결합도를 유지할 수 있게됨

3. 다형성 : 하나의 타입에 여러객체를 대입해서 다양한 기능을 이용할 수 있도록 하는것

같은 메시지를 받았을떄 각자의방식으로 동작할 수 있다.

 

java언어 특징

객제지향 프로그래밍 언어라 상속, 캡슐화, 다형성 이 가능한 특징을 가지고 있다.

그리고 JVM만 설치하면 컴퓨터의 운영체제에 상관없이 운영체제게 독립적으로 작동하여 이식성이 높습니다.

 

접근제어자

멤버 or 클래스에 사용되어, 외부로부터의 접근을 제한 (클래스 / 멤버변수 / 메서드 / 생성자)

1. private : 같은 클래스 내에서만 접근 가능

2. default : 같은 패키지 내에서만

3. protected : 같은 패키지 & 다른 패키지의 자식클래스에서 접근 가능

4. public : 접근 제한이 전혀 없음

클래스 / 추상클래스 / 인터페이스 차이

클래스가 설계도라면

추상클래스는 미완성 설계도이며

인터페이스는 밑그림 정도로 생각하면 된다.

 

클래스의 경우 속성과 기능들로 완성된 설계도이기 때문에 인스턴스를 만들 수 있지만

추상클래스와 인터페이스의 경우 미완성이기 때문에 인스턴스를 생성할 수 없다.

 

추상클래스는 미완성 메서드를 포함하지만

인터페이스는 선언부만 있는 메서드와 상수만을 가질 수 있으며 클래스를 작성하는데 도움을 줄 목적으로 사용된다.

 

인터페이스 추가 설명으로는 관계없는 클래스 간 관계를 맺어주고 표준화를 시키며 개인작업이 가능하게 해줘 프로그래밍의 시간을 단축시킬 수 있다.

( class 클래스명 / abstract class 클래스명 / interface 인터페이스명 )

  클래스 추상클래스 인터페이스
비유 설계도 미완성설계도(목차) 밑그림
목적 구현 목차 목차
인스턴스 생성 가능 불가능 불가능
구성 속성(변수), 기능(메소드) 일반메소드,상수,변수필드, only 추상메소드, 상수
다중상속 불가능(extends) 불가능(extends) 가능(implements)

 

 

728x90
반응형