이번주는 복습과 문제 풀이를 너무 많이해서 아마도 정리 할 것이 없을 것 같은데 한번 해보자
까먹으면 안되니까
11일 클래스 객체
12일 ArratList
13일 접근제한자 foreach
14일 DTO Service
15일 복습 문제
어떠한 기능 또는 정보들을 나누어서 메인클레스에서 객체화를 통해 사용한다
Collection Framework안의
List - ArrayList
Map - HashMap
Set - Hashset
3중에 List??
배열은 한번에 크기를 만들고 남는 공간은 낭비가 된다
하지만 arraylist는 크기가 능동적이다
데이터를 추가하면 크기가 늘어나고 지우면 줄어들고 유연하게 이루어 진다.
새로운 데이터를 넣으면 알아서 한 칸씩 뒤로 밀린다
인덱스(index)를 가지고 있다.
리스트를 선언할 때 타입을 정한다
// 선언
// List 객체이름 : list1
// List에 담을 수 있는 데이터 타입 : String
// <> 데이터 타입 클래스 이름만 가능
List<String> list1 = new ArrayList<String>();
바꿀 수 있는 것은 변수와 <>사이의 클래스이름만 변경 가능
List<String> list1 = new ArrayList<>();
뒤에 <>에는 안 써도 앞의 <>와 같다고 인식해서 생략이 가능하다
<> 사이에 String등등 보다 우리가 직접 만든 클래스가 들어간다.
ArrayList 라는 클래스 객체를 만들어서 사용하기 때문에 ArrayList 가 가지고 있는 여러 메서드(add, get, size, remove등)를 활용 할 수 있음

<>사이의 데이터를 object로 변환해서 저장하고 다시 가져올 때 String으로 변환해서 가져와야 하는데 그 과정을 지워준다????
오브젝트로 변환하는 과정을 지우고 그 클래스를 그냥 저장한다는 건가
int : Integer
long : Long
double : Double
boolean : Boolean
이건 잘 모르겠다
list1.add("첫번째 데이터");
list1.add("두번째 데이터");
list1.add(1, "어디에 들어갈까요");
list1.add(1, "이건 어디에?");
출력을 하면
첫번째 데이터
이건 어디에?
어디에 들어갈까요
두번째 데이터
위 처럼 나온다. add가 사용 될 때 마다 하나 씩 뒤로 밀린다
줄이동이 자유롭다 새치기도 가능하고 한자리가 빠지면 알아서 위로 올라간다
System.out.println(list1.get(0));
System.out.println(list1.get(1));
System.out.println(list1.get(2));
System.out.println(list1.get(3));
.size() : 크기 확인 메서드
System.out.println(list1.size());
remove(index) : index의 자리에 있는 데이터를 지우고 아래 데이터를 한 칸씩 올린다.
자바 파이썬 등등 다른 언어에서도 사용 된다
대량의 데이터가 들어있는 객체(배열/리스트)에 접근 할 때
for (String var: list) {
System.out.println(var);
}
for (반복변수: 반복접근할 객체)
주의 : 반복변수와 반복접근용객체의 데이터 타입은 동일해야함
들어있는데이터를 모두 출력하고 없으면 정지
이거는 조금 헷갈린다
클래스, 필드, 메서드 생성자 등에 붙일 수 있으며, 해당 요소의 공개범위(접근범위)를 지정하는 것
public, default, protected, private 4가지
공개 범위를 지정하는 것?
어디서든 접근이 가능하다
접근 제한자를 쓰지 않으면 default
같은 패키지 소속에서만 접근가능
같은 패키지 또는 상속 받은 객체들만 접근 가능
같은 클래스(한파일) 내에서만 접근 가능
다른 클래스에서는 접근 불가능
필드 변수 선언을 private로 하고 메서드를 통해서 변경할 수 있도록 설정
무분별하게 변수를 사용하는 것을 막아준다.

마우스 우클릭
source
generate getters and setters를 누르면 자동으로 만들어 준다
필드를 감추기 위함 도 있고


마우스 우클릭
source
generate constructor using fields
생성자를 자동으로 만들어준다
앞의 public은 지워도 괜찮다
getter setter 와 toString 과 같이 DTO 클래스에 만들어 준다
controller(main)와 DTO와 Service 총 3개의 클래스를 합친 것을 MVC라고 한다고 한다.
다음주부터는 MVC 복습 몇번 하고 데이터베이스로 넘어간다고 한다.