인터페이스는? 자바에서는 상속은 하나만 가능하지만 인터페이스는 여러개를 이용할 수 있음. 이를 통해 다양한 코드 전개가 가능해지고 다형성을 나타나게 됨.
참조형? 클래스 간 메소드 간의 관계를 만들 수 있는 방법으로 파라미터 안에 참조형인 객체를 참조하여 관계를 만들 수 있음.
지변을 다른 메소드에서 사용하려면 리턴타입을 활용해야함.
public class List3 {
ArrayList<String> methodA(){ //지변을 다른 메소드에서 사용하려면 리턴타입을 활용해야함.
ArrayList<String> fruits = new ArrayList<>(); //생성부 제네릭 타입은 생략 가능하지만 연산자만 입력한다.
fruits.add("🍅");
fruits.add(1, "🍓");
fruits.add(1, "🍎"); //사과의 끼어들기 가능
return fruits;
}
public static void main(String[] args) {
//ArrayList는 싱글스레드 First in last out/싱글스레드에서 안전(혼자 들어갈 때) but, 인터셉트 당할 수 있음.
List3 l3 = new List3();
ArrayList<String> fruits = l3.methodA();
System.out.println(fruits); // List에서는 "["","",""]"
}
}
선언부(추상클래스 or 인터페이스 or 구현체클래스)
Map<String, String> map = new HashMap<>();
List<DeptDTO> li = new ArrayList<>();
add(E e) - 맨 끝에 추가
add(int index, E element) - 해당 순서로 추가
public static void main(String[] args) {
ArrayList fruits = new ArrayList(); //First in last out
fruits.add("🍅");
fruits.add(1, "🍓");
System.out.println(fruits.get(0));
System.out.println(fruits.get(1));
}
package com.step5;
import java.util.ArrayList;
import java.util.List;
public class List4 {
/*선언부*/
//선언부 생성자 이름 다르게 -> 확장성, 유지보수 시 코드 수정 양 감소
List<DeptDTO> li = new ArrayList<>(); // 앞은 클래스 뒤 구현체 클래스 -> 다형성
/*메인메소드*/
//스프링에서 JPA로 DB연동할 땐
//List<Map<String.Object>>로 한다(특히 조인하는 업무 내용일 때 사용함)
//조인(둘 이상의 테이블 연결해서 조회-업무가 복잡할수록)하는 업무 내용일 때 사용함.
public static void main(String[] args) {
List4 l4 = new List4();
DeptDTO dept = new DeptDTO();
dept.setDeptno(10);
dept.setDname("영업부");
dept.setLoc("부산");
l4.li.add(dept); //주소번지 두번으로 접근 가능
dept = new DeptDTO();
dept.setDeptno(20);
dept.setDname("개발부");
dept.setLoc("대전");
l4.li.add(dept); //주소번지 두번으로 접근 가능
System.out.println(l4.li);
DeptDTO rd = l4.li.get(0);
System.out.println(rd.getDeptno()+", "+rd.getDname()+", "+rd.getLoc());
rd = l4.li.get(1);
System.out.println(rd.getDeptno()+", "+rd.getDname()+", "+rd.getLoc());
}
}
View → List로 VO,DTO에 입력 → 저장 → insert 문(오라클 서버 경유) → select
---- ------------------------ -------
view → action(insert) → action(select) → view