인터페이스 예제

2023. 8. 10. 16:27Spring 활용 통합 시스템 개발/자바

객체 ab, lb가 상위 인터페이스를 implements 했는지 확인하는 연습 - instanceof

객체 ab, lb를 상위 인터페이스로 형 변환하는 연습 - ((상위인터페이스명)ab).메소드명

오타수정 - [오른쪽]  sb 가 아니라 ab, lb 객체를 Pring 인터페이스 형변환하고 printText 함수에 StringBuilder 변수를 전달.

 

 

 

변수명.getClass() - 변수명이 참조하는 클래스를 출력하는 메소드이다.

[참조링크] 자바(Java) getClass 메소드 사용방법 :: 문돌이의IT (tistory.com)

 

자바(Java) getClass 메소드 사용방법

java.lang의 Object 클래스 중에서 getClass 메소드에 대해 알아보자. 대단한 기능이라기 보다는 현재 참조하고 있는 클래스를 확인할 수 있는 메소드이다. A라는 클래스를 참조하고 있다면 class A 라는

improver.tistory.com

 

 

내 코드를 수정할 부분

* 삼항 연산자를 넣으면 좋겠다.

* StringBuilder 타입은 문자열 타입처럼 isEmpty() 함수가 없다. if(변수명.length() == 0) 조건식을 만들어야 전달받은 값이 없다는 것을 판단할 수 있다. length() 함수가 변수명의 문자열 길이를 출력한다. 이 길이가 '0'이면 호출한 함수에서 전달받은 값이 없고 숫자를 출력한다.

* 문자열 타입 변수명.isEmpty() - 변수에 값이 없다면 true 반환 , 값이 있으면 false 반환한다

 isEmpty()함수는 문자열 변수에 값이 있는지 없는지 판단하는 함수이다.

* StringBuilder 타입 변수명.toString() -> StringBuilder 타입을 문자열로 변환된다. -> (sb.toString().equals(""))

 

실행결과

Home 클래스, RetReference  인터페이스를 생성하고 SmartHome 클래스를 생성한다

SmartHome 클래스가 Home 클래스를 상속하고 RetReference 인터페이스를 implements 하게한다.

RetReference 인터페이스에 선언된 추상메소드를 SmartHome 클래스에서 구현한다.

*** 주의할 부분  3번 코드에서 getRetReference(Criteria, ValueObject) 구현할 때

리턴을 쓸 때 if문에만 return을 쓰고 else에 리턴을 써야한다. 빠뜨리면 안 된다.

if 조건문마다 return 이 있으면 보기 좋지 않으므로 변수(retValue)를 생성하고 마지막 return에 retValue를 저장한다.

if 조건문을 돌 때마다 retValue 값은 바꿔주면 마지막에 return에 if조건문을 돌면서 바뀐 값이 저장된다.

 

1-1

 

1-2

 

1-3

 

 

2

 

 

3

 

 

 

 

 

 

 

실행결과

 

클래스 SmartHome 은 큰 변경없이 main에 함수를 출력하는 기능 구현

ContentsInterface를 만들고 추상메소드를 선언한다.

클래스 SmartHome이 ContentsInterface를 implements 한다.

*** 구현하고자 하는 7개 변수는 SmartHome 에 선언하지 말고 클래스 Contents를 새로 만들고 그 클래스에 선언하고 getter and setter 함수를 만든다.

contents 클래스 print() 를 만들어 변수를 출력한다.

 

 

 

Contents 클래스 print()

 

실행결과

'Spring 활용 통합 시스템 개발 > 자바' 카테고리의 다른 글

컬렉션(Collection) - List  (0) 2023.08.16
중첩클래스  (0) 2023.08.14
자바 코딩 연습문제  (0) 2023.08.09
인터페이스  (0) 2023.08.09
추상클래스  (0) 2023.08.09