객체지향

    [Kotlin/Basic] 코틀린에서의 상속

    [Kotlin/Basic] 코틀린에서의 상속

    1. 추상클래스 추상클래스의 이해를 돕기 위해 먼저 동물이라는 상위클래스와 고양이, 펭귄 이라는 하위클래스를 만들어보자! 위의 자바 클래스를 코틀린으로 바꾸어보자! abstract class Animal( protected val species : String, protected open val legCount : Int //프로퍼티를 오버라이드 할 때 추상 프로퍼티가 아니라면 //무조건 open을 붙여줘야만함 ) { abstract fun move() } 이렇게 변경시킬 수 있고, 위의 open이라는 지시어는 오버라이드를 할 수 있게 열어준다는 뜻이다! 먼저 Cat클래스를 만들어 Animal클래스를 상속받아보자. class Cat( species : String ) : Animal(species, 4)..

    [JAVA-basic] 인터페이스(2)

    [JAVA-basic] 인터페이스(2)

    인터페이스의 장점 인터페이스를 사용하는 이유와 그 장점을 정리해보자. 1. 개발시간을 단축시킬 수 있다. 일단 인터페이스가 작성되면, 이를 사용해서 프로그램을 작성하는 것이 가능하다. 메소드를 호출하는 쪽에서는 메소드의 내용에 관계없이 선언부만 알면 되기 때문이다. 2. 표준화가 가능하다. 프로젝트에 사용되는 기본 틀을 인터페이스로 작성한 다음, 개발자들에게 인터페이스를 구현하여 프로그램을 작성하도록 함으로써 보다 일관되고 정형화된 프로그램의 개발이 가능하다. 3. 서로 관계없는 클래스들에게 관계를 맺어 줄 수 있다. 서로 상속관계에 있지도 않고, 같은 조상클래스를 가지고 있지 않은 서로 아무런 관계도 없는 클래스들에게 하나의 인터페이스를 공통적으로 구현하도록 함으로써 관계를 맺어 줄 수 있다. 4. 독..

    [JAVA-basic] 변수의 초기화

    [JAVA-basic] 변수의 초기화

    변수의 초기화 변수를 선언하고 처음으로 값을 저장하는 것을 '변수의 초기화'라고 한다. 변수의 초기화는 경우에 따라서 필수적이기도 하고 선택적이기도 하지만, 가능하면 선언과 동시에 적절한 값으로 초기화 하는 것이 바람직하다. 멤버변수는 초기화를 하지 않아도 자동적으로 변수의 자료형에 맞는 기본값으로 초기화가 이루어지므로 초기화하지않고 사용해도 되지만, 지역변수는 사용하기 전에 반드시 초기화해야 한다. class InitTest{ int x; //인스턴스변수 int y = x; //인스턴스변수 void method() { int i; //지역변수 int j = i; //에러. 지역변수를 초기화하지 않고 사용 } } 인스턴스변수 x는 초기화 해주지 않아도 자동적으로 int형의 기본값인 0으로 초기화되므로 에..

    [JAVA-basic] 변수와 메소드

    [JAVA-basic] 변수와 메소드

    선언위치에 따른 변수의 종류 변수는 클래스변수, 인스턴스변수, 지역변수 모두 세 종류가 있다. 변수의 종류를 결정짓는 중요한 요소는 '변수의 선언된 위치'이므로 변수의 종류를 파악하기 위해서는 변수가 어느 영역에 선언되었는지를 확인하는 것이 중요하다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 붙은 것은 클래스변수, 붙지 않은 것은 인스턴스 변수이다. 다음 예시를 봐보자. class Variables{ int iv; //인스턴스 변수 >>클래스영역 static int cv; //클래스변수 >>클래스영역 void method(){ int lv = 0; //지역변수 >>메소드영역 } } 1. 인스턴스 변수 클래스 영역에 선언되며, 클래스의 인스턴스를 생성할 때 만들어진다..