Java/chapter2

ch05 Student

낭구리 2021. 8. 25. 14:06
package ch05;

public class Student {

	//학번
	int studentId;
	//학생이름
	String name;
	//참조타입으로 맴버변수만들기
	Subject korea;
	Subject math; //대문자로 시작하는 클래스타입
	//서브젝트를 메모리화 시키지않아서 없는 녀석이라 nullpoint가 떳다
	//해결책 메모리를 올려라 -1
	
	public Student(int studentId, String name) {
		this.studentId = studentId;
		this.name = name;
		korea = new Subject(); // -1
		math = new Subject();
		//생성자가 제일 먼저 작동이되기때문에 메모리를 만들어줌 korea math
	}
//	//국어 성적
//	int koreanScore;
//	//수학 성적
//	int mathScore;
//	//수강하는 과목 이름 1
//	String korean;
//	//수강하는 과목 이름 2
//	String math;
	
	//국어 성적 세팅
	public void setKoreaSubject(String name, int score) {
		korea.subjectName = name;
		korea.score = score;
//		.연산자는 객체 
	}
	
	public void setMathSubject(String name, int score) {
		math.subjectName = name;
		math.score = score;
	}
	
	public void showStudentScore() {
		int total = korea.score + math.score;
		System.out.println("학생의 이름은 : " + name);
		System.out.println("학생의 총점은 : " + total);
		System.out.println("학생의 평균은 : " + (total/2));
	}
	
	

}

 

package ch05;

public class Subject {

	String subjectName;
	int score;
	int subjectId;
	
}

 

package ch05;

public class StudentTest {

	public static void main(String[] args) {

		Student studentLee = new Student(10,"Lee");
		studentLee.setKoreaSubject("국어", 100);
		studentLee.setMathSubject("수학", 80);
	
		//error
		studentLee.showStudentScore();
		
		//Exception in thread "main" java.lang.NullPointerException: Cannot assign field "subjectName" because "this.korea" is null
//		at ch05.Student.setKoreaSubject(Student.java:28)
//		at ch05.StudentTest.main
//		(StudentTest.java:8)
//		객체가 생성되지않았는데 객체를 만들어라
//		인스턴스에 주소값을 생성되지않았는데 어디에있는 것을 해결하라
		
		
		//문제 1 학생 studentKim 생성
		//국어 셋팅
		//수학 셋팅
		//총점 출력
		
		Student studentKim = new Student(20,"Kim");
		studentKim.setKoreaSubject("국어", 90);
		studentKim.setMathSubject("수학", 70);
		studentKim.showStudentScore();
		
		
		
		
		
	}

}

'Java > chapter2' 카테고리의 다른 글

ch06 Car  (0) 2021.08.25
ch05 별모양 역으로 5->1  (0) 2021.08.25
ch04 Student Bus Subway  (0) 2021.08.25
ch03 UserInfo(생성자)  (0) 2021.08.25
ch03 Person  (0) 2021.08.25