-래퍼 클래스
http://www.tcpschool.com/java/java_api_wrapper
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
-제네릭 클래스에서 타입 매개변수를 여러개 사용하는 경우
class Basket<K, V> { ... }
제한된 제네릭 클래스
특정 클래스를 상속받으면서 동시에 특정 인터페이스를 구현한 클래스만 타입으로 지정할 수 있도록 제한하려면 아래와 같이 &를 사용하여 코드를 작성. 이러한 경우에는 클래스를 인터페이스보다 앞에 위치.
여기서 제네릭 클래스는 implements 따로 안쓰고 interface도 extends 쓴다는거.
interface Plant { ... }
class Flower implements Plant { ... }
class Rose extends Flower implements Plant { ... }
class Basket<T extends Flower & Plant> { // (1)
private T item;
제네릭 메서드에서 타입 매개변수 선언은 반환타입 앞에.
public <T> void add(T element) {
제네릭 메서드의 타입 매개변수는 제네릭 클래스의 타입 매개변수와 별개의 것. 타입 매개변수로 같은 문자 써도 다른 타입 매개변수로 간주된다. 타입이 지정되는 시점이 다르기 때문.
클래스 타입 매개변수는 클래스가 인스턴스화될 때 지정.
메서드 타입 지정은 메서드 호출시 지정.
참고 object 클래스 메서드
https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html
Object (Java Platform SE 7 )
Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. A subclass overrides the finalize method to dispose of system resources or to perform other cleanup. The general contract of fi
docs.oracle.com
-와잍드카드
<? extends T>는 와일드카드에 상한 제한
T의 확장 다시말해 T 포함 T 상속받는 하위 클래스 타입만 타입 매개변수로 받을수 있도록.
<? super T>는 와일드카드에 하한 제한
T의 super 다시말해 T 포함 상위 클래스만.
extends 및 super 키워드와 조합하지 않은 와일드카드(<?>)는 <? extends Object>
모든 클래스 타입을 타입 파라미터로 받을 수 있음
참조변수이름.getCass().getName() 이런 식으로 사용
BufferedReader/Writer
https://m.blog.naver.com/ka28/221850826909
[JAVA] BufferedReader 와 Bufferedwriter 사용법
BufferedReader :Scanner와 유사. Bufferedwriter :System.out.println();과 유사 둘은 모두 기존에 ...
blog.naver.com
-에러
컴파일 에러가 자바 컴파일러에 의해 발견되는 것이었다면, 런타임 에러는 프로그램이 실행될 때에 우리가 뒤에서 좀 더 자세히 배우게 될 자바 가상 머신(JVM)에 의해 감지
컴파일 에러가 주로 문법 요소와 관련한 신택스(syntax) 에러였다면 런타임 에러는 주로 개발자가 컴퓨터가 수행할 수 없는 특정한 작업을 요청할 때 발생
-에러와 예외
엄밀한 의미에서 자바에서는 코드 실행(run-time) 시 잠재적으로 발생할 수 있는 프로그램 오류를 크게 에러(error)와 예외(exception)(코드 수정 통해 수습 가능한 미약한 오류)으로 구분
클래스 계층도
Throwable 클래스-Errors
-Exceptions -Runtime Exceptions (이를 포함한 하위 클래스 :실행 예외 클래스(컴파일러가 검사 않는))
-Other Exceptions (이를 포함한 하위 : 일반 예외 클래스(컴파일러가 코드 실행 전 검사))
try {
// 예외가 발생할 가능성이 있는 코드를 삽입
// 실행할 코드 자체를 다 넣네?
}
catch (ExceptionType1 e1 예를 들어 ArithmeticException, NullPointerException ) {
// ExceptionType1 유형의 예외 발생 시 실행할 코드
// e1.~ 해당 예외시 실행할 코드 요런 식으로
}
catch (ExceptionType2 e2) {
// ExceptionType2 유형의 예외 발생 시 실행할 코드
// e2.~
}
finally {
// finally 블럭은 옵셔널, 있어도 없어도..
// 있다면 예외 발생 여부와 상관없이 항상 실행
}
-예외 로그
[JAVA] e.toString(), e.getMessage(), e.printStackTrace() 예외처리
예외(Exception)란 프로그램 실행 중 발생할 수 있는 정상적인 범위를 벗어난 경우에 처리를 하기 위한 방법입니다. 프로그램 실행 중보면 중요하게 처리해야 하는 부분중에 에러가 발생하였을때
lnsideout.tistory.com
-예외 전가
반환타입 메서드명(매개변수, ...) throws 예외클래스1, 예외클래스2, ... {
-Class.forName 사용
https://whitecold89.tistory.com/12
[JAVA] Class.forName 사용하기
Class.forName 사용하기 JAVA.LANG.CLASS클래스 클래스의 정보를 얻기위한 클래스 즉, 클래스의 정보를 얻어오는 클래스입니다. forName() : 물리적인 클래스 파일명을 인자로 넣어주면 이에 해당하는 클래
whitecold89.tistory.com
'부트캠프 TIL' 카테고리의 다른 글
22.11.11~12 버거퀸 만들기 (0) | 2022.11.12 |
---|---|
22.11.11 기타 (0) | 2022.11.11 |
22.11.08 JAVA 객체지향 다형성, 추상화 (0) | 2022.11.08 |
22.11.07 JAVA 객체지향 상속, 캡슐화 (1) | 2022.11.07 |
22.11.04 JAVA 객체지향 생성자, 내부 클래스 (0) | 2022.11.04 |