개인 공부/TIL

TIL #220524 #JSP #JAVA

kaleb 2022. 5. 24. 22:06
728x90

 

화요일도 벌써 이렇게 가는군요 오늘은 오전 JSP 오후 JAVA의 순서로 진행 되었습니다.

JSP의 경우 진도를 많이 나가기보다는 이전에 했던 DAO DTO 패턴을 연습하고 SELECT 조회를 좀 더 고급지게(?) 사용하는 방법을 배운것 같습니다.

처음에 접근할 때는 배열을 배열에 넣고... 강사님께서 여러가지 방법을 물어보실때 괜히 배열을 이야기한 것 같기도...

JAVA의 경우에는 앞 시간의 복습을 조금하고 상속의 개념을 배웠습니다.

 

다른 날보다는 비교적 수월했던 것 같습니다.  역시 복습의 효과!

 

응그래서 오늘도 TIL 하도록하겠습니다...

 

 

 

 

오전 JSP

 

 

Arraylist :

자바의 list 인터페이스를 상송받은 여러 클래스 중 하나 배열과 동일하게 연속된 메모리 공간을 사용합니다.

배열과의 다른점은 Arraylist는 크기가 가변적입니다.

 

ArrayList 값을 추가(add)하기

add()메서드 : 값을 추가하기 위해서는 add() 메서드를 사용합니다.

(object 타입으로 파라미터를 받는데 object는 다양한 값들을 받을 수 있습니다.)

size () 메서드: ArrayList의 크기를 구할 수 있습니다.

get() 메서드 : ArrayList의 결과를 출력합니다. (파라미터로 int index를 받습니다.)

 

배열을 Array에 넣을 때는 참크래커를 연상하면 이해가 쉽습니다.

 

과자를 먹기 위해서는 참크래커 박스 → 박스안의 봉지 → 과자식으로 먹는 걸 생각해봅시다!

 

ArrayList를 이해하기 위해 arrDto의 배열구문으로 함수 작동원리를 이해하고

ArrayList를 작동해보았습니다.

 

완벽하게 이해해야할 부분! 인스턴스 생성, 선언, 및 사용방법

ex)

Test8_1DTO dto = new Test8_1DTO();
			dto.setName(rs.getString("name"));
			dto.setAge(rs.getInt("age"));
			dto.setGender(rs.getString("gender"));
			dto.setHobby(rs.getString("hobby"));

 

인스턴스(객체)

DTO 파일에서 정의한 값들을 외부에서 호출하여 사용하여 사용할때 사용(?)

Getter/Setter 세팅이 완료된 dto 값을 새로운 인스턴스를 만들어

변수의 값을 변경할 때 dto. setXXX()메서드를 활용하고

변경한 그 값을 불러올 때는 dto. getXXX() 메서드를 이용합니다.

 

ArrayList를 사용하는 이유?

일반적인 SELECT 문으로는 SELECT * FROM 테이블명을 하여 출력하기 위해서는

println을 레코드 명마다 게속 늘려주어야 합니다.

배열을 사용할 경우에는 JDBC 단계중 구문작성과 실행을 두번 해야하는 번거로움이 있습니다.

 

1. count(*) 를 이용하여 배열의 전체 크기를 구하고,
2. while 반복문으로 그 크기만큼 레코드의 입력을 을 반복

(레코드가 많을경우 아주 많이 반복해야함)

 

ArrayList를 사용하게 된다면 객체 안에 데이터를 계속 넣어주기 때문에 한번의 출력명령어 사용에도 모든 값들을 출력할 수 있습니다. (객체 안에 데이터들이 저장 되어 있기 때문에!!)

 

 

Arraylist 사용방법 :

DAO 정의

Arraylist의 객체 선언을 해주면서 호출

while(rs.next()) 를 통해서 커서를 내리면서 조회하였던 데이터들을

list.add() 메소드를 이용하여 list에 값을 추가(add) 해줍니다.

 

Arraylist는 배열과 달리 데이터 갯수에 따라 크기가 자동으로 증가하여 저장시 인덱스를 따로 지정할 필요가 없습니다.

 

while문 수행문 제일 마지막에 list.add(변수) 메소드를 이용하여 값을 저장해야할 변수에 list 값들을 추가해줍니다.

 

본문 

list.add 한 값들은 반복문의 인덱스처럼 작동합니다. 따라서 반복문을 통해 값을 호출할수 있습니다.

 

조건식을 구성하기 위해서는 add를 완료한 list의 크기를 알아야합니다.

 => list.size()메서드를 이용하면 list의 크기를 알 수 있습니다.

 

저장해둔 list의 값들을 호출하기 위해서든 get()메서드를 활용해야합니다.

이때 list.get() 의 리턴타입이 object 타입임으로 호출한 값을 저장한 변수의 타입과 같게 형변환을 해주어야 합니다.

형변환은 좌변의 데이터 타입으로 해줍니다.

 

호출한 값을 출력하면 list가 잘 구성되었는지 알 수 있습니다.

호출 방법은 DAO파일에서 dto인스턴스의 dto.setXXX완료한 값들을 getXXX하여 호출할 수 있습니다.

 

 


 

오후 JAVA

 

상속

상속의 장점

  • 코드의 재사용성이 증가
  • 코드의 유지보수성이 용이해짐

has-a 관계(포함관계)’ 와 ‘is-a 관계(상속관계)’

  • has-a 관계 A has a B = A가 B를 포함한다 로 표현 가능한 관계입니다.
    가장 일반적인 객체간의 관계입니다.
    특정 클래스 내에서 다른 클래스의 인스턴스를 생성하여 해당 인스턴스를 다루는 관계
    ex) 자동차 - 엔진, 스마트폰 -카메라
  • Is -a 관계 A is a B = A 는 B이다 로 표현 가능한 관계입니다.
    특정 클래스가 다른 클래스를 상속받아 해당 클래스의 멤버를 선언없이 다루는 관계입니다.
    ex) 자동차 - 소방차, 핸드폰 - 스마트폰

 

상속에서의 생성자

생성자는 상속되지 않습니다.!

상속관계에서 인스턴스를 생성할 때 서브클래스의 인스턴스가 생성되기 전에 슈퍼클래스의 인스턴스를 먼저 생성한 후에 서브클래스의 인스턴스를 생성합니다.

만약, 파라미터 생성자를 정의 했을 때 기본 생성자가 없을 경우 서브 클래스의 생성자에서 기본적으로 슈퍼클래스의 기본생성자를 호출하므로 서브클래스의 생성자에서 컴파일 에러가 발생할수 있습니다. 슈퍼클래스의 파라미터 생성자를 정의할 때에는 기본 생성자도 정의가 필요합니다.

 

class Manger4 extends Employee4 {
	String depart;

	public Manger4(String depart) {
		super(); 
		this.depart = depart;
	}
}

 

super() : 슈퍼클래스의 기본생성자를 호출합니다. 생성자 형성 단축키 : Altt + shift+ s → o

상위 클래스에서 자동완성을 했을 때 생기는 super()는 최상위 클래스인 object() 를 호출합니다.
생략되어도 자동으로 만들어짐!

 

SUB클래스에서 인스턴스를 형성하는 과정

서브클래스의 인스턴스를 생성하는 과정에서 서브클래스 생성자에서 인스턴스 생성 전 슈퍼클래싀스생성자를 호출합니다.

즉, 슈퍼클래스의 인스턴스가 생성된 후 서브클래스의 인스턴스가 생성이 됩니다.

반응형

'개인 공부 > TIL' 카테고리의 다른 글

TIL #220527 #JSP  (0) 2022.05.27
TIL #220526 #JSP #WEB  (0) 2022.05.26
TIL #220523 #JSP #JAVA  (0) 2022.05.23
TIL #220522 #JSP  (0) 2022.05.23
TIL #220521 #JSP  (6) 2022.05.22