[TIL] JAVA - 8일차

배고픈메꾸리·2021년 1월 28일
0

SSAFY

목록 보기
7/22

최고 조상 클래스가 제공하는 equals를 재 정의하자

public boolean equals (Object o){
    Patient p =(Patient)o;
    if( this. getName().eqauls(p.getName()) && this.getPhone().equals(p.getPhone()) ){
  	  return true;
  	}
    return false;
}

set

리스트는 순서가 있는 자료구조 / 중복 가능
set 은 순서가 없는 자료구조 / 중복을 허용하지 않음

우선순위 큐

compareTo() 가 있어야함
사실 add하는 순간 정렬된 상태로 저장됨

Patient p3 = new Patient("환자3")
a.addPatient(p3);
a.addPatient(p3);

Patient p3 = new Patient("환자")

해싱 기법의 핵심은 해시함수이다
동일한 값을 넣으면 동일한 값이 나와야함
가능하면 충돌이 발생하지 않아야함 (충돌이 발생할 수록 성능이 떨어짐)

equals 메소드에 의해 true가 나오기 위해서는 두 객체의 hashcode는 같아야 한다.
=> HashCode , equals 의 오버라이딩이 필요하다


오후

비교기 : 각각에는 추상메서드가 존재하고 구현해야지만 정렬을 할 수 있다
외부 비교기 : Comparator compare(T o1 , T o2) => o1이 this 역할 o2 가 t 역할
내부 비교기 : Comparable (인터페이스인데 구현해야함 ) compareTo(T t) => 자동차 클래스 안쪽에 생성 하나는 this 하나는 t

외부 비교기가 우선 순위가 더 높다.


예외 처리

ctrl + t 로 확인이 가능하다

public class ExceptionTest {
	public static void main(String[] args) {
		System.out.println("main 시작");
		 
		
		try {  // 예외가 발생할 우려가 있는 코드
			int a =  3 / 0 ;
			System.out.println(1);   //  ArithmeticException : / by zero  정수의 나눗셈에서만 발생
		} catch (ArithmeticException e) {  //try 블럭 안쪽에서 예외 발생시 처리할 코드
			System.out.println(3);
			
		} catch (RuntimeException e) { 
			System.out.println(4);
			
		} catch (Exception e) {  
			System.out.println(5);
		}
		
		System.out.println("정상 종료");  
	}
}

main 시작 3 정상 종료
이런식으로 여러개를 받을 수 있다 . if 문처럼 위에서 걸리면 아래꺼는 무시함

class Exception
public Exception(String message){
		super();
}
package com.ssafy.ws08;

public class ExceptionTest2 {
	public static void main(String[] args) { // throws 나의예외,ArithmeticException {  //시험문제랍니다  
		나의예외 a = new 나의예외("이름을 입력 안함");
		
		try {
			throw a;// exception 폭탄 발생 시키기
		} catch (나의예외 e) { // 폭탄 해체시키기
			e.printStackTrace();  //com.ssafy.ws08.나의예외: 이름을 입력 안함 (빨간색)
			System.out.println(e.getMessage());  // 이름을 입력 안함
		}  
		System.out.println("정상 종료");
	}
}

class 나의예외 extends Exception{
	public 나의예외(String msg) {
		super(msg);
	}
}

디버그

디버그하면 왼쪽에 콜 스택을 볼 수있다.
F6 다음줄로 내려감
F5 내려가면서 메서드 안으로 들어감

디버그가 끝나면 perspective 를 JAVA로 바꿔서 돌아올 수 있다.

profile
FE 개발자가 되자

0개의 댓글