쨘!
오늘은 자바로 간단한 학생관리 프로그램을 만들어보겠다.
강사님은 이걸 발전시켜서 회사에서 직원관리 프로그램도 만들 수 있다고 하셨지만 글쎄?
내가 될까 이렇게 쪼꾸만 내가?
하여튼간 우리는 주어진 학생관리 프로그램부터 만들어보자.
1. 설계
2. 클래스 만들기
3. 데이터 넣기
4. 데이터 추출
이러한 순서대로 생각해보면 된다.
설계단계에서는 프로그램을 어떻게 짤지 생각해보는 단계인데 답은 이미 정해져있고 난 생각만 하면됨^^
일단 학생을 관리할 StudentManager라는 것 1개,
Student라는 곳에는 학생의 개인 정보를 넣을 것이다. 대충 이름 나이 학번 어쩌구 저쩌구 개인신상 넣어줄 곳.
마지막 StudentExpel이라고 해서 제적당한 학생들을 넣어줄 곳을 만들어준다. 제적이라는 특수 상황을 빼고는 Student와 동일한 정보가 들어간다고 보면 된다.
학생이 제적이라니 제정신이야? 하지만 코딩 배울때 내 모습 생각해보면 제적이 꼭 먼 얘기만은 아니다^^
대충 원하는 이름으로 패키지를 만들어준다.
나는 아래와 같이 만들었다.
package com.javalec.manager;
Student가 가장 중심이 될 것 같으니까 Student 클래스를 생성해준다.
New -> Java Class
완전 기초부터 설명해주는 나같은 선생님이 많았으면 내 자바도 이정도는 아니었을텐데^^...
본론으로 돌아와서 저렇게 자바클래스를 생성해주고 이름은 Student로 지정해준다.
그리고 인스턴스 변수들을 만들어줄건데 우리는 이름, 나이(나이는 숫자에 불과), 학번, 전공을 만들겠다.
변수들을 만들때 주의해야 할 것은 아무나 불러와서 마구 바꾸면 곤란하므로
private으로 접근 지정자를 지정해주고 관리한다는 것이다.
package com.javalec.manager;
public class Student {
//인스턴스 변수 생성
private String name;
private int age;
private int studentNum;
private String major;
name과 major는 String 타입으로 지정해주고 나이와 학번은 int타입으로 선언한다.
그 다음에는 생성자를 만들어줄건데 생성자는 아무리 많이 만들어도 상관없다.
자기 필요에 따라 여러개 생성해주어도 된다.
원래는 기본생성자라고 해서 무조건 default 생성자를 생성해줘야하는데 내가 만약에 안만들었다?
하지만 우리의 java는 우리보다 똑똑하기 때문에 컴파일러가 자동으로 생성해주기 때문에 걱정을 안해도 됩니다.
그래도 습관적으로 만드는게 어떨까 싶습니다...? (지극히 내생각)
반전은, 나도 안만들었습니다. (왜? 안만들어도 된다는걸 안만들어야만 알수 있으니꽈!)
//생성자
public Student(String name, int age, int studentNum, String major) {
this.name = name; //클래스의 name은 매개변수(parameter)로 들어온 name을 준다.
this.age = age;
this.studentNum = studentNum;
this.major = major;
}
이 생성자에는 name, age, studentNum, major라는 parameter들을 넣어줄거기때문에 그렇게 만듭니다.
파라미터가 2개만 들어가는 생성자가 필요하다? 만드십시오.
//default 생성자 예시
public class ManClass {
public ManClass() {
}
}
ManClass mc = new ManClass(); //객체생성
기본 생성자 예시를 위에 적어주었습니다.
저는 처음에 자바를 배울때 생성자랑 클래스랑 엄청나게 헷갈렸는데요. 지금도 아니라곤 못하겠군요^^
여하튼간 ManClass라는 클래스가 있다고 하면 그 안에 ManClass라는 기본 생성자를 만들어줬는데요.
기본이기 때문에 괄호안에 아무값도 없습니다.
클래스랑 생성자랑 거의 똑같이 생겼지만 잘 보면 생성자에는 ( ) 이러한 괄호가 들어갑니다.
그리고 기본생성자는 꼭!!!!! 클래스명과 같은 이름으로 만들어줘야합니다. (이래서 똑같아보임)
집중해서 클래스명과 동일한 default생성자를 만들어줘라, 안만들면 컴파일러가 알아서 만들어줌
이것이 핵심입니다.
아래 ManClass mc = new ManClass(); 라는 것은 객체를 생성해줄 때 그 구조가 어떻게 생겼는지 예시를 들어주기 위함입니다. ManClass라는 class의 mc라는 객체에 새로운 ManClass()라는 새로운 생성자를 지정해준다는 의미입니다.
대충 그렇게 알아두십시오.
본론으로 돌아와 이 Student라는 클래스 안에다 update라는 메소드를 만들어줄 것입니다.
메소드는 즉 함수죠.
깜찍뽀짝한 updateInfo라는 이름의 함수는 i, info를 파라미터로 받을 것입니다.
그리고 리턴값은 없기 때문에 void로 선언합니다.
public void updateInfo(int i, String info) {
switch (i) {
case 1: //이름 수정
setName(info);
break;
case 2: //나이 수정
setAge(Integer.parseInt(info));
break;
case 3: //학번 수정
setStudentNum(Integer.parseInt(info));
break;
case 4: //전공 수정
setMajor(info);
break;
}
}
스위치문을 사용해주는데요. 스위치를 사용하는 이유는 지금 업데이트하는 갯수가 별로 없기 때문입니다.
하지만 갯수가 너무나 많다? 다시 생각해봐야겠죠?
여튼간에 4개의 항목 - 이름, 나이, 학번, 전공을 수정할 시 케이스문을 4개로 만들어서 set해주는 것을 작성합니다.
갑자기 무슨놈의 set이야?
네, 바로 아래 게터세터가 나올 것입니다.
getter and setter를 설마 한개씩 적어주고 있나요?
그런 부지런한 분은 없겠죠? 마우스 우클릭 Generate -> Getter and Setter ~~~문명의 이기를 즐깁시다.~~~
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getStudentNum() {
return studentNum;
}
public void setStudentNum(int studentNum) {
this.studentNum = studentNum;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
아름다운 모습으로 Getter와 Setter가 생성되었고요 마지막에 중괄호를 닫고 이 턴을 마무리하죠.
'문과생애긔개발자_공부 > Java(자바)' 카테고리의 다른 글
학생 관리 프로그램 (03 마지막 StudentManager 만들기) (0) | 2022.07.12 |
---|---|
학생 관리 프로그램 (02 StudentExpel class만들기) (0) | 2022.07.06 |
간단한 for문 while문 연습 (1~100까지 3의 배수의 합) (1) | 2022.06.24 |