본문 바로가기
Backend/JAVA

[JAVA] 학과 프로그램 #1 - 기본 클래스 만들기

by 그적 2020. 9. 20.

클래스 만드는 순서
1) 학생(객체)이 가져야 할 데이터가 무엇인지, 타입의 값을 정한다.    // student 클래스
2) 학생 클래스에 이 데이터를 저장할 필드를 만든다.   // student 클래스
3) 생성자 확인 - 객체가 만들어질 때 필요한 일 // department 클래스
4) 입력 메소드 // read 메서드
5) 출력 메소드 // print 메서드

 

학생 클래스 - 서브 클래스
학생이 갖게 될 데이터 객체

class Student{
	String name;
	int id;
	String phone;
	int year;
}

 

학과 클래스 - 메인 클래스
// 메인 클래스에서 run, doit 메서드를 가진다.

역할) 학생 객체를 만들고, 학생 정보를 읽어 출력함.
        -> 입력, 출력 메서드 호출

public class Department{
	Scanner s = new Scanner(System.in);
	void run(){
		Student st = new Student();
	  	st.read(s);
	  	st.print();
	}
	public static void main(String args[]){
	  	Department department = new Department();
	  	department.run();
	}
}

 

만약 여러 명의 학생을 처리하려면? ArrayList를 사용한다.

public class Department{
	Scanner s = new Scanner(System.in);
	ArrayList <Scudent> studentList = new ArrayList<>();	// ArrayList 선언
    
	void run(){
	  	Student st = null;
	  	for(int i=0; i<5; i++){
	    		st = new Student();		// 객체 생성 >> 5번 반복
	    		st.read(s);
	    		studentList.add(st);		// 객체 리스트에 추가하기
		}
	 	for(Student st: studentList)		// 출력시에 for-each 사용하도록 좋지만, 
	    		st.print();			// Student st에 있는 studentList만큼 반복
	}
    
	public static void main(String args[]){
	  	Department department = new Department();
	  	department.run();
	}
}

 

 

입력메서드와 출력 메서드 - 각각의 객체를 '하나씩' 입력받는 것이므로 student 클래스에 read()와 print()를 선언해준다.

public class Student {
	int id;
	String name;
	String phone;
	int year;
		
	void read(Scanner s) {
		id = s.nextInt();
		name = s.next();
		phone = s.next();
		year = s.nextInt();
	}
	void print() {
		System.out.printf("%d %s %s %d학년", id, name, phone, year);
		System.out.println();
	}
}

댓글