Java27 [Java] 예외 클래스 예외(exception)사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말하며, 예외가 발생되면 프로그램은 곧바로 종료된다는 점에서는 에러와 비슷하지만 예외는 예외 처리(exception handling)를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있음. 일반 예외(exception)컴파일러 체크 예외라도고 하는데, 프로그램 실행 시 예외가 발생할 가능성이 높기 때문에 자바 소스를 컴파일하는 과정에서 해당 예외 처리 코드가 있는지 검사하고, 만약 예외 처리 코드가 없다면 컴파일 오류가 발생함. 실행 예외(runtime exception)컴파일러 넌 체크 예외라고도 하는데, 실행 시 예측할 수 없이 갑자기 발생하기 때문에 컴파일하는 과정에서 예외 .. 2025. 11. 15. [Java] 익명 객체 익명 객체(anonymous)이름이 없는 객체를 말하며, 익명 객체를 만들려면 어떤 클래스를 상속하거나 인터페이스를 구현해야만 함.// 상속class 클래스이름1 extends 부모클래스 {...}부모클래스 변수 = new 클래스이름1();// 구현class 클래스이름2 implements 인터페이스 {...}인터페이스 변수 = new 클래스이름2();* 이 경우 부모 클래스 변수는 클래스이름1의 객체를 참조하고, 인터페이스 변수는 클래스이름2의 객체를 참조. // 상속부모클래스 변수 = new 부모클래스() {...};// 구현인터페이스 변수 = new 인터페이스() {...};* 이 경우 부모 클래스 변수는 이름이 없는 자식 객체를 참조하고, 인터페이스 변수는 이름이 없는 구현 객체를 참조.익명 자식.. 2025. 11. 15. [Java] 중첩 클래스와 중첩 인터페이스 중첩 클래스(nested class)클래스 내부에 선언한 클래스를 말하며, 중첩 클래스를 사용하면 두 클래스의 멤버들을 서로 쉽게 접근할 수 있고, 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다는 장점이 있음.선언 위치에 따른 분류선언 위치설명멤버 클래스인스턴스멤버 클래스class A { class B { ... }}A 객체를 생성해야만 사용할 수 있는 B 클래스정적멤버 클래스class A { static class B { ... }}A 클래스로 바로 접근할 수 있는 B 클래스로컬 클래스class A { void method() { class B { ... } }}method( )가 실행할 때만 사용할 수 있는 B 클래스클래스의 멤버로서 선언되는 중.. 2025. 11. 15. [Java] 타입 변환과 다형성 다형성상속은 같은 종류의 하위 클래스를 만드는 기술이고, 인터페이스는 사용 방법이 동일한 클래스를 만드는 기술이라는 개념상의 차이는 있지만 둘 다 다형성을 구현하는 방법은 비슷한, 모두 재정의와 타입 변환 기능을 제공하기 때문. 자동 타입 변환(promotion)구현 객체가 인터페이스 타입으로 변환되는 것으로, 자동 타입 변환은 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것을 말함.인터페이스 구현 클래스를 상속해서 자식 클래스를 만들었다면 자식 객체 역시 인터페이스 타입으로 자동 타입 변환할 수 있음.자동 타입 변환을 이용하면 필드의 다형성과 매개 변수의 다형성을 구현할 수 있는데, 필드와 매개 변수의 타입을 인터페이스로 선언하면 다양한 구형 객체를 대입해서 실행 결과를 다양하게 만들 수 있음.. 2025. 11. 14. [Java] 인터페이스 인터페이스(Interface)개발 코드와 객체가 서로 통신하는 접점 역할을 하고 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킴, 그래서 개발 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고 있으면 됨.인터페이스는 하나의 객체가 아니라 여러 객체들과 사용이 가능하므로 어떤 객체를 사용하느냐에 따라서 실행 내용과 리턴값이 다를 수 있으며, 개발 코드 측면에서는 코드 변경 없이 실행 내용과 리턴값을 다양화할 수 있다는 장점을 가지게 됨. 인터페이스 선언인터페이스는 '~.java'형태의 소스 파일로 작성되고 컴파일러(javac)를 통해'~.class'형태로 컴파일되기 때문에 물리적 형태는 클래스와 동일하지만, 소스를 작성할 때 선언하는 방법이 다름.[pub.. 2025. 11. 14. [Java] 추상 클래스 추상 클래스객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 한다면, 이 클래스들의 공통적인 특성을 추출해서 선언한 클래스를 추상 클래스라고 하며, 추상 클래스와 실체 클래스는 상속의 관계를 가지고 있음.추상 클래스가 부모, 실체 클래스가 자식으로 구현되어 실체 클래스는 추상 클래스의 모든 특성을 물려받고, 추가적인 특성(필드와 메소드)을 가질 수 있음.공통된 필드와 메소드의 이름을 통일할 목적으로 사용하고, 실체 클래스를 작성할 때 시간을 절약하는 용도로 사용함.추상 클래스 선언추상 클래스를 선언할 때에는 클래스 선언에 abstract키워드를 붙여야 하며, abstract를 붙이면 new 연산자를 이용해서 객체를 만들지 못하고, 상속을 통해 자식 클래스만 만들 수 있음.public abstract .. 2025. 11. 14. 이전 1 2 3 4 5 다음