전체 글
-
자바 스터디 5회차 - 컬렉션 프레임워크 (5)카테고리 없음 2024. 4. 19. 17:51
객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 java.util 패키지에 컬렉션과 관련된 인터페이스와 클래스들이 있음. 이걸 다 통틀어서 컬렉션 프레임워크라고 함! List와 Set은 컬렉션의 하위에 있음 Map 인터페이스는 Collection 인터페이스와 다른 저장 방식을 갖음 List 순서 O, 중복 O 객체를 인덱스로 관리함. 객체 저장하면 인덱스가 부여되고, 객체를 검색, 삭제할 수 있는 기능을 제공 ArrayList 가장 많이 씀. ArrayList에 객체를 추가하면 배열에 객체가 저장 일반 배열과 차이점은 ArrayList는 제한 없이 객체를 추가할 수 있음! 객체의 번지를 저장, 중복 저장도 가능한데 이런 경우는 같은 번지가 저장. null 저장 가능 삭제, 삽입이 많은 경우는 비추 V..
-
자바 스터디 4회차 - Iterator, ListIterator, Enumeratio, Map과 Iterator, Arrays, Comparator와 Comparable, HashSet, HashMap과 Hashtabl / 컬렉션 프레임워크(3)카테고리 없음 2024. 4. 16. 17:58
Iterator(new), ListIterator, Enumeration(old) ! 컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스 ListIterator는 Iterator의 접근성을 향상 시킨 것 (단방향 -> 양방향) 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 컬렉션에 iterator()를 호출해서 iterator를 구현한 객체를 얻어서 사용 (컬렉션 인터페이스) Map과 Iterator! Map에는 Iterator가 없다! Map은 컬렉션의 자손이 아님!사용하려면 KeySet(), entrySet(), values()로 셋이나 컬렉션을 얻어와야 호출 가능 Arrays! 배열을 다루기 편리한 메서드(static) 제공 util 메서드라고도 함 1. 배열의 출력 - toString 2...
-
자바 스터디 4회차 - ArrayList, LinkedList, Stack & Queue, 인터페이스 Queue 사용 방법 / 컬렉션 프레임워크(2)카테고리 없음 2024. 4. 16. 17:18
ArrayList! Vector를 개선한 것으로 구현원리와 기능은 동일 (두 클래스의 차이는 동기화! 벡터는 자체적으로 동기화 처리) 저장순서 유지, 중복 허용 데이터의 저장공간으로 배열을 사용 ArrayList의 메서드! 는 책으로 보자 ArrayList의 추가와 삭제 추가 삭제할 데이터의 아래에 있는 데이터를 한 칸씩 위로 복사해서 삭제할 데이터를 덮어씀 데이터가 모두 한 칸씩 위로 이동하였으므로 마지막 데이터는 null로 변경 데이터가 삭제되어 데이터의 개수(size)가 줄었으므로 size의 값을 1 감소시킴 **마지막 데이터를 삭제하는 경우, 1의 과정(배열 복사)은 필요 없음 삭제 ArrayList에 저장된 첫 번째 객체부터 삭제하는 경우(배열 복사 발생, remove(0)부터 삭제할 때) Ar..
-
자바 스터디 4회차 - 컬렉션 프레임워크, List & Set & Map / 컬렉션 프레임워크(1)카테고리 없음 2024. 4. 16. 17:18
전체적으로 여러 번 반복, 빠르게! 실습 많이 해보기 컬렉션 프레임워크! 컬렉션 여러 객체(데이터)를 모아 놓은 것을 의미 프레임워크 표준화, 정형화된 체계적인 프로그래밍 방식 컬렉션 프레임워크 컬렉션(다수의 객체)를 다루기 위한 표준화된 프로그래밍 방식 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공 컬렉션 클래스 다수의 데이터를 저장할 수 있는 클래스 (Vector, ArrayList, HashSet) 컬렉션 프레임워크의 핵심 인터페이스! (중요) 컬렉션 인터페이스의 메서드! List 인터페이스! - 순서 O, 중복 O add 추가 / get 읽기 / set 변경 / indext 검색 / sort 정렬 Set 인터페이스! - 순서 X, 중복 X 참고 : 집합과 관련된 메서드 (Collect..
-
자바 스터디 3회차 - 중첩 클래스, 중첩 인터페이스, 예외처리, 패키지카테고리 없음 2024. 4. 11. 16:49
디폴트 메서드와 static 메서드! 인터페이스에 새로운 메서드를(추상 메서드)를 추가하기 어려움 -> 해결책으로 나온 게 디폴트 메서드 사실 static 메서드는 인스턴스와 관계가 없는 독립적인 메서드이기 때문에 인터페이스에 추가 못할 이유는 없었음 디폴트 메서드 = 인스턴스 메서드(인터페이스 원칙 위반, 예외 사항) 추상 메서드의 기본적인 구현을 제공하는 메서드 추상 메서드가 아니기 때문에 디폴트 메서드가 새로 추가되어도 해당 인터페이스를 구현한 클래스를 변경하지 않아도 됨 앞에 키워드는 default 사용, 추상 메서드와 달리 일반 메서드처럼 몸통 { }이 있어야 함 접근 제어자는 public 생략 가능 새로 추가된 디폴트 메서드가 기존의 메서드와 이름이 중복되어 충돌할 때 해결하는 규칙 1. 여러..
-
자바 스터디 2회차 - 상속, 다형성, 인터페이스, 추상, 접근제어자카테고리 없음 2024. 4. 8. 18:01
상속! 기존의 클래스를 재사용해 새로운 클래스를 작성하는 것, extends 사용 - 자손 클래스는 조상 클래스의 모든 멤버를 상속받음 (단, 생성자와 초기화 블럭은 상속되지 않음) - 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다. 자손 >= 조상 조상 클래스의 인스턴스를 생성하지 않고도 조상 클래스의 멤버들 사용 가능 다형성! 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 *** Tv t = new SmartTv(); // 타입 불일치 있는 기능 안 쓰는 건 됨, 기능이 없는데 버튼을 누르는 건 안됨 조상 -> 자손 / 가능 자손 -> 조상 / 불가능 추상메서드! 추상 메서드 = 미완성 메서드(선언부만 있는, 몸통 {} 구현부가 없는 미완성 메서드) abstract >>리턴타입이 ..
-
자바 스터디 1회차 - 클래스카테고리 없음 2024. 4. 3. 20:00
▶클래스 인스턴스 - 클래스로부터 만들어진 객체 인스턴스화 - 클래스로부터 객체를 만드는 과정 클래스의 정의 객체를 생성하기 위한 틀, 속성과 기능으로 정의됨(객체) 변수를 정의하고, 작업을 수행하는 함수들을 정의한 것 구조체 + 함수의 결합 클래스의 용도 객체를 생성하는 데 사용 ▶객체 배열 참조변수들을 하나로 묶은 참조변수 배열 / 객체 생성 후 배열의 각 요소를 꼭 저장하기 ▶선언위치에 따른 변수의 종류 멤버 변수 - 클래스 변수, 인스턴스 변수 멤버변수를 제외한 나머지 변수들은 모두 지역 변수 변수 종류 선언 위치 생성 시기 저장 메모리 클래스 변수 클래스 영역 클래스가 메모리에 올라갈 때 메소드 인스턴스 변수 클래스 영역 인스턴스가 메모리에 올라갈 때 힙 지역 변수 클래스 영역 이외 영역 변수 ..