원래 나는 자바스크립트로 개발을 시작했기에 처음 자바를 접할때 많이 복잡하다고 느꼇다.
사실 강의를 듣기전에 class ? 뭐임 ? 그냥 있으니깐 쓰지 뭐.. 이런 느낌으로 사용하였다 ..
그러다 보니 솔직히 어쩔때 써야할지도 모르겠고.. 왜 써야할지도 모르겠어서 많이 멘탈도 터지게되었다.
하지만 이번에 김영한 선생님의 강의가 출시되면서 이번 기회에 좀 제대로 개념을 가지고 가볼까 싶어서 강의를 들으며 정리해 보았다 .
당신은 두 명의 학생 정보를 출력하는 프로그램을 작성해야 한다.
각 학생은 이름, 나이, 성적을 가지고 있다.
요구 사항:
1. 첫 번째 학생의 이름은 "학생1", 나이는 15, 성적은 90입니다.
2. 두 번째 학생의 이름은 "학생2", 나이는 16, 성적은 80입니다.
3. 각 학생의 정보를 다음과 같은 형식으로 출력해야 합니다: "이름: [이름] 나이: [나이] 성적: [성적]"
4. 변수를 사용해서 학생 정보를 저장하고 변수를 사용해서 학생 정보를 출력해야 합니다.
이런 요구사항이 있다고 해보자
음 .. 첫 번째 두번째 .. 어쩌구 저쩌구 .. 딸깍 딸깍 ...
package class1;
public class ClassStart1 {
public static void main(String[] args) {
String student1Name = "학생1";
int student1Age = 15;
int student1Grade = 90;
String student2Name = "학생2";
int student2Age = 16;
int student2Grade = 80;
System.out.println("이름:" + student1Name + " 나이:" + student1Age + " 성
적:" + student1Grade);
System.out.println("이름:" + student2Name + " 나이:" + student2Age + " 성
적:" + student2Grade);
}
}
음 변수를 사용해서 만들어 보았다 ..
근데 갑자기 학생이 늘어나면 어떻게 하지 ??
오 배열을 사용해볼까 ??
딸깍 딸깍 ..
package class1;
public class ClassStart2 {
public static void main(String[] args) {
String[] studentNames = {"학생1", "학생2"};
int[] studentAges = {15, 16};
int[] studentGrades = {90, 80};
for (int i = 0; i < studentNames.length; i++) {
System.out.println("이름:" + studentNames[i] + " 나이:" +
studentAges[i] + " 성적:" + studentGrades[i]);
}
}
}
학생 추가 전
String[] studentNames = {"학생1", "학생2"};
int[] studentAges = {15, 16};
int[] studentGrades = {90, 80};
학생 추가 후
String[] studentNames = {"학생1", "학생2", "학생3", "학생4", "학생5"};
int[] studentAges = {15, 16, 17, 10, 16};
int[] studentGrades = {90, 80, 100, 80, 50};
그래서 뭐가 편해진거임 ..?
만약에 학생2가 도중에 큰 결심
을 하여 자퇴를 했다고 생각해보도록 하자
그 학생의 데이터를 제거하려면 각각의 배열마다 그 학생의 요소를 정확하게 찾아서 제거 해주어야 한다.
큰 결심 후
String[] studentNames = {"학생1", "학생3", "학생4", "학생5"};
int[] studentAges = {15, 17, 10, 16};
int[] studentGrades = {90, 100, 80, 50};
거기다가 한 학생의 데이터의 배열이 3개로 나누어져 있기에 배열을 각각 변경해야 한다.
그리고 한 학생의 데이터를 관리하기 위해 3개의 배열의 인덱스 순서를 항상 정확하게 맞추어야 한다...
이렇게 하면 특정 학생 (ex : 학생2 )의 데이터를 변경할 때 실수할 가능성이 매우 높다.
이 코드는 컴퓨터가 볼 때는 아무 문제가 없지만 사람이 관리하기에는 좋은 코드가 아니다.
지금처럼 이름 , 나이 , 성적 을 각각 따로 나누어서 관리하는 것은 사람이 관리하기 좋은 방식이 아님.
사람이 관리하기 좋은 방식은 학생이라는 개념을 하나로 묶는것이다.
그리고 각각의 학생 별로 본인의 이름 , 나이 ,성적을 관리하는것인 것이다..!!!