Java 204

101. hashCode()와 equals()는 짝꿍이다 – 동등 객체 비교의 원칙

이번 글에서는 객체가 논리적으로 같은지 판단하는 기준을 완성하기 위해,equals()와 함께 hashCode()도 재정의하는 방법을 배웁니다.두 객체가 내용이 같다면 해시코드도 같아야 한다는 규칙이 있기 때문에, 둘은 항상 함께 재정의해야 합니다.📌 예제 코드package ch12.sec03;public class Student { private int no; private String name; public Student(int no, String name) { this.setNo(no); this.setName(name); } public int getNo() { return no; } public void setNo(int..

Java/자바 정리 2025.05.13

100. 객체 비교의 기준을 내 마음대로! – equals() 메서드 재정의

이번 글에서는 Object 클래스의 equals() 메서드를 재정의하여, 두 객체가 동등한지 판단하는 기준을 직접 설정하는 방법을 배웁니다.기본 equals()는 참조값(주소값) 비교이지만,우리가 원하는 대로 내부 값이 같으면 같은 객체로 간주하도록 만들 수 있습니다.📌 예제 코드public class Member { public String id; public Member(String id) { this.id = id; } @Override public boolean equals(Object obj) { if (obj instanceof Member target) if (id.equals(target.id)) // 문자열 id ..

Java/자바 정리 2025.05.13

99. 예외를 직접 던져보자 – 잔고 부족 예외 처리 만들기

이번 글에서는 메서드에서 조건을 검사한 후 직접 예외를 던지는 방법을 실습합니다.계좌 클래스에서 출금 금액이 잔액보다 클 경우, 예외를 발생시켜 문제를 알려주는 구조를 구현해봅니다.이 예제는 예외가 단순히 발생하는 것이 아니라 개발자가 직접 던지고 처리하는 흐름을 잘 보여줍니다.📌 예제 코드package ch11.sec06;import javax.naming.InsufficientResourcesException;public class Account { private long balance; public Account() { } public long getBalnce() { return balance; } public void deposit(int money..

Java/자바 정리 2025.05.13

98. 예외를 던진다? throws로 책임을 미루는 방법

이번 글에서는 예외를 직접 처리하지 않고 호출한 곳으로 전달하는 방법인 throws 키워드를 배워봅니다.또한 main() 메서드에 throws Exception을 붙이면 어떤 효과가 있는지도 함께 살펴봅니다.📌 예제 코드public class ThrowsExample { public static void main(String[] args) { try { findClass("java.lang.String2"); // 존재하지 않는 클래스명 } catch (Exception e) { System.out.println("예외 처리 : " + e.toString()); } } // ClassNotFoundExcepti..

Java/자바 정리 2025.05.13

97. 예외가 여러 개여도 하나로 처리하자 – 멀티 캐치(Multi-Catch)

이번 강의에서는 하나의 try 블록에서 여러 종류의 예외가 발생할 수 있을 때,이들을 하나의 catch 블록에서 동시에 처리하는 방법을 실습해봅니다.특히 NullPointerException과 NumberFormatException을 함께 묶어 처리하는 구조를 배웁니다.📌 예제 코드public class ExceptionHandlingExample { public static void main(String[] args) { String[] arrays = { "100", "1oo", null, "200" }; for (int i = 0; i 💻 실행 결과array [0] : 100데이터 문제 발견 : For input string: "1oo"데이터 문제 발견 : Cann..

Java/자바 정리 2025.05.13

96. 예외 처리에도 순서가 있다! – Exception은 맨 마지막에 써야 해요

이번 글에서는 예외 처리를 할 때 catch 블록의 순서가 왜 중요한지를 확인해봅니다.특히, Exception처럼 상위 예외 클래스가 먼저 오면 어떤 문제가 발생하는지를 다루며,실행 중 발생할 수 있는 두 가지 예외(ArrayIndexOutOfBoundsException, NumberFormatException)를상위 타입인 Exception으로 하나로 묶어 처리하는 예제를 실습해봅니다.📌 예제 코드public class ExceptionHandlingExample { public static void main(String[] args) { String[] arrays = { "100", "1oo" }; // 두 번째 값은 숫자로 변환 불가 for (int i = 0; i..

Java/자바 정리 2025.05.13

95. 배열 범위도, 숫자 형식도 조심하자 – 예외 두 개를 잡는 try-catch

이번 글에는 배열의 범위를 벗어난 접근과 문자열을 숫자로 바꾸는 과정에서의 오류를 동시에 다루는 예제를 실습해봅니다.두 가지 서로 다른 예외를 catch 블록을 나눠서 처리하면, 구체적으로 어떤 문제가 발생했는지 알 수 있습니다.📌 예제 코드public class ExceptionHandlingExample { public static void main(String[] args) { String[] arrays = { "100", "1oo" }; // 두 번째 문자열은 알파벳 'o'가 포함되어 있음 for (int i = 0; i 💻 실행 결과array [0] : 100숫자가 아님 : For input string: "1oo"배열 인덱스 초과 : Index 2 out o..

Java/자바 정리 2025.05.13

94. 클래스를 찾을 수 없다면? ClassNotFoundException을 잡아보자

이번 글에서는 Class.forName() 메서드를 사용해클래스의 존재 여부를 동적으로 확인하는 방법과,존재하지 않는 클래스를 찾으려 할 때 발생하는 예외인ClassNotFoundException을 처리하는 방법을 배워봅니다.📌 예제 코드public class ExceptionHandlingExample { public static void main(String[] args) { try { Class.forName("java.lang.String"); System.out.println("java.lang.String 클래스가 존재합니다."); System.out.println(); Class.forName(..

Java/자바 정리 2025.05.13

93. try-catch로 예외를 안전하게 처리해보자

이전 글에서는 null을 참조하는 코드에서 NullPointerException이 발생해 프로그램이 중단되는 현상을 확인했어요.이번에는 같은 상황에서 try-catch 블록을 사용해 예외를 안전하게 처리하고, 프로그램이 계속 실행될 수 있도록 만드는 코드를 실습해봅니다.📌 예제 코드public class ExceptionHandlingExample1 { public static void printLength(String data) { try { int re = data.length(); System.out.println("문자 수 : " + re); } catch (Exception e) { System.out.p..

Java/자바 정리 2025.05.13

92. 예외 처리의 시작 – NullPointerException은 왜 터질까?

이번 글에는 예외(Exception)의 개념을 처음 접하며,가장 흔하게 발생하는 예외 중 하나인 NullPointerException을 직접 경험해봅니다.문자열의 길이를 출력하는 간단한 메서드를 만들고,그 안에서 null 값을 전달했을 때 어떤 일이 일어나는지 확인해보겠습니다.📌 예제 코드public class ExceptionHandlingExample1 { public static void printLength(String data) { int re = data.length(); System.out.println("문자 수 : " + re); } public static void main(String[] args) { System.out.prin..

Java/자바 정리 2025.05.13
반응형