JAVA/Basic

    [JAVA-basic] 다형성

    [JAVA-basic] 다형성

    다형성 객체지향개념에서 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미한다. 좀 더 구체적으로, 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다는 것이다. 다음 예시를 살펴보자. class Tv{ // 조상 boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDown() { --channel; } } class CaptionTv extends Tv{ // 자손 String text; void caption() { } } 원래 이 두 클래스의 인스턴스를 생성한다고 하면, Tv t = new Tv() ; CaptionTv c = new..

    [JAVA-basic] 제어자

    [JAVA-basic] 제어자

    제어자란? 제어자는 클래스, 변수 또는 메소드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 제어자의 종류는 다음과 같이 접근 제어자와 그 외의 제어자로 나눌 수 있다. 접근 제어자 : public, protected, default, private 그 외 : static, final, abstract, native, transient, synchronized, volatile, strictfp 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능하나, 접근 제어자는 한 번에 네 가지 중에 하나만 선택해서 사용할 수 있다. static - 클래스의, 공통적인 static은 '클래스의' 또는 '공통적인'의 의미를 가지고 있다. 인스턴스 변수는 하나의 클래스로부터 생성되었더라도 각기 다른 값..

    [JAVA-basic] 오버라이딩

    [JAVA-basic] 오버라이딩

    오버라이딩이란? 조상클래스로부터 상속받은 메소드의 내용을 변경하는 것을 오버라이딩이라고 한다. 상속받은 메소드를 그래도 사용하기도 하지만, 자손 클래스 자신에 맞게 변경해야하는 경우가 많다. 이럴 때 조상의 메소드를 오버라이딩한다. 다음 코드를 한번 봐보자. class Point{ int x; int y; String getLocation() { return "x :" +x+", y :"+ y; } } class Point3D extends Point{ int z; String getLocation() { //오버라이딩 return "x :" +x+", y :"+ y + ", z :"+ z; } } 이 두 클래스는 서로 상속관계에 있으므로 Point3D클래스는 Point클래스로부터 getLocation(..

    [JAVA-basic] 상속(2)

    [JAVA-basic] 상속(2)

    전 글에 이어서 포함관계의 예시를 살펴보자. Deck클래스를 작성하는데 Card클래스를 재사용하여 포함관계로 작성하였다. 카드 한 덱은 52장의 카드로 이루어져 있으므로 Card클래스를 크기가 52인 배열로 처리하였다. 그리고, random()을 사용하여 shuffle()을 실행할 때 마다 결과가 다르게 나타나게 하였다. 여기서 중요한 점이 있다. pick()은 Card객체 배열 cardArr에 저장된 Card객체 중에서 하나를 꺼내서 반환한다. Card객체 배열은 참조변수 배열이고, 이 배열에 실제로 저장된 것은 객체가 아니라 객체의 주소다. 따라서 반환형이 Card pick(int index)로 Card의 주소를 반환하는 것이다. 예를 들어, index의 값이 0이고, cardArr[0]의 값이 0x..

    [JAVA-basic] 상속

    [JAVA-basic] 상속

    상속의 정의와 장점 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고, 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 상속을 구현하는 방법은 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 써 주기만 하면 된다. 상속하고자하는 클래스와 받는 클래스는 서로 상속 관계에 있다고 하며, 상속해주는 클래스를 '조상 클래스'라 하고 상속받는 클래스를 '자손 클래스'라 한다. 예를 들어 다음과 같은 코드가 있다고 가정해보자. class Parent() { } class Child extends Parent { } 자손..