본문 바로가기

Language/JAVA

JAVA - Interface

반응형
Interface

 

 

 

public interface PlayingCard {
	
	// 인터페이스는 추상클래스보다 더 뼈대만 있는 것
	// 인터페이스는 멤버변수가 없고, 함수의 이름만 있는 것.
	// 함수의 이름만 정의를 했을땐 가져다 구현할 수 있도록 public을 붙여준다.
	// 단, 상수는 가능하다.
	// 상수란, 변수인데 한번 값을 저장하면 값을 바꿀수 없는 수를 상수라고 한다.
	// ex) flask의 JWT	
	
	
	// 카드의 클로버는 1, 하트는 2, 다이아는 3, 스페이드는 4라고 지정해놓는다.
	// 상수
	public static int CLOVER = 1;
	public static int HEART = 2;
	public static int DIAMOND = 3;
	public static int SPADE = 4;
	

	public String getCardNumber();
	public void print();
	

}

 

 

public class MyCard implements PlayingCard {
	// 인터페이스는 상속받는게 아니라 PlayingCard를 구현해내는 것이기 때문에 extends가 아닌 implemnts를 적어준다.
	
	String cardNumber;
	
	public MyCard(String cardNumber){
		this.cardNumber = cardNumber;
	}
	
	public MyCard() {
		
	}

	@Override
	public String getCardNumber() {
		// TODO Auto-generated method stub
		return cardNumber;
	}

	@Override
	public void print() {
		// TODO Auto-generated method stub
		System.out.println("Card Number = " + cardNumber);
	}

}

 

 

public class InterfaceMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		MyCard card = new MyCard();
		card.cardNumber = "7";
		
		String number = card.getCardNumber();
		System.out.println(number);
		
		card.print();
		
		MyCard card2 = new MyCard("5");
		card2.print();
		
		
		// 상수를 사용할때는 보통 객체.상수로 사용하지 않고,
		System.out.println(card2.CLOVER);
		// 상수를 정의한 인터페이스나 클래스명.상수로 사용한다.
		System.out.println(PlayingCard.CLOVER);
		
	}

}

 

반응형

'Language > JAVA' 카테고리의 다른 글

JAVA - ArrayList  (0) 2022.07.06
JAVA - String Func  (0) 2022.07.06
JAVA - Abstract (추상클래스)  (0) 2022.07.06
JAVA - DOWN CASTING  (0) 2022.07.05
JAVA - Up Casting  (0) 2022.07.05