패키지 의미관련이 있는 클래스와 인터페이스의 묶음 - 클래스와 인터페이스는 패키지의 멤버로 존재 전체적으로 계층 구조의 클래스 라이브러리 - 패키지(폴더와 유사) 단위로 계층적으로 분류됨 패키지 용도 - 쉽게 찾아 사용하기 위해 - 이름 충돌을 피하기 위해 - 접근 제어를 위해 시스템 패키지Java가 제공하는 클래스 라이브러리 - JDK와 함께 설치됨 일반적으로 jar파일로 압축되어 있음 - 예:C:\ProgramFiles\Java\jdk1.8.0_121\jre\lib\rt.jar - 예를 들어 java\lang\Boolean.class가 존재함 시스템 패키지의 사용가장 기본이 되는 최상위 시스템 패키지는 java임 - 대부분의 시스템 패키지는 java.으로 시작됨 Java프로그램에서 상위와 하위 패키지..
람다식인터페이스를 구현하는 익명 클래스의 객체 생성 부분을 수식화 한 것구현할 것이 1개의 추상 메소드일 때 간단히 표현할 수 있음 12345Runnable runnable = new Runnable() { public void run() { ... }}Colored by Color Scriptercs 람다식 구문- 메소드 매개변수의 괄호, 화살표, 메소드 몸체로 표현- 인터페이스 객체변수 = (매개변수목록) -> { 실행문목록 } 1Runnable runnable = () -> {...}cs 람다식 기본 문법익명 구현 클래스의 객체 생성 부분만 람다식으로 표현함 - 익명 서브 클래스의 객체 생성은 람다식이 될 수 없음 l 이때 인터페이스에는 추상 메소드가 1개만 있어야 함 - 2개 이상의 추상 메소드를..
제네릭 메소드자료형을 매개변수로 가지는 메소드하나의 메소드 정의로 여러 유형의 데이터를 처리할 때 유용함메소드 정의에서 반환형 왼편, 각 괄호 안에 타입 매개변수를 가짐- 타입 매개변수를 메소드의 반환형이나 메소드 인자의 타입으로 사용할 수 있음- 지역 변수의 타입으로 사용할 수도 있음 123public static T getLast(T[] a) { return a[a.length - 1];}Colored by Color Scriptercs 인스탄스 메소드와 static 메소드 모두 제네릭 메소드로 정의 가능제네릭 메소드를 호출할 때,타입을 명시하지 않아도 인자에 의해 추론이 가능함 1234567891011121314class Util { public static boolean compare(Pair ..
제네릭의 의미제네릭 클래스, 제네릭 인터페이스, 제네릭 메소드-클래스, 인터페이스, 메소드를 정의할 때 타입 매개변수(타입 파라미터)를 선언하고 사용할 수 있음 제네릭을 사용하는 이유- 자료형을 한정함으로써 컴파일 시점에 자료형 검사가 가능 * 실행 오류를 찾아 고치는 것은 어려움- 캐스트(형변환) 연산자의 사용이 불필요- 여러 유형에 걸쳐 동작하는 일반화된 클래스/메소드를 정의할 수 있음 ArrayList 클래스는 List 인터페이스를 구현한 클래스 123456789101112131415class ArrayList implements List … { boolean add(E e) { … } E get(int index) { … } E remove(int index) { … } …}Colored by C..
익명 클래스일회성으로 1개의 객체를 생성하기 위한 클래스- 클래스 정의와 동시에 객체를 생성할 수 있음 슈퍼 클래스를 상속받거나 인터페이스를 구현하도록 익명 클래스를 정의- new 클래스/인터페이스 ( ) { … }- 중괄호는 익명 클래스의 몸체 클래스를 상속받는 익명 클래스1234567891011121314151617181920212223242526272829303132public class AnonymousTest { public static void main(String args[]) { CSuper sub = new CSuper() { public int b = 20; public void method1() { System.out.println("sub1"); } public void method..
열거형 정의열거형은 미리 정의된 상수값을 만들기 위한 자료형enum을 사용하여 정의열거형으로 선언된 변수에는 미리 지정된 값만 대입 가능상수값을 배열로 리턴하는 static 메소드로 values( )를 제공 123enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,FRIDAY, SATURDAY}Colored by Color Scriptercs 열거형의 생성자와 메소드열거형 정의에 필드와 메소드를 포함할 수 있음상수 선언이 필드나 메소드보다 먼저 정의되어야 하며 세미콜론(;)으로 끝나야 함생성자는 열거형과 같은 이름을 가지며 접근 제어자는 생략 또는 private이어야 함열거형의 생성자는 상수값을 설정(객체 생성)할 때 자동 호출됨열거형에서 상수는 마치 하..
다형성과 형변환다형성 - 하나의 객체가 다양한 형상이나 다양한 기능을 가진다는 뜻 * 하나의 클래스에서 오버로딩된 메소드들은 유사하지만 조금씩 다른 기능을 수행함 * 자식 클래스에서 재정의된 메소드는 부모 유사하지만 다른 기능을 수행함 형 변환- 상속 관계에 있는 클래스 간에는 타입 변환이 가능함 * 전혀 다른 두 클래스 간에는 타입 변환이 금지됨 - 하위 클래스에서 상위 클래스로의 형 변환은 문제없음 * 상위 유형의 변수는 하위 객체의 참조값을 가질 수 있음 다형성과 오버라이딩클래스의 다형성 - 부모 클래스로부터 상속받은 메소드를 자식 클래스에서 오버라이딩할 수 있음 - 부모와 자식에서 같은 이름의 메소드가 다른 기능을 수행 * 같은 이름과 매개 변수 및 반환형을 가지나 몸체가 다름 인터페이스의 다형성..
Java의 인터페이스100%추상 클래스- 모든 메소드가 추상 메소드(public abstract)- 데이터는 클래스 상수만 가능(publicstaticfinal)- default메소드와 static메소드는 몸체의 구현이 필요함 객체 생성 불가 클래스와 마찬가지로 참조 자료형 인터페이스의 이름은 보통 형용사임- Runnable,Serializable,Comparable 인터페이스 정의문법은 클래스 정의와 유사함 정의할 때 키워드 class대신에 interface를 사용- abstract는 생략하는 것이 보통임 메소드는 자동으로(생략 가능) public abstract임- 수행할 수 있는 기능의 형식만 나열한 것 default 메소드와 static메소드도 가능- 이 경우 몸체를 구현해야 함- 자동으로 pub..