14. 인터페이스의 여러가지 요소

<오늘의 목표>

어제 등장했던 아직까지 이숙하지 못한 명령어 들을 훌터보자.

<방법>

어제 정리한 블로그의 문서를 복습후 학습 시작


이론 정리

어제 등장했었던 명령어가 호출되는 순서 :

  1. 1) 파일을 검색 한다.
    1. 파일 이름을 인수로 보내면 참조 변수에 파일의 위치가 입력된다.
    2. 파일이 없으면 오류 FileNotFoundException가 출력되며. try로 오류대응을 하거나 , 처음에 NULL을 넣어서 NULL이 변하지 않으면 NULL일 경우의 조건식으로 처리하는 코드를 웹상에서 발견했다.
    3. fileinputstream 참조변수B = new fileinputstream(”파일이름”)
  2. 페어 구조(Key=Value)로 값이 입력될수 있는 영역을 갖고 있는 참조 변수와 인스턴스를 만든다.
    1. properties 참조변수A = new properties();
  3. 패어 구조를 입력 하기 위해 만들어진 공간에 file의 위치값를 입력해서 값을 불러와서 저장한다.
  • 참조변수A.load(참조변수B);
  1. key값을 넣어서 value값을 확인 한다.
  • String 참조변수C = 참조변수A.getProperty(”key 값”);

<CODE TEST>

파일 불러오기

  • fileinputstream을 사용하기 위해서 파일 이름을 인수로 보낼때. 파일이름에 프로젝트 루트 계층부터 파일 영역을 입력해 줘야한다.
    • 예로 들어 TEST(페키지)/A 일 경우 아래 코드와 같이 src/TEST/A파일 로 지정해주면 된다. 아니면 루트영역에 넣으면 파일이름만 입력하면 검색된다.
    package A_0217;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.Properties;
    
    public class M {
    	public static void main(String[] args) throws IOException {
    		FileInputStream F = new FileInputStream("src/test/A");
    		Properties P = new Properties();
    		P.load(F);
    		System.out.println(P.getProperty("Key_A"));
    	}
    }
    
    Key_A=value_A
    

<14챕터>

모든 변수는static final이 붙는다. static 이 붙으면 하부에서 구현된 클레스들에서 오직 하나의 인스턴스에 접근할수 있게 막을수 있지만. 자바에서 단일상속만 기능한것 처럼. 모호성으로 인해 안전성이 낮아지는것을 막기위해 변수가 변하지 못하는 방법으로 사용됩니다.

자바 8 이후 부터 사용할수 있는 인터페이스 기능들

1) default method : 디폴트 메소드

default 키워드를 메소드 앞에 붙여서 구현하는 클레스들에서 반복적으로 구현해야하는 메소드를 인터페이스에서 기본적인 형태를 구현해 놓을수 있게 되었다.(필요에의해 implement한 클레스에서 재정의 할수 있다)

TEST 1 : default로 구현한 메소드는 구현하는 클레스에서 메소드를 정의하지 않아도 되는거?

태스트 결과 : YES

TEST 2 : default로 구현한 메소드는 구현하는 클레스에서 재정의(overide)할수 있는가?

태스트 결과 : YES

package TEST3;

public class Do {
	public static void main(String[] args) {
		Sub S = new Sub();
		S.method_A();
	}
}
package TEST3;

public class Sub implements Super {
	public void method_A() {
		System.out.println("SUB method");
	}
}
package TEST3;

public interface Super {
	default void method_A() {
		System.out.println("만약 이것이 보이신다면 오버라이드 되지 않는것입니다.");
	}
}

2) static method : 정적 메소드

default와 마찬가지로 구현하는 클레스들에서 반복적으로 구현해야하는 메소드를 미리 구현할수 있지만. 인터페이스 객체를 implement 하거나 인스턴스를 만들지 않아도 프로젝트 내에서는 어디서든 사용할수 있게 할수 있다.

package TEST4;

public class Do {
	public static void main(String[] args) {
		Super.method_A();
	}
}
package TEST4;

public class Sub implements Super {
	public void method_A() {
		System.out.println("SUB method");
	}
}
package TEST4;

public interface Super {
	static void method_A() {
		System.out.println("영차");
	}
}

자바 9 이후 부터 사용할수 있는 인터페이스 기능들

  1. private 메서드

구현한 클레스에서 재정의 불가능하다.

구현한 클레스에서 사용할수 없다. (진짜인지 테스트 코드 구현해보고 싶은에 이클립스 오류로 인해 연기하기로 함)

인터페이스 내부에서 static 이나 default를 사용하기 위해서 재공하는 메소드 이다.

  • 구현하는 클레스에서 사용하기 위한게 아닌. 인터페이스 내이서 사용하기 위한 기능이다.

이클립스에서 JDK의 다른 버전 선택에 대한 . 궁금증과 더불어 다음 정리에서 학습을 진행 하기로 하겠습니다.


전문 용어


 

에러 메세지


학습 시간


 

캠 스터디


공부 모임

1) 카카오톡 오픈 채팅방

  - 모르는것을 질문하거나

  - 이해가 가지 않는 부분을 다른 분들의 블로그에서 참고하기 용도

2) 구루미 온라인 독서실

  - 학습 시간을 관리 하거나 경쟁 하는 용도 

 

온라인 강의 주소

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

 

 

+ Recent posts