728x90

자바 8

람다식과 어노테이션

1. 람다식 람다식은 잦은 로직 변경을 처리하는 방법인 익명 중첩 클래스를 더 쉽고 간단하게 표현할 수 있는 방법이다. // 람다식의 형식 (자료형 매개변수, ...) -> { 구현내용부; } 익명 중첩 클래스와는 다르게 클래스 이름도 없고 오버라이딩하는 method 이름도 없다. 단순히 method의 매개 변수 영역만 코드로 되어 있다. 또한 ->을 통해 구현 내용부를 정의하고 있다. 람다식은 다음과 같은 규칙을 따른다. 구현하는 method가 하나일 때 람다식을 사용할 수 있다. 구현하는 인터페이스의 이름과 구현해야 하는 method의 이름은 생략하고, 매개 변수와 구현 내용부 사이에 -> 기호를 사용한다. 구현하는 method의 매개 변수 개수만큼 선언한다. 매개 변수의 이름은 임의로 정할 수 있다..

자바 기초 2021.04.18

열거형과 컬렉션 프레임워크

1. 열거형 열거형(Enum) : 미리 정의된 상수들의 집합을 만들기 위해 사용하는 자바의 참조형 열거형의 선언은 다음과 같이 한다. 접근제한자 enum 열거형이름 implements 인터페이스들 { 열거형데이터들(내부생성자매개변수들) { method정의 }, ... ; 내부멤버필드들; 내부생성자method들() { ... } 내부멤버method들_getters&setters 출력을 위한 toString() method의 오버라이딩 그외필요한method들 } 독립적인 열거형의 접근 제한자는 public과 package만 사용할 수 있다. 열거형을 클래스 내에 선언할 때는 접근 제한자를 모두 사용할 수 있다. 클래스를 선언할 때 'class 클래스이름'과 같이 class 예약어를 사용하듯이 열거형을 선언할..

자바 기초 2021.04.18

제네릭

1. 제네릭의 개요와 특징 제네릭(Generic) : 일반화, 범용화라는 뜻으로, 클래스나 method에서 사용하는 필드나 매개 변수의 자료형(클래스형)을 호출하는 쪽에서 지정하도록 하는 기능 제네릭을 이용하면 코드 중복이 방지되고 프로그램 작성이 유연해진다. 또한 컴파일 중 타입 검증을 강화해 프로그램 안정성을 높이거나 불필요한 형변환을 제거하는 목적으로도 사용한다. 컬렉션 프레임워크는 배열과 다형성을 내부적으로 적절히 활용해 좀 더 효율적으로 다량의 객체를 관리할 수 있게 해 준다. 컬렉션 프레임워크에 제네릭을 사용해 컴파일 중 타입을 확실하게 확인해 줄 뿐만 아니라 형변환도 필요없게 된다. // 컬렉션 프레임워크와 제네릭 컬렉션프레임워크클래스 객체이름 = new 컬렉션프레임워크클래스생성자(); //..

자바 기초 2021.04.18

자바 멀티 스레드

1. 스레드의 개념과 관련 클래스 스레드(Thread) : 프로세스 내에서 실행되는 시작점과 종료점이 있는 일련의 작업 흐름의 단위 예시로 public static void main(String[] ar)은 자바 프로그램의 시작과 끝을 관리하는 method로 시작 블록( { )이 main 스레드의 시작점이 되고 끝 블록( } )이 main 스레드의 종료점이 된다. 그리고 main() method의 내용부는 프로세스 내에서 실행되는 일련의 작업 흐름 하나에 해당한다. 따라서 main() method 자체가 main이라는 이름의 스레드가 된다. 우리는 지금까지 하나의 프로세스 내에서 하나의 스레드를 프로그램으로 작성했다. 멀티 스레드(Multi-thread) : 프로그램 환경에 따라 하나의 프로세스에서 둘 ..

자바 기초 2021.04.17

예외 처리와 어설션

예외 처리는 프로그램이 실행되면서 발생하는 여러 가지 예외 상황을 개발자가 원하는 형태로 처리하도록 만드는 데 있다. throw는 예외를 강제로 발생시킨다. throws는 예외를 전가한다. 즉, 예외의 내용을 한 곳에서 모아 처리하는 용도로 사용한다. try ~ catch ~ finally 문은 실제로 예외를 처리한다. 예외 관련 클래스의 최상위 클래스는 Throwable 클래스고 이를 상속하는 Error 클래스와 Exception 클래스가 있다. Error 클래스는 프로그램에 있어 심각한 오류 사오항을 처리하는 클래스로 try ~ catch ~ finally를 통해 조작할 수 없다. Exception 클래스는 크게 둘로 나눌 수 있다. Checked Exception : 컴파일 중에 미리 예외를 예상하..

자바 기초 2021.04.16

추상 클래스와 인터페이스

추상 클래스는 자신 클래스의 객체가 생성 불가능하다는 점만 제외하면 일반 클래스와 같다. 추상 클래스는 디자인이 목적인 클래스다. 추상 클래스는 추상 method를 가질 수 있다. 추상 method를 가지면 반드시 그 클래스는 추상 클래스여야 한다. 추상 method를 가진 클래스를 상속받은 하위 클래스는 추상 클래스가 되거나 그 method를 오버라이딩해야 한다. 인터페이스는 자바에서 다중 상속을 구현 가능하게 해준다. 자바 인터페이스는 필드, method, 정적 중첩 클래스/중첩 인터페이스로 이루어진다. 필드는 무조건 public static final이다. 그래서 필드를 선언할 경우 반드시 그 자리에서 초기화도 해야 한다. method는 무조건 public abstract다. 이 때문에 해당 met..

자바 기초 2021.04.16

상속성과 다형성

자바는 단일 상속만 허용한다. 인터페이스의 경우에만 다중 상속을 허용한다. super 예약어는 상위 클래스의 this다. 생성자 method에서는 super()와 this() 중 하나만 사용 가능하고, 만약 어느 것도 없으면 JVM이 자동으로 매개 변수가 없는 super() method가 있다고 인식한다. 접근 권한의 크기와 내용 private < package < protected < public private은 자신의 클래스에서만 사용할 수 있다. package는 동일한 package + 동일한 파일에서도 사용할 수 있다. protected는 상속 관계에서도 사용할 수 있다. 오버라이딩과 오버로딩 오버라이딩(overriding)은 상속 관계에서 상위 클래스와 하위 클래스에 있는 이름과 매개 변수가 모..

자바 기초 2021.04.16

중첩 클래스

1. 일반 중첩 클래스 중첩 클래스란 클래스 내부의 멤버로서 클래스를 선언한 것이다. 일반적인 중첩 클래스의 객체는 다음과 같은 방법으로 생성한다. Outer 객체1 = new Outer(); Outer.Inner 객체2 = 객체1.new Inner(); Outer 클래스의 static method에서는 일반 중첩 클래스의 객체를 선언할 수 없다. 일반 중첩 클래스의 객체를 선언하려면 Outer 클래스의 객체를 선언해야 하기 때문이다. static이 아닌 필드나 method를 클래스의 객체 선언없이 사용할 수 없는 것과 같다. 일반 중첩 클래스인 Inner 클래스 내부에 static과 관련된 멤버를 선언하는 것도 안 된다. 2. 정적 중첩 클래스 정적 중첩 클래스는 중첩 클래스에 static 예약어를 붙..

자바 기초 2021.04.16
728x90