JAVA Programming

Growing_HJ·2024년 5월 28일

일기장

목록 보기
10/51

2024.05.27.MON <D + 7>
2024.05.28.TUE <D + 8>
A. interface (인터페이스)

  • 추상메소드: 메소드 구현을 강제 시킬 수 있음.
  • 다중 상속: 2개 이상의 interface를 사용, 따라서 구현해야 하는 추상메소드도 2개.
  • 다형성: 논리적이지 않은 것도 묶을 수 있음.

A-1. interface 제약사항.
a. 모든 멤버 변수는 java) public static final 이어야 함.
b. 모든 메소드는 java) public abstract 이어야 함.
c. 단 static , default는 제외임.

A-2. interface 상속
a. 인터페이스는 인터페이스로부터만 상속 받을 수 있음.
b. 다중 상속이 가능

A-3. interface 구현(문법)
a. 인터페이스의 추상 메소드를 구현하는 클래스에서 implements 를 사용하여 구현

A-4. interface 장점
1. 개발 시간을 단축할 수 있고, 독립적인 프로그래밍이 가능함.
2. 표준화가 가능
3. 관계가 없는 것끼리 맺어줄 수 있음
ex) interface 예제코드)

interface I {
	public abstract void methodB();
}
class B2 implements I {
	/* 표준화가 가능함. 기본 툴을 인터페이스로 작성한 다음, 개발자들에게 인터페이스를 구현하도록 함.
	 * 항상 일관되게 methodB()가 구현되어 지므로, 일관되고 정형화된 개발이 가능해짐*/
	public void methodB() {
		System.out.println("methodB()");
	}
}

B. OOP의 4대 특성
1. 캡슐화

  • 데이터를 외부에서 함부로 변경하지 못하도록 하기 위해서 접근을제어하는 것. (Data hiding - 데이터 감추기)
  • 외부에는 불필요, 내부적으로만 사용되는 부분을 감추기 위함 + 복잡성 감소를 위함
  • 문법적 표현: private
  1. 상속
  • 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것. (기반, 파생 클래스)
  • 상속의 원칙은 단일 상속, (단일 상속을 대신하여 확장할 수 있는 것: 추상클래스, 인터페이스)
  • 클래스 간의 관계에 대한 논리성을 고려, is - a(상속), has - a (포함) => 다중상속과 같은 용도로 사용
  • 문법적 표현: extends (단일 상속에서의 확장: implements)
    생성자와 초기화 블록은 상속 X, 멤버만 상속
  1. 추상화
  • 클래스간의 공통점을 찾아내어 공통의 기반(조상)을 만드는 작업.
  • 추상클래스는 추상메소드가 존재하는 클래스 (추상메소드 - 몸통이 없고 선언만 되어있는 메소드)
  • 추상화의 반대는 구체화 => 상속을 통한 클래스의 확장
  • 문법적 표현: extends (인스턴스로 사용 가능한 기반클래스, 인스턴스로 사용 불가능한 기반 클래스 = 추상클래스)
  1. 다형성 (캡슐화, 상속, 추상화의 기반)
  • 기반 클래스 타입의 참조변수로 파생 클래스의 인스턴스를 참조할 수 있도록 하는 것.
  • 인스턴스의 그룹핑이 가능, => 관리가 편리
  • 문법적 표현: 형변환 연산자, instanceof 연산자 사용

0개의 댓글