반응형

[학습일지] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강 5주차


 

5주차 강의 학습내용

 

interface
자바의 유용한 클래스
자료구조

 


interface

 

객체지향의 4가지 특징으로 가장 중요하다고 여겨지는 것은 다형성이다.

다형성을 더 효과적으로 사용하는 것을 목적으로 만들어진 것이 인터페이스이다.

 

기본적으로 인터페이스는 클래스가 아니며, 추상 메서드를 갖고 있다고 생각하면 된다.

전에 학습한 추상 클래스는 기본적인 클래스의 틀을 유지하면서 추가적으로 추상 메서드를 갖고 있다.

 

반면, 인터페이스는 추상 메서드만을 갖는다.

추상 메서드 외에 static 메서드나 default 메서드도 갖는 것이 가능하지만

추상 메서드가 가장 중요하다.

 

인터페이스를 구현하게 되면 클래스를 작성하기 이전에 미리 어떠한 함수를 구현해야 하는지 알 수 있으며

해당 인터페이스를 구현했다면 인터페이스에서 작성한 모든 추상 메서드를 구현한 것이 된다.

 

인터페이스를 구현한 클래스가 여러 종류라면 그중 원하는 인스턴스로 교체해주면 간단히 다형성을 사용할 수 있다.

인터페이스에서 구현할 메서드들을 추상 메서드로 미리 명시해줬기 때문에 함수의 반환 타입, 함수명, 매개변수는 같아진다.

이렇듯 인터페이스를 사용하면 다형성을 효과적으로 이용할 수 있기 때문에 사용부의 코드 변경이 굉장히 축소된다.

Property에 key value형태로 value만 바꿔주며 사용부의 코드 변경을 전혀 하지 않게 만들 수도 있다.

 

또한 자바에서 상속은 단일 상속으로 제한이 있기 때문에 직접적인 부모-자식 관계가 아닌

연관성이 적은 클래스들에서는 상속을 받기 어려울 수 있다.

하지만 인터페이스는 이러한 제한이 없기 때문에 연관이 없었던 클래스들의 공통 기능을 만들어 줄 수 있다.

 

 

 


자바의 유용한 클래스

 

Object

toString() : 객체의 참조변수를 참조값이 아닌 String을 반환하도록 재정의 할 수 있다.

equals() : 객체의 참조주소를 비교한다.

hashcode() : hash를 사용하는 Collection에서 문제가 없도록 equals와 같이 재정의 한다.

 

Class

 

 

로컬에 클래스가 없는 경우 해당 클래스의 멤버를 사용할 수 없다.

 

class 클래스는 컴파일된 class 파일 정보를 불러와 동적 로딩 시킨 후 사용할 수 있게끔 도와준다.

Reflection programming으로 활용할 수 있다.

 


자료구조

 

(Stack)

Stack = new Stack

(Queue)

Queue = new LinkedList

(Array)

ArrayList = new ArrayList

(Linked List)
LinkedList = new LinkedList

 

(Hash)
HashSet = new HashSet
HashMap = new HashMap

 

(Heap)

Queue = new PriorityQueue

(BinarySearch Tree)
TreeSet
TreeMap

 

 

 

 


 

반응형

+ Recent posts