목록전체 글 (216)
Practice makes perfect

제네릭(Generics)이란? : 특정 타입만 다루지 않고, 여러 종류의 타입으로 변신할 수 있도록 클래스나 메소드를 일반화시키는 기법입니다. 재네릭의 장점 1. 타입 안정성을 제공해줍니다. 2. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해 집니다. - Generics 사용하기 이전에 범용적으로 사용할 수 있는 변수로 Object를 배웠습니다. Object여러 참조자료형을 사용해보도록 하겠습니다. - 자료형 class FruitBox { Object item; public void store(Object item) {this.item = item;} public Object pullOut() {return item;} } class Apple { int weight; // 사과의 무게 Apple..
Calendar 클래스 : 날짜를 읽어오는 클래스입니다. Calendar는 추상 클래스 이기 때문에 직접 객체를 생성할 수 없고, 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 합니다. Calendar today = new Calendar(); error!! 추상클래스는 인스턴스를 생성할 수 없습니다. Calendar today = Calendar.getInstance(); .getInstance() 메서드는 Calendar 클래스를 구현한 클래스의 인스턴스를 반환해줍니다. 추가적으로 설명을하면, 인스턴스를 직접 생성해서 사용하지 않고 이처럼 메서드를 통해서 인스턴스를 반환하게 하는 이유는 최소한의 변경으로 프로그램이 작동할 수 있도록 하기 위한 것입니다. ● 현재 날짜, 시간, 년, 월, 일..

Wrapper 클래스란? :자바의 기본 타입(자료형)을 클래스화시키는 것입니다. 쉽게 이야기해서 기본 자료형을 class를 입혀서 참조변수 처럼 사용할 수 있게 말하는 것을 의미합니다. - 원칙적으로 보면 int, String와 같은 기본자료형으로 Object 를 상속 받지 않으므로 error 를 내야하지만 기본 자료형을 Object에 입력으로 전달하고 싶을 때 wrapper로 사용하면 error 없이 편리하게 사용할 수 있습니다. ● 기본 타입의 값으로 Wrapper 객체 생성 Integer i = new Integer(10); Character c = new Character(‘c’); Double f = new Double(3.14); Boolean b = new Boolean(true); 박싱(b..

Object 클래스 - java.lang 패키지에 포함합니다. - 모든 클래스의 수퍼 클래스 입니다. - 모든 클래스에 강제 상속합니다. - 모든 객체가 공통으로 가지는 객체의 속성을 나타내는 메소드 보유하고 있습니다. 예시) class Point { int x, y; public Point(int x, int y) { this.x = x; this.y = y; } } public class ObjectPropertyEx { public static void print(Object obj) { System.out.println(obj.getClass().getName()); // 클래스 이름 System.out.println(obj.hashCode()); // 해시 코드 값 System.out.print..
지금까지 예외처리를 하기위해서 사용했던 것으로는 조건문(if, switch)등을 통해서 예외를 처리했습니다. 이러한 조건을 통한 예외 말고도 예외라는 말은 다른 뜻으로 사용합니다. 그것은 사용자(개발자)의 잘못된 조작이나 잘못된 코딩으로 인해 발생하는 프로그램 오류를 예외(exception)라고 사용합니다. 그렇다면 지금까지 사용했던 예외 처리인 if 문을 잠깐 보고 추가 적인 예외 문들을 보도록 하겠습니다. ● if문을 이용한 예외처리 - 나눗셈 package 예외처리; import java.util.Scanner; public class 예외처리{ public static void main(String[] args) { Scanner input = new Scanner(System.in); Syste..

Abstract class 란? 1. 추상 메소드를 하나라도 가진 클래스이며, 클래스 앞에 반드시 abstract라고 선언해야 합니다. abstract class Shape { // 추상 클래스 선언 public Shape() { } public void paint() { draw(); } abstract public void draw(); // 추상 메소드 } 2. 추상 메소드가 하나도 없지만 abstract로 선언된 클래스 입니다. abstract class MyComponent { // 추상 클래스 선언 String name; public void load(String name) { this.name = name; } } 그렇다면 추상 메소드(abstract method)란 무엇일까요? public..

메서드 오버라이딩(Method Overriding)이란? : 부모 클래스 메소드의 이름, 매개변수 타입 및 개수, 리턴 타입 등 모든 것 동일하게 작성하는 것입니다. 쉽게 말해서 메소드 무시하기, 덮어쓰기로도 이야기 할 수 있습니다. ● 오버라이딩(Overriding) - 오버라딩의 조건 : 상속 관계라는 전제하에 상위 클래스에 정의된 메소드의 이름, 반환형, 매개 변수 선언까지 완전히 동일한 메소드를 하위 클래스에서 다시 정의합니다. - 부모 클래스에 선언된 메소드를, 각 자식 클래스들이 자신만의 내용으로 새로 구현하는 기능 입니다. - 상속을 통해 '하나의 인터페이스(같은 이름)에 서로 다른 내용 구현'이라는 객체 지향의 다형성 실현합니다. - 다형성 : 다형성이란 같은 자료형에 여러 가지 객체를 대..

상속(inheritance) 이란? : 부모의 생물학적 특성을 물려받는 유전과 유사하다고 생각할 수 있습니다. 즉, 부모클래스에 만들어진 필드, 메소드를 자식클래스가 물려받는 것을 의미합니다. 상속을 통해 간결한 자식 클래스 작성하게 되면 동일한 특성을 재정의할 필요가 없어 자식 클래스가 간결하게 만들 수 있습니다. 위의 예시와 같이 상속이 없는 경우 중복된 멤버를 가진4 개의 클래스 만들어야 합니다. 상속을 이용한 경우 중복이 제거되고 클래스의 구조가 간결해집니다. ● 상속의 장점 1) 클래스의 간결화 : 멤버의 중복 작성이 불필요 합니다. 2) 클래스 관리 용이 : 클래스들이 계층적으로 분류됩니다. 3) 소프트웨어의 생산성 향상 : 클래스 재사용과 확장 용이합니다. : 새로운 클래스의 작성 속도가 빠..