java9 [java 자바] exception catch() 순서는 하위 > 상위 순으로 써야 함. Exception을 제일 마지막에 써야 함. Unreachable catch block for ArrayIndexOutOfBoundsException(예시로 든 예외). It is already handled by the catch block for Exception 그렇게 하지 않을 경우 위와 같은 에러가 뜬다. Exception 만 쓰면 모든 예외 처리가 가능하기 때문에 사실 Exception 뒤에는 다른 예외를 쓰는게 의미가 없다. -모든 예외 클래스는 Exception 클래스를 상속 받음 -하위 클래스는 상위 클래스에 대입 가능(반대는 불가) -같은 실행문을 쓰는 다른 종류의 Exception 들을 동시에 처리할 때 사용 public class.. 2023. 6. 22. [java 자바] Scanner 예전에 강의를 들을 때는 Scanner를 사용했는데 알고리즘 문제를 본격적으로 풀게 된 이후부터는 성능이 더 좋은 BufferedReader를 쓰느라 오히려 예전에 자주 쓰던 Scanner가 어색해졌다. 사이가 더 멀어지기 전에 복습을 해야될 것 같아서 정리를 하게 됐다. Scanner scanner = new Scanner(System.in); Scanner의 새로운 객체를 heap 메모리에 할당한 후 System.in으로 화면에서 입력을 받는다. System.in 은 입력한 값을 Byte 단위로 읽어준다. public void start() { Scanner scan = new Scanner(System.in); //입력1 String str = scan.next(); String str1 = sca.. 2023. 6. 21. [java 자바] isEmpty() 와 isBlank() 비교 isEmpty() - 문자열의 길이가 0인 경우에 true 리턴 - 빈 공백(white space)의 경우, 문자열의 길이가 0이 아니기 때문에 false 리턴 isBlank() - 문자열이 비어 있거나, 빈 공백(white space) 일 경우, true 리턴 public class EmptyBlankComparison { public static void main(String[] args) { System.out.println("Java".isEmpty() + "," + "Java".isBlank()); // false, false System.out.println(" Java ".isEmpty() + "," + " Java ".isBlank()); // false, false System.out.p.. 2023. 6. 21. 내부 클래스 (Inner Class) 정의 - 하나의 클래스 내부에 선언된 또 다른 클래스 - 보통 두 클래스가 서로 긴밀한 관계가 있거나, 하나의 클래스 또는 메소드에서만 사용되는 클래스일때 사용 장점 1. 클래스의 논리적 그룹화 - 내/외부 클래스 통합관리로 유지보수, 코드 이해 간편 - 내부 클래스로 인해 새로운 클래스 생성 하지않아도 됨 > 패키지 간소화 2. 타이트한 캡슐화 적용 - 외부 접근 차단 - 내부 클래스에서 외부 클래스의 멤버들을 제약 없이 쉽게 접근 가능 > 구조적 프로그래밍 가능 - 클래스 구조를 숨겨 코드의 복잡성 ↓ 3. 가독성 좋고 유지 관리가 쉬워짐 - 특정 클래스 안에서만 사용하기 때문에 연관관계 생각없이 내부에 선언해 직관적으로 사용 종류 인스턴스 클래스 - 외부 클래스의 멤버변수 선언 위치에 선언 - st.. 2023. 6. 18. [java 자바] 접근 제한자 public / protected / (default) / private public package / Class 가 동일하지 않아도 모든 접근이 가능하다. protected 같은 package 내에서만 접근이 가능하다. 다른 package 에서 접근을 하려면 해당 Class를 상속받아야 한다 default 같은 package에서만 접근을 허용한다. private 같은 package, 다른 package 모두 접근이 불가능하다. 같은 Class 내에서만 접근을 허용한다. 필드의 경우 외부에서 접근하기 위하여 getter와 setter를 이용한다. 2023. 6. 16. 오버라이딩 overriding / super / 상속 extends / implements 오버라이딩 -부모 클래스로부터 상속받은 매서드 내용을 재정의 하는 것 -상속 받은 메서드를 그대로 사용해도 상관 없지만 변경해야 하는 경우 부모메서드를 오버라이딩 한다. * 사용 조건 -새로 만드는 것 x -내용을 새로 변경 하는 것 o 1. 자식 클래스에서 오버라이딩 하는 메서드는 부모 클래스의 메서드와 - 이름/ 매개변수/ 반환 타입이 같아야 함 2. 접근 제어자는 조상클래스의 메서드보다 좁은 범위로 변경하면 안됨. * public > protected > default > private (점점 범위가 좁아짐) 3. 부모 클래스의 메서드보다 많은 수의 예외 선언이 불가하다. - 개수만 문제가 아니고, 자식 클래스에서 더 넓은 범위(e.g. Exception) 를 사용해서도 안됨 4. 인스턴스 메서드를.. 2023. 6. 16. 이전 1 2 다음