본문 바로가기

Java/문법

(30)
17 - 1장 컬렉션 프레임워크 개념과 구조 1. 컬렉션이란? 컬렉션(collecton) - 동일한 타입을 묶어 관리하는 자료구조 배열과 컬렉션의 차이점 배열 생성 시점에 저장공간의 크기 확정 확정시 나중에 변경 불가 컬렉션 데이터의 저장용량을 동적으로 관리 가능 2. 컬렉션 프레임워크란? 라이브러리 - 단순히 연관된 클래스와 인터페이스들의 묶음 프레임워크 - 클래스와 인터페이스들의 모임(라이브러리) - 클래스의 정의에 설계 원칙 또는 구조가 존재 컬렉션 프레임워크 -리스트, 스택, 큐, 트리 등의 자료구조에 정렬,탐색 등의 알고리즘을 구조화해 놓은 프레임워크 자바에서 제공하는 컬렉션의 프레임워크의 주요 클래스와 인터페이스 - 컬렉션의 특성에 따라 크게 List, Set, Map로 나눌 수 있음 - 메모리의 입출력 특성에 따라 기존의 컬렉션 기능을..
16 - 5장 제네릭의 상속 1. 제네릭 클래스의 상속 - 부모 클래스가 제네릭 클래스일 때, 이를 상속한 자식 클래스도 제네릭 클래스가 됨 - 제네릭 타입 변수를 자식 클래스가 그대로 물려받게 됨 - 자식 클래스는 제네릭 타입 변수를 추가해 정의 가능 - 부모 클래스와 제네릭 타입 변수의 개수가 동일할 때 class Parent { //... } class Child extends Parent { //... } - 부모 클래스보다 제네릭 타입 변수의 개수가 많을 때 class Parent { //... } class Child extends Parent { //... } - 제네릭 클래스의 상속 package GenericMethod; class Parent { T t; public T getT() { return t; } pub..
16 - 4장 제네릭 타입 범위 제한 1. 제네릭 타입 범위 제한의 필요성 -과일 클래스(사과, 배, 딸기) 문구 클래스(연필,지우개.볼펜) -과일의 종류만 저장 및 관리하는 제네릭 클래스 생성? 문구류만 저장 및 관리하는 클래스 생성? class Goods { //과일류 또는 문구류만 저장하는 것은 불가능 private T t; public T get() { return t; } public void set(T t) { this.t=t; } } 제네릭 타입의 범위 제한 - 위 기능을 구현하려면 제네릭 타입으로 올 수 있는 실제 타입의 종류를 제한해야함 - 입력매개변수의 제네릭 타입 변수가 Number 클래스로 한정된다면 실제 제네릭타입으로는 Number 또는 Number 클래스의 자식 클래스인 Integer, Long, Float, Dou..
16 -3장 제네릭 메서드 1. 제네릭 메서드의 정의와 호출 - 클래스 전체를 제네릭으로 선언하는 대신, 일반 클래스 내부의 특정 메서드만 제네릭으로 선언 가능 - 리턴타입 또는 입력매개변수의 타입을 제네릭 타입 변수로 선언 - 제네릭 메서드는 호출되는 시점에 실제 제네릭 타입 지정 cf> 제네릭 클래스는 객체를 생성하는 시점에 실제 제네릭 타입 지정 - 제네릭 메서드의 문법 구조 //제네릭 타입 변수명이 1개 접근 지정자 T 메서드명(T t) { //타입 T를 사용한 코드 } //제네릭 타입 변수명이 2개 접근 지정자 T 메서드명(T t, V v){ //타입 T,V를 사용한 코드 } //매개변수에만 제네릭이 사용 접근 지정자 void 메서드명(T t) { //타입 T를 사용한 코드 } //리턴 타입에만 제네릭이 사용 접근 지정자..
16 -2 장 제네릭의 문법 강한 타입 체크(strong type checking) -제네릭을 사용하면 모든 타입의 상품을 저장할 수 있으면서도 잘못된 캐스팅을 할 때 문법 오류를 발생시켜 잘못된 캐스팅으로 발생할 수 있는 문제를 사전에 예방 1. 제네릭 클래스와 제네릭 인터페이스 정의하기 - 클래스명 다음에 삽입 - 제네릭 클래스 //제네릭 타입 변수명이 1개 일때 접근 지정자 class 클래스명 { //타입 T를 사용한 코드 } //제네릭 타입 변수명이 2개 일때 접근 지정자 class 클래스명 { //타입 K,T를 사용한 코드 } public class MyClass { private T t; public T get(){ return t; } public void set(T t) { this.t=t; } } - 제네릭 인터페이..
16 -1장 제네릭 클래스와 제네릭 인터페이스 1. 제네릭 없이 여러 객체를 저장하는 클래스 작성하기 ex) 사과와 연필을 각각 저장 및 관리 - 사과를 저장(set)하고 가져오기(get) class Apple { } class Goods1 { private Apple apple = new Apple(); public Apple get() { return apple; } public void set(Apple apple) { this.apple =apple; } } Goods1 goods1 = new Goods1(); goods1.set(new Apple()); Apple apple = goods1.get(); - 연필을 저장(set)하고 가져오기(get) class Pencil { } class Goods2 { private Pencil penci..
15 - 5장 쓰레드의 상태 쓰레드의 상태 - Thread.State 타입으로 정의 - Thread의 인스턴스 메서드인 getState()로 가져올 수 있음 - getState() -> 쓰레드의 상태를 Thread.State 타입에 저장된 문자열 상숫값 중 하나로 리턴 -> Thread.State는 enum 타입 -> Thread.State의 내부에는 6개의 문자열 상수 (NEW, RUNNABLE, TERMLNATED, TLMED_WAITING, BLOCKED, WAITING)가 저장 -쓰레드의 상태에 따른 동작 수행 Thread.State state = myThread.getState(); swich(state) { case Thread.State.NEW; //... case Thread.State.RUNNABLE; //... c..
10 - 6장 최상위 클래스 Object - Object 클래스 - 자바의 모든 클래스는 Object 클래스를 상속받음 - 자바의 최상위 클래스 - 컴파일러는 아무런 클래스로 상속하지 않으면 자동으로 extends Object를 삽입해 Object 클래스를 상속 class A { //class A extends Object //상속을 하지 않을때 extends Object 자동으로 추가 } class B extends A { } - Object