반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

java.Prepare.Interview 본문

[IT]/java

java.Prepare.Interview

givemebro 2021. 3. 5. 09:32
반응형

Object-Oriented

객체지향 , 객체기본단위 관계중심 분석설계 

 

Object

시스템 기본단위, 속성과 기능


Class 와 Object

틀 : 실재화 개체 
붕어빵틀 : 붕어빵
설계도 : 건물 


객체지향주요개념 


Encapsulation : public interface, private implementation
(소통부와 구현부를 분리/인터페이스는 공개하고 구현부는 감춤)

Inheritance : 부모 멤버 상속 , 계층구조형성->다형성 적용환경 제공
(부모 멤버를 물려받아 사용/계층구조 형성을 통한 다형성 적용환경)

Polymorphism : 하나의 메세지 방식 One Interface 다양한 객체들이 Multiple Implements 각자의 방식으로 동작
ex) play 버튼만 알면 유튜브, 멜론플레이어, 시디플레이어 등 다양한 실제 플레이어객체를 동작시킬 수 있음

Overloading : 다양한 매개변수 ( 동일한 이름의 메서드(생성자)를 다양한 매개변수로 여러개 정의)

Overriding : 부모 메서드를 자신에 맞게 재정의 

ide(이클립스) , 자바환경설정(jdk>jre>jvm) ,  객체지향분석설계(OOAD/UML(Class Diagram)

 

Class Diagram relationship

association ( use a 사용 )  : 가져다 쓰자
aggregation ( has a 집합 )  : 가지고 있자
composition ( consist of 구성 )  : 이거 없으면 못 만든다
generalization ( is a 일반화 ) : 사람, 개 다 공통점이 있더라

java.lang.Object : 최상위 클래스( 자바 클래스 계층구조의 root)

abstract와 interface의 특징

abstract : 추상 클래스와 메소드를 정의할 때 사용
추상 크래스는 직접 객체화될 수 없다 -> 부모로서 멤버를 돌려주고 계층구조 형성을 통한 다형성 적용 가능 
추상 메소드는 자식 클래스에서 반드시 구현해야 한다 (구현을 강제) 
만약 구현되지 않으면 자식 클래스에서도 abstract 선언되어 직접 객체화될 수 없다

interface : 명세, 약속 (구현한 측과 사용하는 측과의 약속)
인터페이스는 다양한 계층구조 형성을 통한 다형성 적용을 할 수 있음
(인터페이스는 다중 상속의 장점을 취하는 의미)
일반적으로 public static fianl 상수와 abstract메서드만 정의
(예외적으로 jdk 1.8 이상에서는 default method와 static method를 지원)

 

abstract와 interface의 공통점과 차이점을 비교

공통점 : 계층구조 형성을 통한 다형성 적용, abstract metheod를 통한 하위에 구현 강제(표준화)
차이점 : abstract는 객체의 멤버(변수, 메서드)를 물려줄 수 있음 > 단일 상속
interface는 다중 구현이 가능(다양한 계층 구조 형성을 통한 다형성 적용)

 

Set과 List의 특징

set : 중복 인정 x , TreeSet(정렬기능), LinkedHashSet(추가 순서보장)
List : 인덱스 관리, ArrayList(조회에 장점), LinkedList(삭제, 삽입, 수정에 장점)

반응형

'[IT] > java' 카테고리의 다른 글

java.Collection.Set  (0) 2021.03.05
java.Collection  (0) 2021.03.05
java.Interface.default/static method  (0) 2021.03.05
java.class.layout  (0) 2021.03.05
java.Interface  (0) 2021.03.04
java.Design pattern.template  (0) 2021.03.04
java.Design pattern  (0) 2021.03.04
java.abstract(추상화)  (0) 2021.03.04
Comments