본문 바로가기
MEMO/Java-memo

interface 정리

by hingu 2024. 5. 24.

interface ) => implements이용하여 로드 

조립하듯 찍어낼때 많이 사용

내부에 반복문,조건문 사용하는 경우는 잘 없음

 

주의사항(규칙)

  1. public 클래스 형태로 만들지 않음 
  2. default  void 메소드(); : {} 중괄호 사용
  3. public void 메소드(); : 중괄호x
  4. private,protected 사용 불가
  5. override 활용해야함 - interface내 메소드 필수 사용
  6. interface class 내 field에 변수 사용시 무조건 상수!
    int a=0; String b=null; / public final int money = 5000;  - 필드에 이런거 사용 x , 어차피 값 못바꿈
  7. interface class 안에 abstract 사용 가능
  8. 여러개의 interface 한꺼번에 로드 할 수 있음
  9. interface는 즉시실행 메소드가 없음
  10. public interface ex_interface extends 다른interface명 {}  : interface interface 결합 가능
package exam;
//ex_interface.java 연동
public class exam23 {

	public static void main(String[] args) {
		new exam23_box().zzz(); //zzz 출력
	}
}

class exam23_box implements ex_interface,re{

	@Override
	public void zzz() {
		ex_interface.super.zzz();
	}
	
	@Override
	public void box1() {
		// TODO Auto-generated method stub
	}
	
	@Override
	public String box2() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void box3() {
		// TODO Auto-generated method stub
		
	}

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



//ex_interface.java

package exam;

public interface ex_interface{
	default void zzz() { // default는 중괄호 사용
		System.out.println("zzz");
	};
	
	public void box1(); //interface 메소드
	public String box2();
	public abstract void box3(); //이렇게 사용은 가능 하나 잘 쓰진 않음
}

//기존에 사용한 interface(ex_interface)를 보강 및 유지보수시 사용하는 방식
interface re{
	public String getdata();
}

 

⚡ 정통방식
package exam;

public class exam23 {
	public static void main(String[] args) {
		usercheck uc = new usercheck(); 
		exam23_box gold = new exam23_box();
		exam23_box2 silver = new exam23_box2();
		uc.check(gold); //골드회원 출력
		uc.check(silver); //실버회원 출력
		
		//=> ㄹㅇ 부품화 해서 사용
	}
}

//레벨체크(1번 실행)
class usercheck {
	public void check(user u) { 
		System.out.println(u.userlevel());
	}
}

class exam23_box2 implements user{
	@Override
	public String userlevel() {
		String level = "실버회원"; 
		return level;
	}	
}

class exam23_box implements user{
	@Override
	public String userlevel() {
		String level = "골드회원"; 
		return level;
	}

}

 



//interface 파일

package exam;

interface user{
	public String userlevel();
}

 

▶ 정통방식 응용문제 : [응용문제4] 참고 https://dev-eunse.tistory.com/96

'MEMO > Java-memo' 카테고리의 다른 글

금액에 , 찍기  (0) 2024.05.31
IO,Network 정리  (0) 2024.05.24
abstract 정리  (0) 2024.05.24
io.. 헷갈리는...  (0) 2024.05.22
해당 디렉토리에 있는 모든 filelist를 가져오는 코드  (0) 2024.05.22