연습기록/JAVA

[JAVA]클래스 연습-학생의 정보를 저장하는 클래스 생성

박박소현 2024. 10. 24. 23:28

-문제

-풀이

 

1.Student 클래스 생성 후 필드 선언

public class Student {
	
		String name;
		int age;
		int kor;
		int eng;
		int math;
		int scoreTotal;
		int avg;

-문제에 나온 점수들 외에 메서드를 만들때 편의성을 위해 값을 저장해둘 수 있는 총점 변수와 평균 변수를 추가로 만들었다

 

2.생성자로  초기화 필요한 변수 초기화

	public Student(String name, int age, int kor, int eng, int math) {
			this.name = name;
			this.age = age;
			this.kor = kor;
			this.eng = eng;
			this.math = math;}

 

자동완성키:alt+shift+s -> o(Win기준)/option+command+s->Generate Constructor using Fields...선택(Mac기준)

를 이용하여 생성자 자동 초기화를 진행 후 필요없는 변수들은 지워줬다.

 

3.학생의 이름과 나이를 출력하는 메소드

	public void printInfo() {
			System.out.println("====힉생정보====");
			System.out.println("이름:"+name);
			System.out.println("나이:"+age);
		}

-반환이 아닌 출력이 목적인 메소드이기에 따로 rturn값을 주지 않았다 그래서 반환값도 void로 설정했다

 

4.총점을 반환하는 메서드

public int getTotal() {
			
			scoreTotal = kor + eng+ math;
			return scoreTotal;
		}

 

-국어 영어 수학 점수를 합산해 총점변수에 저장해주었다. 그리고 그 값을 반환해줬다.

 

5.평균을 반환하는 메서드

public int getAvg() {
			
			avg =scoreTotal/3;
			return avg;
		}

-총점에는 국어 수학 영어 3가지의 점수만 들어가게 되어있으니 간단하게 총점을 3으로 나눠 그 값을 평균 변수에 저장해주었다.그리고서 그 값을 반환해주었다.

 

6.StudentMain클래스 생성 후 메인메서드 생성, Student 클래스 객체생성

public class StudentMain {
	public static void main(String[] args) {
		Student s1 = new Student("김철수", 5, 70, 87, 90);

-생성자에서 초기화를 진행하였으니 객체를 생성할때 바로 값들을 넣어주었다

 

7.필요한 메서드들 호출 후 출력

//	1) 학생의 printInfo() 메소드 호출
		s1.printInfo();
	
//	2) 학생의 이름과 총점출력 (getTotal()메서드)
		System.out.println(s1.name+"의 총점:"+s1.getTotal());
//	3) 학생의 이름과 평균 점수 출력(getAvg() 메서드)
		System.out.println(s1.name+"의 평균점수:"+s1.getAvg());

-이미 출력기능을 넣어둔 printInfo()메서드는 호출만 해주고 나머지 반환만 해주는 두개의 메서드는 출력메서드 안에서 호출해 주었다

 

-느낀점

확실히 메인 메서드에서 일일히 기능을 만들어 사용할때보다 가독성도 좋아지고 더욱 직관적으로 볼 수 있는 거 같아 좋다

아직 접근제한자가 제대로 숙지 되어있지 않아 익숙해지는데 시간이 좀 걸릴 거 같다