무료책일때는 제목만 전달
this() : 같은 클래스의 다른 생성자를 호출할 때 사용, 생성자 내부에서만 사용할 수 있음, this() 메서드에 인수를 전달하면, 다른 생성자 중에서 메서드가 일치하는 다른 생성자를 찾아서 호출한다.
this는 파라미터가 2개인 생성자
-> 슈퍼클래스 생성자 부르듯이 this( ) 내 생성자 부름
book 생성자 중에서 파라미터 2개인 -> string title, int price를 부름
getter, setter만들기
book 객체 출력을 편안하게 하려고 -> tostring 만드는게 일반적
-> 원래는 따로 객체 만들어서 다른 애인데
같은 책으로 인식시키자
-> hashCode하고 equals
책 한도끝도 없이 들어감 -> arraylist
책정보 각종 정보들 입력받을것(사용자로부터) -> scanner사용
-> 선언만 하고 그냥 쓰면 nullPointexception 발생
-> 선언과 생성 분리하는 것
등록 메소드
삭제 메소드
조회 메소드
전체 조회 메소드
수정 메소드
운영 메소드
도서관 관리자가 사용하는 메소드
무한루프 돌동안 사용자로부터 보여줄것
-> 정수니까 nextInt로
123450 이 값을 가지고
-> switch를 끝내시오 . 그래도
무한루프 걸려있어서 계속 함
-> break는 스위치만 끝내는거라 무한루플에 걸려서 안됨
반환없는 메소드는 실행중지를 의미함
-> main은 아무곳에나 두어도 됨
main -> ctrl + space
-> private으로 수정하기
-> manage만 library꺼고 나머지는 다 object것
-> 무한루프 걸려있어서 terminator 누르면 닫을수 있음
-> 어린왕자라고 쓰면
예외가 발생하는 메소드 nextint() :정수만
-> 애가 던져버려서
next 는 문자열로 받아서 12340도 String으로 받을수 있음
(String이라고 우기면 다 받을 수 있음)
alt + shift + a
실수로 이상한거 입력해도 default로 처리
-> arraylist에 한도끝도 없이 넣을 수 있음
-> sc.를 부르고 공백도 포함(nextLine)
scanner가 필드라서 모든 메소드에서 쓸 수 있음
-> Book을 만들어서 추가함
-> 배열이면 , 인덱스 증가부분, 한계가 있는지 봐야해서 어려웠을
next(), nextInt(), nextLine() - Scanner 클래스
next() : 문자를 입력할때 사용한다. 단, 공백은 입력할 수 없어 띄어쓰기는 불가능하다.
nextInt() : 숫자를 입력할때 사용한다. 마찬가지로 띄어쓰기는 불가능하다.
nextLine() : 문자 + 공백을 입력할 때 사용한다. 띄어쓰기를 입력할 수 있어 유용하지만 다른 메소들들과 같이 사용할때 먼저 상황에서 공백이 남아있다면 입력을 하지 않아도 자동으로 넘어가게 된다.
++(유투브)
-> 주소 입력안했는데 끝나버림
방법) sc.next(); sc.nextLine();AAA(한번 더 사용)
sc.next에서 1만 먹고 엔터는 입력 스트림에 남겨둠
어쨌든 2글자 입력(1,enter)
1은 sc.next()가 먹음
enter은 남아있다가 addBook()의 nextLine이 먹음
-> next는 엔터가 남아있어서 자기 입력으로 보지 않음
->띄어쓰기로 하면 '어린' 만 읽음(공백 뒤는 못읽음)
throw로 해결하기
책제목은 문자열 입력이라 상관없는데
price는 nextInt()라서 정수가 아니면 오류 발생
-> 발생한 예외를 addBook 호출한곳으로
-> 이름보고 하면됨
-> 호출하는 곳 addBook() 호출하는곳
-> manage
★★ 여기로 inputmismatchexception이 옴 (중요)
-> try-catch를 여기서 한번 묶어주면 됨
-> while문을 try안에 넣을것인가?
try안에다가 while를 넣을경우)
-> 예외발생시) catch로 넘어가고 무한루프는 끝나버림
-> 입력하나 잘못하면) 그냥 동작이 끝나버리는것
-> try catch가 끝나고 while문 밖으로 나가지 못함
-> 예외메시지 출력하고 다시 while문 안으로 들어가서 입력을 받음
자바가 만든 예외 메시지 : null
잘못된입력입니다. 다시 시도하세요 -> 신경쓰지 말고
-> 재시도해서 성공할 수 있음
-> arraylist에 저장된 메소드
자바가 책이없다고 예외처리 하지 못함
-> books arraylist임
-> 도서관에 등록된 책이 없다 출력하고 넘어감
-> 예외처리로 동작됨
책한권
TO string override된 형태로 출력될 것
데이터베이스에 들어가는건 아니고, arraylist(메모리)에 저장되기 때문에 프로그램 끄거나 컴퓨터 꺼지면 날아가는 "휘발성" 이다.
-> DB가 필요
-> 이런 프로그램에 DB를 붙이는 수업을 함 (다음주에)
-> 한번 등록한 책은 계속 들어가있음
(자바 + 데이터베이스)
제목을 기준으로 찾아서 수정,삭제, 조회하는 방식(내일)