728x90
반응형
학생들의 정보를 관리할 수 있는 객제지향 코드 작성
main : 사용자의 정보만 입력받고 handler에 전달
handler는 추가, 검색, 삭제 ,전체목록 기능구현
Handler클래스
여러 Student 객체를 저장할 공간 10개 (멤버변수 정의)
학생정보를 저장하는 add메서드
배열을 순회하면서
i 번째가 빈칸이면
빈칸에 전달받은 학생 객체를 저장
반복 중단
전체목록 반환 , 이름이 일치하는 학생 객체 삭제
arr[i]값이 null이 아니면 조건을 검사
일치하면 arr[i] 요소를 null로 초기화 => 원래 가리키고 있던 대상을 가리키지마
검색어를 포함하는 이름을 가진 학생의 배열을 반환
1) 검색어를 포함하는 인원수를 체크한다.
2) 인원수 만큼의 크기를 가지는 배열을 생성한다.
3) 검색어를 포함하는 객체를 배열에 복사하여 저장한다.
4) 배열을 반환한다.
★ arr의 i요소가 null이 아니면 = 조건을 검사 (안쓰면 nullPointerException 에러뜸)
main클래스
main함수에서 입력받을 변수 선언
메뉴를 받을 번호 출력 , pareInt로 정수변환
스위치로 메뉴구성 1. 전체목록
getArray함수를 arr에 할당시키고
반복문으로 arr의길이만큼 인덱스 요소 검사
만약 arrp[i]에 있는 요소가 null이 아니면 즉, 비어있지 않으면 show함수 출력.
break로 case1번 빠져나옴.
case 2 : (추가)
이름, 국어, 영어,수학 점수를 입력으로 받고 nextLine으로 엔터까지 버퍼를 비움
tmp 에 새로운 student객체를 할당시켜서 생성자 오버로딩으로 값을 지정해준다.
row에 add함수 할당 시키고 tmp로 매개변수 받아준다.
row가 0이아니면 추가성공 0이면 추가실패
case 2번 break로 빠져나옴
case 3 : (검색)
키워드를 입력으로 받아서
arr에 handler에 search함수를 할당
arr의 길이만큼 i요소를 검색하고 student의 show함수 출력.
case 4: 이름으로 삭제
name을 입력으로 받아서
name 변수에 handler의 delete 함수 할당 (매개변수 name)
row가 0이 아니면 삭제성공 0이면 삭제실패
case 4 break로 빠져나옴
만약 이 코드를 main 함수안에서 모두 작성했다고 가정해보자
코드가 엄청나게 길어질 것이다. 코드가 길어지면 유지보수에 불편을 초래하게 되고
방대한 양의 모두 다른 값과, 자료형이 뒤죽박죽 섞일 것이다.
코드를 짜는사람은 물론 협업을 할때에도 불편을 겪을 것이다.
728x90
반응형
'java 문제풀기(프로그래머스스쿨, 강의)' 카테고리의 다른 글
배열의 길이 2의거듭제곱으로 만들기, 특수문자 출력, 문자열곱하기 (0) | 2023.06.04 |
---|---|
도서관리 시스템 (객체지향) (0) | 2023.06.02 |
휴대폰과 문자 객체 (주고 받음) 예제 (0) | 2023.06.01 |
기초트레이닝 lv 0 공배수, 문자열 섞기 (0) | 2023.06.01 |
조건에 맞게 수열 변환하기 (프로그래머스 스쿨) (0) | 2023.05.30 |