switch 해서 새폴더 지정해줌
window -> preferences로 utf-8 지정
새 프로젝트 만들기
beans 패키지에 클래스 만듬
package demo.beans;
public class HelloWorldEn {
//리턴 값이 없는 void 메소드
public void sayHello() {
System.out.println("Hello");
}
}
클래스 복사해서 하나 더 만들어서 Ko로 인사하는 메소드 만들기
package demo.beans;
public class HelloWorldKo {
//리턴 값이 없는 void 메소드
public void sayHello() {
System.out.println("안녕하세요");
}
}
main 클래스에서 확인
package demo.main;
import demo.beans.HelloWorldEn;
import demo.beans.HelloWorldKo;
public class Main {
public static void main(String[] args) {
HelloWorldEn hello1 = new HelloWorldEn();
hello1.sayHello();
HelloWorldKo hello2 = new HelloWorldKo();
hello2.sayHello();
}
}
결과 확인하기
callMethod를 만들어서 사용해보기
package demo.main;
import demo.beans.HelloWorldEn;
import demo.beans.HelloWorldKo;
public class Main {
public static void main(String[] args) {
HelloWorldEn hello1 = new HelloWorldEn();
//hello1.sayHello();
callMethod(hello1);//타입이 틀려서 사용이 불가능함
HelloWorldKo hello2 = new HelloWorldKo();
callMethod(hello2);
}
public static void callMethod(HelloWorldKo hello) {
hello.sayHello();
}
}
그래서 나온게 다형성임
인터페이스 추가
package demo.beans;
public interface HelloWorld {
public void sayHello();//추상메서드
}
HelloWorldEn에서 인터페이스 구현
package demo.beans;
public class HelloWorldEn implements HelloWorld{
//리턴 값이 없는 void 메소드
public void sayHello() {
System.out.println("Hello");
}
}
HelloWorldKo에서 인터페이스 구현
package demo.beans;
public class HelloWorldKo implements HelloWorld {
// 리턴 값이 없는 void 메소드
public void sayHello() {
System.out.println("안녕하세요");
}
}
Main에서 수정
다른 타입이지만 같은 인터페이스를 사용
package demo.main;
import demo.beans.HelloWorld;
import demo.beans.HelloWorldEn;
import demo.beans.HelloWorldKo;
public class Main {
public static void main(String[] args) {
HelloWorld hello1 = new HelloWorldEn();
callMethod(hello1);
//callMethod(hello1);//타입이 틀려서 사용이 불가능함
HelloWorld hello2 = new HelloWorldKo();
callMethod(hello2);
}
public static void callMethod(HelloWorld hello) {
hello.sayHello();
}
}
출력화면
문제점?
인터페이스는 동일하지만
다른 클래스를 사용했을 때 다른 클래스 객체는 바꿔줘야함
그래서
자동으로 필요한 객체를 만들어 주는게 스프링 프레임 워크임
'BACKEND > Spring' 카테고리의 다른 글
bean 객체 생성하기 (0) | 2023.10.18 |
---|---|
IOC 컨테이너? (0) | 2023.10.18 |
스프링 프레임 워크 시작하기 - bean추가 (0) | 2023.10.18 |
스프링 프레임 워크 시작하기- 라이브러리, 로그 기록 (0) | 2023.10.18 |
Spring Framework(스프링 프레임워크) ? (0) | 2023.10.18 |