try-catch 블록은 자바에서 예외 처리를 위해 사용되는 구문입니다. 이 구문을 사용하여 예외가 발생할 수 있는 코드를 감싸고, 예외가 발생할 경우 적절한 처리를 수행할 수 있습니다. try-catch 블록 구조 try { // 예외가 발생할 수 있는 코드 } catch(예외클래스타입 변수) { // 예외 처리 코드 } try-catch 블록 동작 원리 try 블록 안의 코드가 실행됩니다. 코드가 실행되면서 예외가 발생하지 않으면 catch 블록은 실행되지 않습니다. 예외가 발생되면 해당 예외 타입과 일치하는 catch 블록이 실행됩니다. 예외가 처리되면 그 이후에 코드는 실행됩니다. 만약 일치하는 타입이 없이 catch 블록을 통한 예외 처리를 하지 못하면 프로그램은 종료될 수 있습니다. try-c..
1. 입력 데이터의 오류 사용자 입력에 대한 유효성 검사를 수행하지 않은 경우, 부적절한 입력으로 인해 예외가 발생할 수 있습니다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int age = sc.nextInt(); // age로 문자열을 입력할 경우 InputMismatchException 예외 발생 System.out.println(age); } } 2. 파일 및 네트워크 관련 오류 파일이 존재하지 않거나 읽기/쓰기 권한이 없는 경우, 파일 처리 중 예외가 발생할 수 있습니다. 또한 네트워크 통신 중 연결이 끊기는 등의 예외도 발생할 수 있습니다. public clas..
예외(Exception)는 프로그램 실행 도중 발생하는 예기치 않은 상황이나 오류를 가리키는 프로그래밍 용어입니다. 프로그램이 실행 중에 예외가 발생하면, 일반적인 흐름을 방해하거나 비정상적인 동작을 유발할 수 있습니다. 예외는 주로 논리적인 오류나 외부 요인으로 인한 문제로 인해 발생하며, 이를 처리하는 예외 처리 메커니즘이 프로그램의 신뢰성과 안정성을 강화하는 역할을 합니다. 예외 처리 목적 비정상 종료 방지 오류 메시지 제공 프로그램의 흐름 제어 예외 처리 장점 안정성과 신뢰성 향상 예외 상황 코드 분리로 유연성 향상 디버깅과 로깅 예외 종류별 대응 예외의 종류 checked 예외 : 컴파일러에 의해 체크되는 예외로, 프로그래머가 반드시 처리해야 하는 예외입니다. FileNotFoundExcepti..
캠슐화의 개념 캡슐화는 클래스의 내부 상태와 동작을 외부로부터 숨기는 것을 의미합니다. 데이터와 그 데이터를 다루는 메서드를 하나로 묶어 클래스 내부로 숨기는 개념을 나타냅니다. 캡슐화를 통해 데이터의 접근을 제어하고, 외부에서 직접적인 접근을 허용하지 않고 메서드를 통해 간접적으로 접근하도록 합니다. 이를 통해 클래스는 자신의 내부 구현을 숨기고, 외부에는 필요한 기능만 노출시킴으로써 클래스의 사용을 단순화합니다. 캡슐화의 이점 정보 은닉 : private를 이용하여 외부 접근을 차단합니다. 이를 통해 내부 데이터의 부적절한 변경을 방지합니다. 코드 유연성과 확장성 향상 : 클래스의 내부 구현을 숨기고 외부로 인터페이스를 노출시킴으로써 내부 구현이 변경되더라도 외부 코드에 영향을 주지 않습니다. 그래서..
자바에서는 클래스를 이용한 다중 상속을 지원하지 않습니다. 하지만 인터페이스를 이용해서 다중 상속을 지원하고 있습니다. 인터페이스는 메서드의 집합을 추상화하여 정의합니다. 이렇게 정의된 메서드는 구현 내용을 포함하지 않습니다. 하위 클래스에서 구현을 해야 합니다. 다형성을 이용하여 많은 클래스를 동일한 타입으로 나타낼 수 있습니다. interface 키워드를 이용하여 생성합니다. 인터페이스 특징 지역 변수 public static final 생략 가능합니다. default, static메서드로 구현가능합니다.(JAVA 8 이상) private를 이용해서 구현가능합니다.(JAVA 9 이상) 인터페이스 예제 // 인터페이스 정의 public interface Animal { // public static f..
공통된 특성과 기능을 정의하는 것입니다. 추상 클래스는 직접 인스턴스화하지 못합니다. abstract 제어자를 이용하여 추상화를 만듭니다. 추상 클래스의 특징 공통된 특성 : 서로 다른 클래스들이 가지는 공통된 특성과 기능을 하나로 묶어 추출합니다. 일반 메서드와 추상 메서드를 정의할 수 있습니다. 추상 메서드 : 구현 내용이 없는 메서드로 하위 클래스에서 반드시 오버라이딩하여 구현해야 합니다. 인스턴스화 : 추상클래스는 직접 인스턴스화를 할 수 없습니다. 추상 클래스를 상속한 하위 클래스로 객체를 생성해야 합니다. 추상클래스 예제 abstract class Animal { String type; abstract void makeSound(); void getType() { System.out.print..