10월26일 Day 12

여우·2022년 10월 26일
0

공부중

목록 보기
6/38

프로그램 구현

<기본 순서>
먼저 클래스를 작성하여서 생성자및 기본 기능을 설정하고,
메인에서 오더할 기능들을 사용자와 상호작용하며 받아주고,
Handler클래스에 필요한 기능들을 서술하여 알맞은 값을 리턴받아서 메인 클래스에서 출력하게한다.

현재 학생이라는 클래스로 학생 이름, 국어, 영어, 수학 점수를 받아서 합계와 평균을 가지는 객체를 생성하려고 한다.
그리고 메인에서는 저장되어있는 데이터를 보거나, 추가하거나, 수정하거나, 삭제가 가능하게 하고.
메인에서 수행 원하는 추가, 수정, 삭제를 제어할 Handler 클래스를 만들려고 한다.

1. 클래스 선언

학생이라는 클래스에 필요한 속성(값)과 기능을 먼저 생각하여서 변수 선언을 한다.

그리고 선언한 필드를 이용하여 생성자를 만들어준다.

이름과 과목 점수들만 받아서 객체 생성시 자동으로 합계와, 평균이 구해지도록 해준다.

이 학생 객체들을 출력해줄 함수 toString을 만들어두었다. 이 toString의 경우 원래 기존에 존재하는 함수로써 사용하게 되면 자동으로 override가 된다.

2. 메인 클래스의 완성

학생 클래스가 다 작성이 되면 메인 클래스에서 사용자와 입력을 주고 받으며 출력하는 프로그램의 기능에 필요한 변수들을 먼저 선언해준다.

입출력을 위한 스캐너, 아직 작성은 안했지만, 여러 기능을 제어할 핸들러 클래스를 객체로 선언하고, 나머지 필요한 자료형의 변수들을 선언했다. 현재는 완성본이라 여러 변수들이 존재 하지만. 아래에서 코드를 작성하며 필요할 때마다 변수 선언을 다시 해주어 요건을 맞추어 준다.

변수 선언이 끝나면 먼저 가장 큰 틀인 사용자에게 입력을 받게끔 할 출력문을 작성해준다. do{} while();을 이용해서 while 의 조건이 아닐때까지 계속해서 do의 내용이 출력 되도록 해준다.

출력문이 출력되고 나면 사용자가 값을 입력 받아서 그 값별로 switch문의 case들을 진행하게 한다.

select는 사용자가 입력한 번호 값으로 그 값에 맞춰서 수정 및 추가 삭제들이 진행되게 된다. 입력 받는값이 정수이더라도, nextInt나 sc.next는 버퍼에 엔터값이 남아 다음 입력을 받는 구문에 문제가 생길수 있으므로, 전부 nextLine()으로 받아주고 있다.

이제 메인에서 입출력할 구문을 다 만들었으면 위에서 차례대로 필요한 기능을 핸들러에 작성해주면 된다.

3. Handler 클래스 작성

Handler 클래스는 만들어진 객체들을 보관하고, 제어하는 기능을 적어둔다. 먼저 객체들을 저장해둘 배열을 선언해둔다.

그리고 메인의 switch문의 기능들을 적어준다.


profile
우당탕탕 지금은 개발중

0개의 댓글