본문 바로가기

전체 글40

[JAVA] Chapter 13. Exception Handling 예외와 에러의 차이점은 무엇일까? compile time(우리가 짠 코드인 human language를 machine language로 바꿔주는 과정)에 발생하는 것이 에러이고 compile이 끝난 후 실행하는 runtime에 발생하는 것이 exception이다. 따라서 exception이 발생했다는 것은 compile time은 통과했고, eclipse에서 빨간 줄이 뜨지 않았다는 의미이다. 코드 상으로는 문제가 없지만 keyboard 입력 등으로 값에 의해 발생하는 것이 예외이다. 예외는 표준 예외와 사용자 정의 예외로 나뉜다. ① 표준 예외 표준 예외는 sun에서 이미 알고 있는 예외로, 예외를 처리하는 클래스까지 정의되어 있다. try 블록에 예외가 발생할 가능성이 있는 코드를 작성하면, 예외를 .. 2023. 7. 18.
[JAVA] Chapter 12. Abstract & Interface (2) ① Loose Coupling 인터페이스를 사용하는 이유는 무엇일까? 바로 Loose Coupling 관계를 만들기 위해서이다. Loose Coupling ↔ Strong Coupling인데, 다음 코드를 살펴보자. class LgTv { public void turnOn(){}; public void soundUp(){}; public void turnOff(){}; } class SamsungTv { public void powerOn(){}; public void volumeUp(){}; public void powerOff(){}; } 코드를 살펴보면, 제조사가 달라서 메서드 이름이 다를 뿐 기능은 똑같다는 것을 알 수 있다. class TvUser { LgTv tv = new LgTv(); tv.. 2023. 7. 17.
[JAVA] Chapter 12. Abstract & Interface (1) ① Abstract class 추상 메서드를 하나 이상 포함하고 있는 클래스를 추상 클래스라고 하며, abstract 키워드를 사용하여 선언한다. 추상 메서드는 method를 이루는 4가지 요소 name, return type, parameter, body 중 body가 빠진, 즉 선언만 있고 구현이 없는 메서드를 의미하며 abstract 형태로 선언한다. 추상 클래스는 불완전한 메서드를 포함하고 있기 때문에 인스턴스를 생성하지 못한다. 하지만 인스턴스 생성을 제외하면 클래스가 할 수 있는 모든 일을 할 수 있기 때문에 상속도 가능하고 reference type으로 사용할 수도 있다. 추상 클래스를 상속받을 경우, 추상 메서드도 함께 상속받게 된다. 그렇다면 Sub Class 역시 추상 클래스가 되므로 .. 2023. 7. 16.
[JAVA] Chapter 11. Inheritance (3) ① Polymorphism 상속과 Method Overriding의 개념을 잘 조합하면, 다형성을 이해할 수 있다. 가장 기본 형태인 rv.m()에서, 상속이 걸려있다면 reference variable(rv)은 최상위 Super class로 고정한다. 이렇게 하면, 나중에 Sub class가 만들어지더라도 rv로 해당 클래스의 인스턴스를 참조할 수 있다. 또한 method에 overriding이 걸려있다면 method(m)은 Sub Class의 메서드로 고정된다. 즉, rv.m()라는 코드는 바뀌지 않는데 Overriding된 메서드의 body가 다르기 때문에 인스턴스마다 다른 결과가 나온다. 이것이 한 객체가 여러 개의 형태로 나타날 수 있는 성질인 Polymorphism, 다형성이다. 어떤 언어가 .. 2023. 7. 15.