freeseaboy 님의 멋있어 지려 노력하는 블로그

자바 기초(9) What's up Interface 본문

컴퓨터 & 서버/Java

자바 기초(9) What's up Interface

freeseaboy 2024. 11. 11. 23:16
반응형

자 2교시 빠르게 자바 올립니다 일단 시간 관계상

오늘 할 분량을 다 못하긴 했어요 이후 또 올릴테니

반만 교육한 내용을 참고해주시면 감사합니다.

인터페이스 이고 기능이 상당히 많아요...나머지는 다음시간에 ㅋ

바로 ㄱ

스크립밑

!!!긴급!!!

알수없는 이유로 동영상이 차단되어 우회 대피소 

N기업 블로그로 링크 걸어 두었습니다.

https://blog.naver.com/iwseo7114/223656449054

 

자바 기초(9) What's up Interface

자 2교시 빠르게 자바 올립니다 일단 시간 관계상 오늘 할 분량을 다 못하긴 했어요 이후 또 올릴테니 반만...

blog.naver.com

package studyJava;
public class studyInp implements intA,intB {
	public static void main(String argv[]) {
		intB.showPI();
		soundBoy A = new soundBoy();
		soundBoy1 B = new soundBoy1();
		soundBoy2 C = new soundBoy2();
		A.What();
		B.What();
		C.What();
		studyInp GD = new studyInp();
		GD.showMe();
		GD.What();
		intA castIntA = (intA)GD;
		castIntA.showMe();
		castIntA.What();
		intA castBoyA = (intA)B;
		intA castBoyB = (intA)C;
		castBoyA.showMe();
		castBoyA.What();
		castBoyB.showMe();
		castBoyB.What();
		castBoyB = A;
		castBoyA = B;

		return;
	}
	public void showMe() {
		System.out.println("Here");
		return;
	}
	public void tooMe() {
		System.out.println("Yes");
	}
}
class soundBoy implements intA {
	public void showMe() {
		System.out.println("Wow");
		System.out.println(iNumber);
	}
	@Override
	public void What() {
		System.out.println("I'm soundBoy");
	}
}
class soundBoy1 implements intA {
	public void showMe() {
		System.out.println("What");
		System.out.println(iNumber);
	}
	@Override
	public void What() {
		System.out.println("I'm soundBoy1");
	}
}
class soundBoy2 implements intA {
	public void showMe() {
		System.out.println("Whoo");
		System.out.println(iNumber);
	}
}

######################################################

자 안녕하세요 오늘 2교시 자바 공부입니다.

자 일단 오늘 할꺼 인터페이스에요

이게 책에서 알려주는게 많아요 쓸데없는것도 포함해서

그래서 일단 당장 필요한거고 중요한거만 하고

쓸데없는 예제나 내용은 다 재낄게요..시간낭비 ㅋ

자 노래한곡 듣고 바로 ㄱ

- 인터페이스

- 인터페이스 란?

- 인터페이스 문법

- 인퍼페이스 구현법

- 인퍼페이스 다중상속

인터페이스 란?

즉 인터페이스를 사용함으로써

같은 결과를 내는 프로그램이라도 생산성에 영향이 크다

이왕 갈꺼 빠른길로 가면 되는데 왜 굳이 돌아서 이런 논리를

말하고있어요..근데

그건 내맘이지..ㅋ

재사용성 , 확장성

책보면 왜 그냥 재사용 확장성 단골이죠 명확한 예시가 거의 드물죠...

이런건 우리가 알아내야 되요...참 어이없죠?

쉽게 코딩 몇줄 몇십줄 몇백줄은 인터페이스를 굳이 사용안해도

다 만들수 있어서 우리가 인페 필요성을 잘 못느낀다고 합니다

근데 규모 큰 사업장은 몇백만 몇천만 몇조만 이렇되죠..

나 몇조만 줄래?한3조만 ㅋ

ㅋㅋㅋㅋㅋㅋ아무튼 이렇다고합니다.

즉 인터페이스는 어떤 객체가 있어요 근데

그객체랑 어떤 또다른 객체랑 공통으로 사용되는 부분이 있어서

그부분을 쉽게 인터페이스를 이용해서 코딩의 수고를 덜 목적이라고 보면 될거같아요..

말이 어렵죠??그래서 연습많이 해봐야되요...

인터페이스는 가상의 객체다 실제 객체가 아니다 절대

기능만 만들어놓은 템플릿같은 개념이에요..

인터페이스는 오로지 추상메소드 아니면 상수만 가능.선언.

private으로 상수는 못만드ㅡㅁ.

* 인터페이스 선언

* 상수 선언 (private)절대 불가

* 추상 메소드 선언

이렇게 3가지 꼭 기억하셈.

쏘리 상속했을때만 오버라이드 쓰는거임 미안요 ㅋ

오로지 public 및 abstract만 허용가능이래요

기본적으로 만들수있는 응요잉 많은데 일단 오늘은 여러개중에4개만 할개요

1.기본적 인터페이스

2.다중

3.디폴트

4.정적 개쉬움 그냥 정적 매소드 사용하듯이 하 면됨 ㅋ

나머지는 다음시간에 하는걸로 할게요 주말에 오래할게요평일에는

시간이 없어요 최소 3교시는 해야되서 ㅠㅠ

일단 마법좀 부리고 마무리할게요

나중에 할거

5. 인터페이스를 매개변수로 사용하는 예시 (Polymorphism)

6. 익명 클래스와 인터페이스 (Anonymous Class)

7. 인터페이스를 반환 타입으로 사용 (Return Type)

8. 인터페이스를 사용한 전략 패턴 (Strategy Pattern)

무튼 위 코드처럼 엄청나게 응용가능합니다..그래서 중요하다고 합니다.

물론 오버라이딩이든 오버로딩이든 추상메소드 클래스 상속이든

다 이유가 있겠죠??

그러다보니 다 거기서 거기같은데 머리통을 모니터에 집어넣고 좀더 자세히

마이크로칩 전기찌릿찌릿을 느끼면 약간더 이해가 깊어집니다.

무튼 이렇게 오늘 하고 다음에 이어서 할게요 그럼 이만 수고링~!!

######################################################

반응형