Java

    기초 #9. 인터페이스 Soldier (인터페이스 예제편)

    기초 #9. 인터페이스 Soldier (인터페이스 예제편)

    이전 글에서 적은 예제인 RemoteControl 인터페이스보다 더 기본에 충실한 예제를 적어보겠다. 1. 인터페이스 Soldier 코드 ▶인터페이스에는 기본적으로 상수와 추상메서드가 있다. ▶인터페이스에는 구현할 클래스들의 공통요소를 정의만 해놓는 역할을 한다. ▶군인의 공통점으로는 팔다리가 있고, 먹고,일하고,놀고,자고,경례를 한다는 점이다. public interface Soldier { final static int arm = 2; int Legs = 2;//컴파일과정에서 자동으로 final static이 붙어, 외부에서 변경 불가능하다. public abstract void eat(); void work();//abstract키워드를 쓰지않아도 추상메서드. why? body {}가 없으니까. v..

    기초 #8. 인터페이스 (+익명 구현 객체)

    기초 #8. 인터페이스 (+익명 구현 객체)

    인터페이스란 ▶하나의 틀, 규격을 말한다! ▶생성자가 없다. (인터페이스에서는 생성의 개념이 없다.) ▶추상클래스와 목적이 같은데, 즉 지정받거나 상속받는 클래스들의 공통요소를 묶기 위함이다. 하지만 추상클래스와는 차이점이 있다. ▶추상클래스와 인터페이스의 차이점 인터페이스 추상클래스 동작 가능성 (생성자 유무) (단, 추상메서드일 경우)동작 실행 개념이 없기 때문에 실질적인 동작구현(블록 {})이 없다. (생성자 X) 실행 개념이 있는 일반 메서드는 구현할 수 있지만 추상메서드의 경우, 동작구현을 하지 않는다.(블록 {}이 없다.) 재정의 강제성 인터페이스에서 정의한 요소를 하위클래스가 모두 재정의하도록 강제성을 부여한다. 재정의 강제성은 있지만 하위클래스가 필요한 요소를 선택해서 쓸수 있다. ** 동..

    기초 #7. 중첩 클래스(인스턴스 멤버 클래스, 정적 멤버 클래스, 로컬 클래스)

    본격적으로 들어가기전에! 우선, 인터페이스는 하나의 규격(틀)으로, 생성자가 없다. 즉, 인스턴스화할 수도, 실행시킬 수도 없다. 익명 구현 객체란 익명 클래스를 통해 만들어진 객체로 일회성이라는 목적성이 있다. 즉, 메모리 heap영역에 객체를 기록할 뿐, 객체의 이름이 없다. 클래스는 인터페이스와 달리 객체를 찍어내는 생성자()가 반드시 존재해야 한다. 클래스 구성요소는 인스턴스와 정적(static) 구성요소가 있다. 중첩 클래스 ---------------------------------------------------------------------------------------- ▶중첩 클래스는 내부 클래스라고도 불린다. (inner class) ▶클래스 내부에 클래스를 선언하여 외부 클래스의..

    기초 #6. 인터페이스 예습

    인터페이스 # 클래스와 인터페이스의 관계 우리가 어플, 게임, 전화, 문자 등의 기능이 있는 스마트폰을 갖고있는데, 부모님에게 전화기라고 소개를 하게되면, 부모님은 전화기로만 그 스마트폰을 이용하게되고 꼬맹이에게 게임기라고 소개하게되면, 꼬맹이는 누군가한테 실수로 전화&문자할 일 없이, 게임기만을 이용하게 된다. 여기서 스마트폰은 클래스이고, 전화기, 게임기는 인터페이스라고 생각하면된다. 한 인스턴스가 게임기만을 쓰고자 할때는, 그 게임기 인터페이스를 타입으로 지정하면 되는 것이다. (이럴때 그 인스턴스는 다른 기능의 메서드에 접근하지 못한다.) # implement : 구현하다 변수의 타입으로 인터페이스를 지정하면, 그 인터페이스를 구현하는 클래스를 대입할 수 있다. 이제 세가지 상황을 코드로 봐볼 것..

    기초 #5. 추상클래스 (ex. 계산기 프로그램)

    기초 #5. 추상클래스 (ex. 계산기 프로그램)

    추상? 추상이란, 실체들 간에 공통되는 특성을 추출한 것이다. ex) 삼각형, 사각형, 원 -> 모양, 그리기 등 추상 클래스? 실체 클래스(서브)들의 공통되는 필드와 메소드를 정의만 한 클래스이다. 실체클래스의 부모 역할이어야 한다. 단독X 추상클래스는 온전한 클래스가 아니기때문에 (new연산자로) 인스턴스 생성을 못한다. (상속받은 자식클래스에서 생성 가능하다.) 추상 메서드 : 실체 클래스(서브)들의 공통되는 메서드. (정의만) 실체 클래스 : 추상 클래스의 메서드를 구현하는 클래스. 실체 메서드 : 추상메서드를 구현. (오버라이딩-메서드 이름은 동일하지만 실행내용이 다른 메서드.) 간단한 예를 들면, Animal()이라는 추상클래스가 있고, 여기에는 Sound()라는 추상 메서드를 정의한다. pu..

    기초 #4. 상속과 다형성

    기초 #4. 상속과 다형성

    이번 포스팅에서는 상속과 다형성에 대해 정리하고, 필요한 관련 개념들을 간단히 정리할 것입니다. 목차는 아래와 같습니다. 상속 - super() 생성자 업 캐스팅 정적바인딩과 동적바인딩 다운 캐스팅 상속 - super() 생성자 상속된 서브 클래스의 객체가 main함수에서 생성되면 자동적으로 서브클래스의 기본생성자를 호출하고, 서브클래스에서는 슈퍼클래스의 기본 생성자를 호출하여 차례대로 실행이 된다. 클래스A, B, C 가 있고 B가 A를, C가 B를 상속한 코드로 보면 이렇게 된다. 그리고 이를 실행해보면, 다음과 같은 결과가 뜨는데, A클래스의 객체를 생성했을땐 A의 기본생성자가 호출되고, B클래스의 객체를 생성했을땐 B의 기본생성자 호출-> 부모인 A의 기본생성자 호출-> A의 기본생성자 먼저 실행..