자바프로그래밍 29

상속 ( Inheritance )

[ 상속 ] 상속은 클래스로부터 멤버변수와 메소드를 그대로 물려받아 상속받은 클래스에서 재사용 한다 라고 말 할수 있다. 이 때 상속받은 클래스는 자식클래스 또는 Sub Class라고 하고, 상속되는 클래스는 부모 클래스 또는 Super Class 라고 한다. 상속개념을 적용하면 코드 재사용성을 높이고 코드의 중복을 줄이며, 관리가 쉽다. 또한 버그를 줄여줄 수 있다. 자바는 상속 받을 수 있는 클래스는 단 하나이다. (즉 단일상속) * 현실세계의 계층구조를 나타내기 위해서 사용한다. * 상속은 의존성이 매우 높은 기법이다 : 부모클래스의 변경으로 인해 자식클래스에서 무슨 오류가 생길지 모르고, 부모 클래스는 자식 클래스를 알지 못함(상속은 매우 조심스럽게 사용해야 한다.) * 상속된 변수와 메소드는 원..

메소드 오버로딩(Method Overloading)

메소드 오버로딩(Method Overloading) 하나의 메소드로 파라미터의 개수, 타입, 파라미터 위치를 고려하여 여러개의 메소드를 만드는 것 메소드 구분 기준 메소드에서 고려해야 할 대상 - 메소드 이름, 파라미터, 파라미터 타입, 파라미터 위치 메소드에서 고려해야 할 대상 - 리턴값은 고려 대상이 아님 - 접근제한자 아래의 코드를 보면 눈으로 보면 알겠지만 다른사람이 사용한다고 생각해봐라 ...... 다 기억하겠는가? -> 바람직하지 않은 방법이다 class Test { public int sum1(int a, int b) { } public int sum2(int a, int b, int c) { } public int sum3(int a, int b, int c, int d) { } } 그래서..

캡슐화(Encapsulation)

캡슐화(Encapsulation) 접근 제한자(Access Modifer)를 사용하여 객체의 멤버변수와 메소드를 하나로 묶고 실제 구현 내용을 감추어 외부에서는 객체가 노출해서 제공하는 멤버변수와 메소드만 이용할 수 있게 하는 것 캡슐화의 목적 1) 접근제한자를 사용하여 객체의 데이터를 외부로부터 보호하기 위함(정보은닉 information hiding) 2) 멤버변수와 메소드를 묶어 개발자는 코드 재사용을 편하게 하려는 것과, 사용자에게 필요한 기능만 제공하기 위함

static , 접근제어

[ static ] - 클래스는 타입이다. 집이 아니고 집의 설계도임 따라서 클래스의 데이터 필드에 데이터를 저장할 수 없고, 클래스의 멤버 메서드를 실행할 수도 없다. - new 명령으로 해당 클래스 타입의 객체를 만든 후, 그 객체에 데이터를 저장하고, 그 객체의 멤버 메서드를 실행하는 것이다. - 하나의 예외가 존재하는데 이것이 바로 static 멤버이다. - static 멤버는 클래스 안에 실제로 존재하며 객체에는 존재하지 않는다. [ static 멤버의 용도] 1. main 메서드 2. 상수 or 클래스 당 하나만 유지하고 있으면 되는 값(예 PI : 1.141592...) 3. 순수하게 기능만으로 정의되는 메서드(Math.abs ... 등등) [ 접근제어 ] public : 클래스 외부에서 접..

제네릭 프로그래밍

[ Generic Programming ] 제네릭 프로그래밍은 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있는 기술에 중점을 두어 재사용성을 높일 수 있는 프로그래밍 방식. [ Generics ] T 라는 가상의 타입에 의해서 parameterized된 클래스 public class Box { private T t; public void set(T t) { this.t = t; } public T get() { return t; } } 사용예시 Box ingegerBox = new Box(); integerBox.set( new Integer(10 ); Box eventBox = new Box(); eventBox.set(new OndayEvent("dinner", n..

인터페이스

[ 인터페이스 ] - 추상 메서드만을 가진 순수한 추상 클래스이다. - static final 데이터 멤버(상수)를 가질 수 있다. - interface , implements 키워드를 사용 public interface Payable { public double calcSalary(); public boolean salaried(); public static final double DEDUCTIONS = 25.5; } // 반드시 인터페이스의 메소드를 오버라이딩 해야한다. public class test implements Payable{ @Override public double calcSalary() { // TODO Auto-generated method stub return 0; } @Overr..

class Object

[ class Object ] 클래스 Object 는 Java에서 모든 클래스의 superclass 이다. Java 의 모든 클래스는 내가 만들어 주지 않아도 이미 equals 와 toString 메서드를 가지고 있다. 클래스 Object의 멤버 메서드 Method Behavior boolean equals(Object obj) Compares this object to its argument. int hashCode() Returns an integer hash code value for this object String toString() Returns a string that textually represents the objct Class getClass Returns a unique object..