728x90

Java 39

Java 24. exception re-throwing (예외 되던지기 연습해보기)

예외 되던지기란? 한 메서드에서 발생할 수 있는 예외가 여럿인 경우, 몇 개는 try-catch문을 통해서 메서드 내에서 자체적으로 처리하고, 그 나머지는 선언부에 지정하여 호출한 메서드에서 처리하도록 함으로써, 양쪽에서 나눠서 처리되도록 할 수 있다. 그리고 단 하나의 예외에 대해서도 예외가 발생한 메서드와 호출한 메서드, 양쪽에서 처리하도록 할 수 있다. 예외를 처리한 후에 인위적으로 다시 발생시키는 방법을 통해서 가능한데, 이것을 예외 되던지기(exception re-throwing)라고 한다! 먼저 예외가 발생할 가능성이 있는 메서드에서 try-catch문을 사용해서 예외를 처리해 주고 catch문에서 필요한 작업을 행한 후에 throw문을 사용해서 예외를 다시 발생시킨다. 다시 발생한 예외는 이..

Java 2023.03.26

Java 23. try-catch, finally (예외 처리 코드)

예외 처리 try-catch - finally 자바 컴파일러는 소스 파일을 컴파일할 때 일반 예외가 발생할 가능성이 있는 코드를 발견하면 컴파일 에러를 발생시켜 개발자가 강제적으로 예외 처리 코드를 작성하도록 요구한다. 그러나 실행 예외는 컴파일러가 체크해주지 않기 때문에 개발자의 경험을 바탕으로 예외 처리 코드를 작성해야 한다. try-catch-finally 블록은 생성자 내부와 메소드 내부에서 작성되어 일반 예외와 실행 예외가 발생할 경우 예외 처리를 할 수 있도록 해준다. 생성자 내부와 메소드 내부에서 작성되어 일반 예외와 실행 예외가 발생할 경우 예외 처리를 할 수 있도록 해준다! 1. try 블록에는 예외발생 가능 코드가 위치하고 2. try 블록의 코드가 예외 발생 없이 정상 실행되면 cat..

Java 2023.03.24

Java 23. Exception handling 예외처리(오류, 에러)

예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다. 예외가 발생되면 프로그램은 곧바로 종료된다는 점에서는 에러와 비슷하다. 그러나 예외는 예외처리 exception handing를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다, 자바는 예외가 발생할 가능성이 높은 코드를 컴파일할 때 예외 처리 유무를 확인한다. 만약 예외 처리 코드가 없다면 컴파일이 되지 않는다. 하지만 모든 예외에 대해서 예외 처리 유무를 확인하는 것은 아니고, 이것을 이해하려면 예외의 종류부터 알아야 한다! 예외와 예외 클래스 예외에는 두 가지 종류가 있다 하나는 일반 예외이고 다른 하나는 실행 예외이다, 일반 예외는 컴파일러 체크 예외라고도 하는데, 프로그램 실..

Java 2023.03.23

Java 22. public, protected, default, private (접근제한자, 접근제어자)

접근 제한자는 말 그대로 접근을 제한하기 위해 사용된다. 여기서 접근이란 클래스 및 인터페이스 그리고 이들이 가지고 있는 멤버의 접근을 말한다. 어떤 경우에는 클래스와 인터페이스를 다른 패키지에서 사용하지 못하도록 막을 필요가 있다. 그리고 객체 생성을 막기 위해 생성자를 호출하지 못하게 하거나 필드나 메소드를 사용하지 못하도록 막아야 되는 경우도 있다. 이때 접근제한자를 사용할 수 있다. 접근 제한자는 public, protected, private, default와 같이 네가지 종류가 있다. public 접근제한자: 단어 뜻 그대로 외부 클래스가 자유롭게 사용할 수 있도록 한다. protected 접근제한자: 같은 패키지 또는 자식 클래스에서 사용할 수 있도록 한다. private 접근제한자: 단어 ..

Java 2023.03.22

Java 21. Package 패키지 (패키지의 선언)

패키지란, 클래스의 묶음이다. 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있다. 같은 이름의 클래스 일지라도 서로 다른 패키지에 존재하는 것이 가능하므로, 자신만의 패키지 체계를 유지함으로써 다른 개발자가 개발한 클래스 라이브러리의 클래스와 이름이 충돌하는 것을 피할 수 있다. 알게 모르게 사용해 왔던 클래스에는 사실 패키지명을 포함해 왔다! 예를 들면 String클래스의 실제 이름은 java.lang.String이다. java.lang패키지에 속한 String클래스라는 의미이다. 그래서 같은 이름의 클래스일지라도 서로 다른 패키지에 속하면 패키지명으로 구별이 가능하다. 클래스가 물리적으로 하나의 클래스파일..

Java 2023.03.21

Java 20. Overriding 오버라이딩 또는(Override 오버라이드) 오버라이딩과, 오버로딩의 차이점

Overriding 오버라이딩이란? - 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 상속받은 메서드를 그대로 사용하기도 하지만, 자손 클래스 자신에 맞게 변경해야 하는 경우가 많다. 이럴 때 조상의 메서드를 오버라이딩한다. (override의 사전적 의미는 '~위에 덮어쓰다(overwrite)'이다. 오버라이딩의 조건 오버라이딩은 메서드의 내용만을 새로 작성하는 것이므로 메서드의 선언부는 조상의 것과 완전히 일치해야 한다. 그래서 오버라이딩이 성립하기 위해서는 다음과 같은 조건을 만족해야 한다. 자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와 1. 이름이 같아야하고 2. 매개변수가 같아야 하고 3. 반환타입이 같아야 한다. 요약하면 선언부가 서로 일치해야..

Java 2023.03.20

Java 19. 상속(inheritance) 상속의 개념과 특징

상속의 정의와 장점 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 이러한 특징은 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다. 자바언어에서는 상속을 구현하는 방법은 아주 간단하다, 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 작성해주기만 하면 된다. 예를 들어 새로 작성하려는 클래스의 이름이 Child이고 상속받고자 하는 기존 클래스의 이름이 Parent라면 다음과 같이 작성하면 된다. 이 두 클래스는 서로..

Java 2023.03.19

Java 18. static Method(스태틱 메서드)

static 메서드는 메서드 앞에 static이 붙어 있으면 클래스 메서드이고 붙어 있지 않으면 인스턴스 메서드이다. 클래스 메서드도 클래스변수처럼, 객체를 생성하지 않고도 클래스이름, 메서드이름(매개변수)과 같은 식으로 호출이 가능하다. 반면에 인스턴스 메서드는 반드시 객체를 생성해야만 호출할 수 있다. 클래스를 정의할 때, 어떤 경우에 static을 사용해서 클래스 메서드로 정의해야 할까? 클래스는 데이터(변수)와 데이터에 관련된 메서드의 집합이므로, 같은 클래스 내에 있는 메서드와 멤버변수는 아주 밀접한 관계가 있다. 인스턴스 메서드는 인스턴스 변수와 관련된 작업을 하는, 즉 메서드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메서드이다. 그런데 인스턴스 변수는 인스턴스(객체)를 생성해야만 만들..

Java 2023.03.16

Java 17. 객체와 인스턴스(instance)의 개념 알아보기

클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화(instantiate)라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스(instance)라고 한다. 예를 들면, Tv클래스로부터 만들어진 객체를 Tv클래스의 인스턴스라고 한다. 결국 인스턴스는 객체와 같은 의미이지만. 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖고 있으며, 인스턴스는 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미를 갖고 있다. 책상은 인스턴스다. 라고 하기보다는 책상은 객체다.라는 쪽이 책상은 책상 클래스의 객체이다.라고 하기보다는 책상은 책상 클래스의 인스턴스다.라고 하는 것이 더 자연스럽다. 인스턴스와 객체는 같은 의미이므로 두 용어의 사용을 엄격히 구분할 필요는 없지만, 문맥에 따라 구별..

Java 2023.03.15

Java 16. 클래스와 객체(Class and Object) 용어 알아보기

클래스와 객체의 정의와 용도 클래스란 '객체를 정의해 놓은 것' 또는 '클래스는 객체의 설계도 또는 틀'이라고 정의할 수 있다. 클래스는 객체를 생성하는 데 사용되며, 객체는 클래스에 정의된 대로 생성된다. 클래스의 정의 - 클래스는 객체를 정의해 놓은 것! 클래스의 용도 - 클래스는 객체를 생성하는데 사용! 객체의 사전적인 정의는, '실제로 존재하는 것' 이다. 우리가 주변에서 볼 수 있는 책상, 의자, 자동차와 같은 사물들이 객체이고, 객체지향이론에서는 사물과 같은 유형적인 것뿐만 아니라, 개념이나 논리와 같은 무형적인 것들도 객체로 간주한다. 프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리에 생선 된 것을 뜻한다. 객체의 정의 - 실제로 존재하는 것, 사물 또는 개념! 객체의 용도 - 객체가..

Java 2023.03.15
728x90