본문 바로가기

Etc../SWExpertAcademy

(13)
[Java Programming] 객체지향 핵심 원리(8) ■ 예외 처리 예외(Exception)의 개념 오류 Error : 프로그램으로 처리할 수 없어 프로그램이 중단됨 Exception : 프로그램 실행 중 발생할 수 있는 가벼운 사건, 프로그램적으로 얼마든 처리할 수 있는 오류 자바에서 예외가 발생하는 경우 정수를 0으로 나누는 경우 (ArithmeticException) 배열의 인덱스가 음수인 경우 배열의 인덱스가 배열의 길이를 넘어서는 경우 (ArrayIndexOutOfBoundsException) 부적절한 형변환이 발생하는 경우 입출력 시 Interrupt가 발생하는 경우 입출력을 위해 필요한 파일이 존재하지 않는 경우 (IOException) 예외 발생 시 처리 과정 프로그램 실행 중 예외 발생 JVM은 해당 예외 상황의 해당 예외 객체를 생성하여 ..
[Java Programming] 객체지향 핵심 원리(7) 인터페이스와 패키지 ■ 인터페이스와 다형성 인터페이스 추상 클래스보다 추상성이 더욱 심화된 개념 멤버변수는 모두 상수형 메서드는 모두 추상 메서드로 선언 사용 이유 두가지 클래스의 특성을 가지는 클래스를 만들기 위해 다중상속이 불가능한 대신 인터페이스 제공 public interface 인터페이스명 extends 부모인터페이스명, ...{ // 상수 (final 예약어 사용) // 추상 메서드 (인터페이스는 객체생성이 불가능하므로 상수에 static 예약어 필요 } public interface Drawable{ // 인터페이스의 경우 public static final int PLAIN_PEN = 1; // static final 생략 가능 public static final int BOLD_PEN =..
[Java Programming] 객체지향 핵심 원리(6) 추상 클래스와 객체의 형변환 ■ 추상 클래스와 내부 클래스 추상메서드 메서드의 시그니쳐( 리턴타입, 메서드명, 매개변수 )만 정의 구체적인 행위는 정의되지 않은 특수한 메서드 abstract 예약어를 사용 상속을 통해 사용되는 클래스마다 필수로 가져야하는 메서드의 형태를 정의 추상 메서드를 Overriding하지 않으면 컴파일 불가능 추상 클래스 추상 클래스는 일반적으로 하나 이상의 추상 메서드를 포함 추상 메서드를 포함하고 있으면 무조건 추상 클래스로 선언해야함. 추상 클래스는 객체 생성을 할 수 없음 추상 클래스를 상속받은 클래스는 추상 메서드를 OVerriding해야 객체를 생성할 수 있음 유지보수의 편의성을 높이기 위해 사용함. (상속을 통해 동일한 기능을 포함한 클래스가 됨) 내부 클래스 클래스..
[Java Programming] 객체지향 핵심 원리(5) 자바의 상속 ■ 상속(Inheritance) 상속의 개요 부모 클래스의 모든 것을 자식 클래스가 물려받는 것 extends 예약어 사용 ( 상속은 부모의 기능에서 추가적인 것들을 확장한다는 의미 ) 상속을 통해 소스코드의 재사용성이 보장되며, 가독성이 높아짐 부모 / 자식 간 is a~ 관계에 존재해야함 부적절한 상속은 소스코드에 대한 분석과 개발을 어렵게 만듦 자바에서는 단일 상속만 허용 상속과 생성자 자식클래스는 부모 클래스들이 가지고 있는 모든 멤버와 자기 클래스가 갖는 모든 멤버를 가짐 초기화를 위해 자식 클래스가 호출되면 부모 클래스의 생성자가 먼저 초기화하고 자식 클래스의 생성자를 통해 초기화됨. class SuperClass{ int n1; public SuperClass(){ System...
[Java Programming] 객체지향 핵심 원리(4) 메서드 Overloading과 매개변수 ■ 메서드 Overloading 변수의 중복 선언 변수는 데이터 타입이 달라도 이름이 동일한 경우를 허용하지 않음 클래스 안에 동일한 이름의 변수를 사용했을 때, 프로그램이 모호해지기 때문. 메서드의 중복 정의 변수와 달리 하나의 클래스에 동일한 이름의 메서드는 여러개 정의할 수 있음 매개변수의 개수와 타입을 통해 실행될 메서드를 구분할 수 있기 때문 이를 메서드 Overloading이라 함. public class Employee{ String name; int age; void setEmployee(String name, int age){ this.name = name; this.age = age; } void setEmployee(String name){ th..
[Java Programming] 객체지향 핵심 원리(3) 자바 Modifier와 생성자 ■ 자바의 Modifier static 예약어 멤버 변수와 메서드 앞에 붙일 수 있는 modifier, 활용 방법을 제어함 인스턴스 변수 : static 예약어 X, 생성된 인스턴스마다 그 안에 클래스의 인스턴스 변수들이 포함됨 클래스 변수 : static 예약어 O, 클래스로부터 생성된 인스턴스에 포함되지 않는 변수, 많은 인스턴스를 생성하더라도 메모리에 하나의 변수만 존재함, 객체를 생성하지 않고도 접근할 수 있는 변수. 동일한 정보를 가지고 있는 경우 인스턴스 변수로 선언하면 객체가 생성될 때 마다 인스턴스 변수가 포함 될 것, 하지만 클래스 변수로 선언하면 하나의 메모리로부터 값을 참조하기 때문에 메모리 낭비가 덜하다. 클래스 메서드 : 일반 메서드에 static 예..
[Java Programming] 객체지향 핵심 원리(2) 클래스의 구조 ■ 클래스의 선언 클래스의 선언부와 몸체로 나뉘고 몸체에는 클래스의 멤버가 선언된다. 클래스 멤버 구성 생성자(Constructor) : 객체의 초기화를 담당 멤버 변수(Variable) : 클래스가 가지는 속성을 정의 메서드(Method) : 클래스가 가지는 데이터를 조작하고 반환 클래스 Modifier 접근 권한 예약어 : public, protected, private, (default) 활용 방법 예약어 : final abstract, static, transient, volatile, syncornized, native 객체 생성 Car Yellow; Yellow = new Car(); new예약어를 사용하여 객체가 사용할 메모리 영역 할당 생성된 객체에 대한 참조값이 선언된 객체..
[Java Programming] 객체지향 핵심 원리(1) 객체지향 핵심 개념 ■ 객체지향 개요 OOP(Object Oriented Programming) 여러 모듈을 조립하여 다양한 기능을 구현함 특정 모듈에 오류가 발생하면 수정/개선이 용이함 객체와 객체 간 자유로운 데이터 이동이 가능해짐 객체, 클래스, 인스턴스 객체 : 현실세계에 존재하는 유무형의 모든것( 변수, 메소드 ) 클래스 : 현실 세계의 객체를 컴퓨터 메모리에 생성할 수 있는 템플릿 인스턴스 : 컴퓨터 메모리에 존재하는 객체 객체지향 언어의 주요 개념 상속 (Inheritance) 기존의 클래스에 변수와 메서드를 추가 정의하여 새로운 클래스를 작성함 클래스들 사이의 공통된 속성이나 기능이 있을 경우, 상속을 통해 코드의 재사용성을 높임 상속을 통해 객체들 사이의 계층 구조를 이룰 수 있음 상위계..