JAVA

JAVA

[OOP] 내부 클래스(inner class)

내부 클래스 클래스 내에 선언된 클래스 특정 클래스 내에서만 주로 사용되는 클래스를 내부 클래스로 선언한다. class A {// 외부클래스 ... class B {// 내부클래스 ... } ... } 내부 클래스의 장점 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다. 코드의 복잡성을 줄일 수 있다.(캡슐화) 내부 클래스의 종류와 특징 내부 클래스의 종류는 변수의 선언위치에 따른 종류와 같다. 내부 클래스의 제어자와 접근성 내부 클래스의 접근 제어자는 멤버변수에 사용할 수 있는 접근 제어자와 동일하다. static 클래스만 static 멤버를 정의할 수 있다. 내부 클래스도 외부 클래스의 멤버로 간주되며, 동일한 접근성을 갖는다. 외부 클래스의 지역변수는 final이 붙은 변수(상수)만 접..

JAVA

[OOP] 인터페이스(interface)

인터페이스 일종의 추상클래스 추상클래스보다 추상화 정도가 높아 일반 메서드나 멤버변수를 구성원으로 가질 수 없다. 실제 구현된 것이 전혀 없는 기본 설계도 오직 추상메서드와 상수만을 멤버로 가질 수 있다. 인스턴스를 생성할 수 없고, 클래스 작성에 도움을 줄 목적으로 사용된다. 미리 정해진 규칙에 맞게 구현하도록 표준을 제시하는 데 사용된다. 인터페이스의 작성 class 대신 interface를 사용한다는 것 외에 클래스 작성과 동일하다. interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름(매개변수목록); } 제약사항 모든 멤버변수는 public static final 이어야 하며, 이를 생략할 수 있다. 모든 메서드는 p..

JAVA

[OOP] 추상클래스

추상클래스 클래스가 설계도라면, 추상클래스는 미완성 설계도라고 할 수 있으며 미완성 메서드를 포함하고 있다. 추상클래스로는 인스턴스를 생성할 수 없다. 다른 클래스를 작성하는 데 도움을 주기 위해 작성된다. abstract class 클래스명 { ... } 추상메서드 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 미완성 메서드 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우에 사용한다. 추상클래스를 상속받는 자손클래스에서 추상메서드의 구현부를 완성해야 한다. abstract class Player {// 추상 클래스 abstract void play(int pos);//추상메서드 abstract void stop();// 추상메서드 } class AudioPlayer extends Pl..

JAVA

[OOP] 다형성(polymorphism)

다형성 여러 가지 형태를 가질 수 있는 능력 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있는 것 class Tv { ... } class CaptionTv extends Tv { ... } Tv t = new CaptionTv(); 상속관계에 있을 경우, 조상 클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조하도록 하는 것이 가능하다. CaptionTv c = new CaptionTv(); Tv t = new CaptionTv(); 참조변수 c는 CaptionTv인스턴스의 모든 멤버를 사용할 수 있지만, t는 모든 멤버를 사용할 수 없다. t는 Tv타입이기 때문에 Tv클래스의 멤버들만 사용할 수 있다. 둘 다 같은 타입의 인스턴스이지만 참조변수의 타입에 따라 사용할 수 있는 멤버..

JAVA

[OOP] 제어자(modifier)

제어자 클래스, 변수, 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여 접근 제어자 public, protected, default, private 그 외 static, final, abstract, native, transient, synchronized, volatile, strictfp 하나의 대상에 대해 여러 개의 제어자를 조합하여 사용할 수 있다. 단, 접근 제어자는 하나만 선택해서 사용할 수 있다. static '클래스의', '공통적인'이라는 의미를 가지고 있다. static이 사용될 수 있는 곳 - 멤버변수, 메서드, 초기화 블록 대상 의미 멤버변수 - 모든 인스턴스에 공통적으로 사용되는 클래스변수가 된다. - 클래스변수는 인스턴스를 생성하지 않고도 사용 가능하다. - 클래스가 메모리에..

JAVA

[OOP] package와 import

패키지(package) 서로 관련된 클래스와 인터페이스의 묶음 클래스의 실제 이름은 패키지명을 포함(String 클래스의 실제 이름은 java.lang.String) 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉터리이다. - 하나의 소스파일에는 첫 번째 문장으로 단 한 번의 패키지 선언만을 허용한다. - 모든 클래스는 반드시 하나의 패키지에 속해야 한다. - 패키지는 점(.)을 구분자로 하여 계층구조로 구성할 수 있다. - 패키지는 물리적으로 클래스 파일(.class)을 포함하는 하나의 디렉터리이다. 패키지의 선언 package 패키지명; 패키지명은 대소문자를 모두 허용하지만, 클래스명과 쉽게 구분하기 위해서 소문자로 하는 것을 원칙으로 한다. 패키지가 ..

ewok
'JAVA' 카테고리의 글 목록 (3 Page)