20/11/5

아라·2020년 11월 5일
0

국비교육

목록 보기
18/30

인터페이스

  1. 추상클래스와 유사. 객체 생성 불가능. 변수 생성 가능(참조형 형변환). 추상메서드 소유 가능.
  2. 추상클래스와 차이
  • 구현 멤버를 가지지 못함
  • 일반 변수, 일반 메서드 가지지 못함 -> 구현부를 가질 수 없음
  1. 추상메서드의 집합 -> 규칙! 추상메서드만 올 수 있다!
  2. 인터페이스의 멤버는 무조건 공개를 원칙으로 한다.
interface IMember{
	// 추상메서드만 올 수 있다.
	// 인터페이스의 멤버는 무조건 공개를 원칙으로 한다.
	// 추상메서드는 public abstract void aaa();로 선언해야하는데
	void aaa(); // 인터페이스 내에서는 이렇게 선언할 수 있다.
}

추상클래스와 인터페이스의 역할은 클래스의 부모역할!

인터페이스를 상속받을 때는 implements

interface IMember{
	boolean login(String id, String pw);
	void logout();
}

class Member implements IMember{

	@Override
	public boolean login(String id, String pw) {
		return false;
	}

	@Override
	public void logout() {
		
	}
	
}

추상멤버

자식들이 종류가 다르면 각자 하고 싶은 걸 구현했으면 한다.
기능이 달라도 사용법은 동일하게 만들었으면 한다. -> 최종 사용자가 편리하게 사용하게 하기 위해서.

상속의 경우의 수

  1. 자식이 일반클래스, 부모가 일반클래스 : 상속 가능
  2. 자식이 일반클래스, 부모가 추상클래스 : 상속 가능
  3. 자식이 일반클래스, 부모가 인터페이스 : 상속 가능
  4. 자식이 추상클래스, 부모가 일반클래스 : 상속은 되지만 절대 사용 안하는 경우. 논리적인 이치에 맞지 않기 때문.
  5. 자식이 인터페이스, 부모가 일반클래스 : 인터페이스는 추상멤버만 가질 수 있기 때문에 일반클래스(일반변수가지고 있음)는 인터페이스에 상속이 불가능.
  6. 자식이 추상클래스, 부모가 인터페이스 : 상속 가능. 추상클래스도 추상메서드를 가질 수 있기 때문에.
  7. 자식이 인터페이스, 부모가 추상클래스 : 상속 불가능
  8. 자식이 추상클래스, 부모가 추상클래스 : 상속 가능
  9. 자식이 인터페이스, 부모가 인터페이스 : 상속 가능
  • 일반클래스 -> 일반클래스 -> 추상클래스 -> 추상클래스 -> 인터페이스 -> 인터페이스

enum(Enumeration)

클래스의 일종
열거값을 가지는 자료형(=제시한 값 중에서 선택해서 사용하는 자료형)
열거형. 객관식에 가깝다.

public class Ex66_enum {
	public static void main(String[] args) {
		Gender g1=Gender.male;
		Gender g2=Gender.female;
	}
}

enum Gender{
	MALE,
	FEMALE
}

Generic

제네릭 클래스 : 제네릭의 타입변수 -> 무조건 참조형만 넣을 수 있다.
제네릭 메서드

// 제네릭 클래스
// T : 타입변수 -> 메서드 내의 지역변수용으로는 지양
class Bag<T>{
	// 멤버구현
    public int a;
    public String b; // 정적타입
    public T c; // 동적타입
}

아래와 같이 선언하는 것도 가능하다.
class Camera<T,U>{
	public T a;
	public U b;
}

Object

장점 : 모든 자료형을 넣을 수 있다. -> 코드 비용 감소
단점 : 데이터를 꺼내서 활용할 때 어떤 자료형의 데이터가 들어 있었는지 알기 힘들다. 잘못된 형변환을 할 수 있다. -> 예외 발생 -> 프로그램 안정감소

0개의 댓글