Java/Java이론

    [Java 문법] Interface 와 Adapter Class

    Adapter Class는 여러 인터페이스간의 상속을 간결화 하기 위해 사용된다. 즉, 하나의 클래스를 통해 여러가지 인터페이스를 전부 상속 받은 후 정의하여 유저의 편의를 도모해주는 역할을 한다. 다음의 코드를 통해 자세한 사항들을 확인할 수 있다. 아래에서 조심할 점은 abstract 클래스라 하더라도 내부의 메소드들이 전부 정의되어 있다면 객체 생성이 가능하다는 점이다. interface Inter3 extends Inter1, Inter2{ int c =30; public int getC(); } abstract /*객채 생성하지말라고(의미가 없으니까) 보통 abstract 붙임*/class InterSuper implements Inter3 { //Adpter Class : 대신 구현하는 클래스..

    [Java 문법] 인터페이스 (Interface)

    인터페이스는 추상(abstract) 와 비슷하게 제약을 가하는 클래스다. 그러나 추상클래스와는 다르게 상수(final)와 추상(abstract) 메소드로만 구성되어 있다. (추상클래스는 일반 변수, 메소드도 가능하다!) 인터페이스의 특징은 다음과 같다. 1. interface 키워드를 사용한다. 2. 이미 final과 abstract만 사용하기로 약속이 되어있어 키워드를 따로 붙이지 않는다. 3. 객체를 생성할 수 없다. 4. 상속 시 implement를 사용한다. 5. 상속 시 추상 메소드는 빠짐없이 구현해야 한다. 6. 다중 상속이 가능하다. 아래 코드를 통해 자세한 것을 확인할 수 있다. interface Inter1{ public int a=2; // static final 생략(어차피 final..

    [Java 문법] Final / Static

    Static이 붙은 멤버는 프로그램 시작과 동시에 Static 메모리 영역에 일순위로 할당된다. 수정이 가능하며 모든 메소드에서 공유하기 위해 흔히 사용된다. C언어의 전역변수와 비슷하다고 생각하면 된다. static의 특징은 다음과 같다. 1. static 메소드는 static 변수로만 호출 할 수 있다. (static 은 객체 생성 전에도 사용할 수 있기 때문) 2. 객체 없이 접근이 가능하다 3. 자동 초기화 된다. 초기화는 시작 시 한번만 수행된다. 4. 모든 객체가 사용할 수 있는 전역의 개념을 가진다.(Public 으로 선언) 5. 클래스 변수/ 클래스 메소드 라고도 한다. 아래 코드를 통해 예제를 확인해볼 수 있다. class StaticEx { private static int a;//st..

    [Java 문법] 추상클래스(abstract)

    추상클래스란 특정 클래스를 구현하기 위해 미리 만들어 놓은 틀이다. 특히 다형성에서 자주 사용이 되는데 이는 다형성을 참고하면 좋다. 추상클래스의 특징은 다음과 같다. 1. 추상메소드를 하나라도 가진 클래스는 추상 클래스이다. 2. 추상메소드는 구현하지 않는다.(구현하면 에러난다) 3. 추상 클래스임을 class 앞에 abstract 를 붙여서 명시해야 한다. 4. 객체를 생성할 수 없다. 항상 상속을 통해 구현된다. 5. 상속 시 추상메소드는 꼭 구현해야 한다. 6. 일반 변수, 메소드, 상수를 가질 수 있다. * 일반 메소드가 추상 클래스 안에 구현될 수 있다는 점을 조심해야 한다.(Adapter Class 참조) abstract class AbstractSuper { // 추상 클래스임을 명시한다...

    [Java 문법] 상속 (Inheritance)

    상속은 말 그대로 부모 클래스의 멤버 메소드나 변수를 상속받는 자식 클래스가 물려받는 것을 뜻한다. 즉, 부모의 멤버를 자유롭게 사용할 수 있다. (단 부모 멤버의 접근 제한자가 private인 경우, 직접 접근은 할 수 없다.) 상속의 특징은 다음과 같이 정의할 수 있다. 1. 부모의 것을 내 것처럼 사용 가능하다. 2. 생성자는 상속받을 수 없다. (Super 사용) 3. extend를 사용하되 다중상속은 안된다. 4. 코드를 재활용, 재사용 할 수 있다. 5. 코드가 간결해지고 개발시간이 단축된다. 아래 예제 코드를 통해 위의 내용들을 확인해 볼 수 있다. /* class CellPhone모델명, 전화번호 관리 class CaPhone화소관리 class Mp3Phone화음관리 */ class Cel..