JAVA/Language(50)
-
[Java] 8. 예외처리(exception handling)
1. 프로그램 오류 에러의 종류 컴파일 에러(compile-time error) : 컴파일 시에 발생하는 에러 런타임 에러(runtime error) : 실행 시에 발생하는 에러 논리적 에러(logical error) : 실행은 되지만, 의도와 다르게 동작하는 것 에러와 예외의 비교 에러(error) : 프로그램 코드에 의해서 수슬될 수 없는 심각한 오류, 예를 들어 메모리 부족(OutOfMemoryError) 또는 스택오버플로우(StackOverflowError)가 존재합니다. 예외(exception) : 프로그램 코드에 의해서 수습 될 수 있는 다소 미약한 오류 2. 예외 클래스의 계층 구조 예외 클래스의 분류 Exception 클래스와 그 자손들 : 사용자의 실수와 같은 외적인 요인에 의해 발생하는..
2022.06.08 -
[Java] 7. 객체지향 프로그래밍 2 #8 내부 클래스(Inner Class)
1. 내부 클래스란 무엇인가? 내부 클래스란 클래스 안에 선언된 클래스 내부 클래스를 정의하는 이유는 무엇인가? 한 클래스를 다른 클래스의 내부 클래스로 선언하면 두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있기 때문입니다. 내부 클래스의 장점 내부 클래스에서 외부 클래스의 멤버(필드멤버, 메서드)들을 쉽게 접근할 수 있음 외부에 내부 클래스 자체를 감추어 코드의 복잡성을 줄일 수 있음 (캡슐화) // before class A{ ... } class B{ ... } // after class A{ // 외부 클래스 class B{ // 내부 클래스 } } 2. 내부 클래스의 종류와 특징 내부 클래스 종류와 특징 인스턴스 클래..
2022.05.23 -
[Java] 7. 객체지향 프로그래밍 2 #7 인터페이스(interface)
1. 인터페이스란 무엇인가? 인터페이스도 추상 클래스와 마찬가지로 일종의 추상 클래스입니다. 다만 추상 클래스와는 다른점은 일반 메서드 또는 멤버 변수를 구성원으로 가질 수 없습니다. 오직 추상 메서드와 상수만을 멤버로 가질 수 있습니다. 2. 인터페이스의 작성 interface 인터페이스이름{ public static final 타입 상수이름 = 값; public abstract 리턴타입 메서드이름(매개변수 목록); } 인터페이스 멤버들의 제약 모든 멤버 변수는 public static final이어야 하며, 이를 생략할 수 있음 모든 메서드는 public abstract이어야 하며, 이를 생략할 수 있음. 단, static 메서드와 디폴트 메서드는 예외(JDK 1.8~) interface Playin..
2022.05.11 -
[Java] 7. 객체지향 프로그래밍 2 #6 추상클래스(abstract class)
1. 추상 클래스란 무엇인가? 추상 클래스는 추상 메서드가 포함된 클래스 클래스를 설계도에 비유한다면 추상 클래스는 미완성 설계도에 비유할 수 있음 추상 클래스를 상속받는 자손 클래스들이 추상 메서드드를 오버라이딩하여 재정의함 예를 들어 TV 클래스가 존재한다면 TV 클래스를 상속받는 LgTV 클래스와 SamsungTV 클래스는 어느정도의 기능(ON/OFF, 채널 변경, 소리 변경 등)이 동일함을 알 수 있습니다. 하지만 제조사마다 내부 로직은 다르므로 추상 클래스를 정의함으로써 제조사마다 다르게 정의할 수 있도록 합니다. 추상 클래스의 선언 방법 abstract class 클래스이름{ ... } 2. 추상 메서드(abstract method) 추상 메서드는 추상 클래스의 메서드에 abstract 키워드..
2022.05.08 -
[Java] 7. 객체지향 프로그래밍 2 #5 다형성(polymorphism)
1. 다형성이란 무엇인가? 객체지향에서 다형성이란 조상 클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조할 수 있도록 하는 것을 의미합니다. class TV{ ... } class CaptionTV extends TV{ ... } class DigitalTV extends TV{ ... } TV tv1 = new CaptionTV();// 참조가 가능함 (o) TV tv2 = new DigitalTV();// 참조가 가능함 (o) CaptionTV tv3 = new TV();// 참조 불가능 (x) 다형성의 특징 조상 클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조할 수 있음 단, 위와 같이 저장한 조상 클래스 타입의 참조변수는 조상 클래스에 존재하는 필드멤버나 메서드밖에 사용할 수 없음. ..
2022.05.06 -
[Java] 7. 객체지향 프로그래밍 2 #4 제어자(modifier)
1. 제어자란 무엇인가? 제어자는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여함 제어자의 종류는 크게 접근 제어자와 그 외의 제어자로 나눌 수 있음 접근 제어자는 한번에 네가지중 하나만 선택해서 사용이 가능함 접근 제어자 : public, protected, default, private 그 외의 제어자 : static, final, abstract, native, transient, synchronized, volatile, strictfp 2. static - 클래스의, 공통적인 static이 사용될 수 있는 곳 : 멤버 변수, 메서드, 초기화 블럭 제어자 대상 의미 static 멤버 변수 - 모든 인스턴스에 공통적으로 사용되는 클래스 변수가 됨 - 클래스 변수는 인스터스..
2022.05.05