Intellij에서 Git다루는 방법
1. Intellij와 git 연결
연결과정
2. commit and push
commit and push 과정
인터페이스
1. 인터페이스
인터페이스의 역할
•
객체의 사용 방법을 정의한 타입이다.
•
존재 이유는 개발 코드를 수정하지 않고, 객체를 변경할 수 있도록 하기 위해서 이다.
인터페이스 vs 추상 클래스
•
추상클래스
◦
자신 클래스의 기능을 하위 클래스로 확장 시키기 위해 사용
◦
재사용성을 실현한다.
◦
다중 상속 불가
◦
ex) Animal 클래스가 있고 Eagle, Penguin 클래스는 Animal 클래스를 상속 받는다.
•
인터페이스
◦
각 클래스의 목적에 맞게 기능을 구현하기 위해 사용
◦
다중 상속 가능
◦
ex) Fly 인터페이스를 Eagle이 상속 받고, Swimming 인터페이스를 Penguin이 상속받는다.
인터페이스 활용
•
홀수 짝수를 구분하는 프로그램을 구현
•
하나는 한글로 다른 하나는 영어로 결과가 출력
인터페이스 구현
인터페이스를 상속받는 클래스 구현
홀수 짝수 클래스 구현
Main 클래스 구현
List
1. Collection Framework의 개념
Collection Framework
•
많은 객체를 효율적으로 관리할 수 있는 인터페이스와 클래스
•
객체를 수집해서 저장하는 역할을 한다.
•
주요 인터페이스로 List, Set, Map이 있다.
2. List 컬렉션
List란?
•
객체를 일렬로 늘어놓은 구조를 가지고 있다.
•
객체들을 인텍스로 관리하기 때문에 자동 인텍스가 부여된다.
•
검색, 삭제할 수 있는 기능을 제공한다.
•
List는 객체 자체를 저장하는 것이 아닌 참조한다.
•
List 인터페이스는 제네릭타입이다.
List 관련 메소드
3. ArrayList
ArrayList란?
•
List 인터페이스의 구현 클래스
•
객체를 추가하면 객체가 인텍스로 관리된다.
•
자동적으로 저장공간을 늘린다.
•
List<E> list = new ArrayList<E>();
•
0에서부터 차례대로 객체가 추가된다.
◦
list 하나가 제거되면 뒤에 있는 list들은 앞으로 당겨진다.
◦
삽입, 삭제가 많이 일어나는 작업에서 ArrayList를 사용하면 성능에 문제가 생긴다. (LinkedList를 사용)
ArrayList 활용
ArrayList활용예제
4. Vector
Vector란
•
ArrayList와 같은 내부구조를 가지고 있다.
•
ArrayList와 달리 동기화된 메소드로 구성되어 있기 때문에 멀티 스레드가 동시에 이 메소드들을 실행할 수 없다.
•
List<E> list = new Vector<E>();
5. LinkedList
LinkedList란?
•
ArrayList와 내부 구조가 완전히 다르다.
◦
ArrayList는 내부 배열에 객체를 저장해서 인덱스로 관리
◦
LinkedList는 인접 참조를 링크해서 체인처럼 관리
•
추가, 제거 시 앞 뒤 링크만 변경
•
삭제, 추가가 빈번하게 일어날 시 좋은 성능을 발휘