A 클래스가 다음과 같이 정의되어 있다. 올바른 설명은?
public final A { }
1 객체를 생성할 수 없다.
2 A 클래스를 상속받는 다른 클래스를 만들 수 없다.
3 final 멤버 변수만 가질 수 있다
4 A a = new A() 로 객체를 생성하면 a 변수에 다시 A객체를 생성할 수 없다.
- > final은 누구의 부모가 될 수 없다.
다음 중 인터페이스에 대한 설명으로 올바르지 않은 것을 고르시오.
1 하나의 클래스는 인터페이스를 여러 개 상속받아 구현할 수 있다.
2 인터페이스의 메서드의 접근제한자는 public으로 선언된다.
3 인터페이스는 다른 인터페이스를 상속받을 때 extends 를 사용한다.
4 인터페이스는 default method를 한 개만 가질 수 있다.
Set
.add → hashCode() → 같다 → equals → true (이면 중복이므로 추가 안함)
Map
Map <K,V> : key는 중복안되고 value는 중복가능하다
구현객체 : HashMap, Hashtable, TreeMap, Properties ...
Set <Map.Entry<K,V>> entrySet()
class Test { //OuterClass
필드, 메소드
class A extends WindowAdapter implements Xxx{ //InnerClass
outer 쪽의 모든 필드와 메소드를 자유롭게 접근가능
}
}
이너 클래스 : 재사용성이 떨어진다 (아우터 먼저 불러야함)
하지만 outer 쪽의 모든 필드와 메소드를 자유롭게 접근가능!
🔔 싱글톤패턴 클래스
public class Test{
private static Test instance = new Test();
private Test() { //외부에서 사용자 직접생성하지 못하도록 한다.
}
//현재객체를 생성해서 리턴하는 메소드를 만든다.
public static Test getInstance( ){
Test t = new Test(); //자기안에 private생성자 호출가능 O
return t ;
return instance;
}
}
new Test () ; // 자동으로 기본생성자 삽입
→ error : private 생성자이므로 외부에서 객체 생성안됨
//3개의 주소는 모두 다르다. 다 다른 객체이다.
Test t1 = Test.getInstance();
Test t2 = Test.getInstance();
Test t3 = Test.getInstance();
🔔 메소드에 접근하는 법
1. 같은 클래스냐 ?
2. static이냐 ?
3. 객체 생성하자
💥이미 개발을 했던 사람들이 좀 더 좋은(유지보수, 확장성) 디자인패턴을 상황에 맞게 사용하자
🔔 예외처리 - Exception
: 종류
- 체크 예외 - 컴파일에 오류 발생 (반드시 예외처리 필수)
- 비체크 예외 - 실행도중 발생하는 예외로 처리는 선택 RuntimeException
: 처리 방법
- 직접 처리 - try catch
- 던지기 (위임) - throws ->메소드 선언부 작성
- 메소드를 호출한 주체에게 예외를 위임하는 것.
- (던져서 위임하는) 이유 : 하나의 기능의 서비스가 동작할때 각 상황에 따른 예외를 하나의 영역에서 한번에 처리하는 것
메소드를 호출하는 주체가 예외처리를 직접할 수 있도록 정보를 제공!
직접 처리 방법
try{
발생가능성이 있는 코드 작성 ;
1)
2)
3)
4)
} catch(XxxException e){ //catch 여러개 작성할때는 반드시 서브클래스부터 작성해야한다!!!
예외가 발생했을 때 해야하는 일 작성
}catch(XxxException e){
예외가 발생했을 때 해야하는 일 작성
}catch(XxxException e){
예외가 발생했을 때 해야하는 일 작성
}...finally {
예외 발생 여부와 상관없이 무조건 실행해야하는 일 작성
}
* catch 또는 finally블럭은 반드시 try와 함께 사용
ex )
try {
}finally{
}
___________________
try {
}catch(XxxException e) {
}
____________________
IO
1. 생성
2. 읽기 or 쓰기
3. 닫기
JDBC
1. 로드
2. 연결
3. 실행
4. 닫기
- 강제로 예외를 발생시킨다.
throw 발생할 예외객체;
*발생할 예외객체를 어떤 클래스를 할 것인가?
1)반드시 예외처리 할거니? -> Exception
2)예외처리를 선택할거니? ->RunTimeException
* 사용자정의 Exception class를 만들 수 있다.
class XxxException extends XxxException { //체크예외
XxxException() {
super("기본메세지 작성");
}
XxxException(String message) {
super(message);
}
}
class XxxException extends XxxException { //비체크
}
new XxxException();
new XxxException("쉬고싶다");
'Practice > 알고리즘' 카테고리의 다른 글
[알고리즘] 그래프 (0) | 2023.03.17 |
---|---|
[알고리즘] 그리디 알고리즘 (0) | 2023.03.16 |
[알고리즘] 버블정렬 - 백준 2750 수 정렬하기 (0) | 2023.03.13 |
[알고리즘] 선형자료구조 (리스트, 스택, 큐) (0) | 2023.03.10 |
[Github] gitbash 사용 (0) | 2023.03.09 |