개발공부

[Java] Interface 인터페이스 본문

Java/Basic

[Java] Interface 인터페이스

mscha 2022. 7. 6. 17:36

Interface 인터페이스

멤버 변수가 없고 메소드의 이름만 있는 것이다.

단 상수(Static)는 지정 가능하다.

구조가 정해져 있기 때문에 협업에 유리하다.

 

사용 예제

 

PlayingCard.java

public interface PlayingCard {

	// 인터페이스는, 추상클래스보다 더 뼈대만 있는 것
	
	// 인터페이스는, 멤버 변수가 없고, 함수의 이름만 있는것
	// 단, 상수는 가능하다. 
	// 상수란, 변수인데 한번 값을 저장하면 값을 바꿀 수 없는 것)
	
	// 카드의 클로버는 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();
	
}

 

MyCard.java

public class MyCard implements PlayingCard{
	
	String cardNumber;
	
	public MyCard(){}
	public MyCard(String cardNumber){
		this.cardNumber = cardNumber;
	}
	
	@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);
	}
	
	
}

Main.java

public class Main {

	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);
		
		System.out.println("---------------------");
		
		card.print();
		
		System.out.println("---------------------");

		MyCard card2 = new MyCard("5");
		

		card2.print();
		
		System.out.println("---------------------");
		// 상수를 사용할 때는, 보통은 객체.상수 로 사용하지 않고
		// 상수를 정의한 인터페이스나 클래스명.상수 로 사용한다.
		System.out.println(PlayingCard.HEART);
	}

}

'Java > Basic' 카테고리의 다른 글

[Java] HashMap 사용법  (0) 2022.07.06
[Java] ArrayList 사용법  (0) 2022.07.06
[Java] Abstract Class 추상 클래스  (0) 2022.07.06
[Java] UpCasting / DownCasting  (0) 2022.07.05
[Java] 부모 메소드 호출을 위한 super 사용법  (0) 2022.07.05