자바

필드

chantleman 2024. 7. 12. 11:57

메소드 안이 아닌 클래스 영역 안에 있는 애들을 필드라고 합니다.

 

 

public class Student {
	String name;
	int kor;
	int eng;
	int math;
	int sum;
	double avg;
	
}

Student 클래스에 이런 틀을 정해주고

 

public class StudentMain {
	public static void main(String[] args) {
		Student st=new Student();
		
		st.name="이순신";
		st.kor=100;
		st.eng=90;
		st.math=100;
		st.sum=st.kor+st.math+st.eng;
		st.avg=st.sum/3.0;
		
		
		Student st2=new Student();
		st2.name="홍길동";
		st2.kor=70;
		st2.eng=70;
		st2.math=100;
		st2.sum=st2.kor+st2.math+st.eng;
		st2.avg=st2.sum/3.0;
		
		
		Student st3=new Student();
		st3.name="강감찬";
		st3.kor=90;
		st3.eng=100;
		st3.math=80;
		st3.sum=st3.kor+st3.math+st3.eng;
		st3.avg=st3.sum/3.0;		
	
		
	}
}

 

StudentMain클래스에서 출력할 때

System.out.println("이름: "+st.name+", 국어: "+st.kor+", 영어: "+st.eng+", 수학: "+st.math);
System.out.println("총점: "+st.sum+"평균: "+st.avg);

이렇게 일일이 하기 귀찮으니까

 

 

 

student 클래스에서

alt+shift+s → generate toString

출력하고싶은 객체 선택하면 이렇게 오버라이딩이 됩니다.

public class Student {
	String name;
	int kor;
	int eng;
	int math;
	int sum;
	double avg;
	
	//오버라이딩
	@Override
	public String toString() {
		return "학생 [name=" + name + ", kor=" + kor + ", eng=" + eng + ", math=" + math + ", sum=" + sum + ", avg="
				+ avg + "]";
	}
	
	
}

 

 

StudentMain 클래스에서

System.out.println(st);
System.out.println(st2);
System.out.println(st3);

이렇게 출력하면 

아까 student에서 오버라이딩한 포맷대로 출력됩니다.

 

만약에 오버라이딩 안하고 그냥 System.out.println(st);하면 스택영역에 있는 값, 즉 주소값을 출력합니다.

'자바' 카테고리의 다른 글

버블 소팅 이용한 로또 예제  (0) 2024.07.12
배열 복사  (0) 2024.07.12
배열, 필드 데이터 담기  (0) 2024.07.12
문자 맞히기 게임 예제  (0) 2024.07.10
이클립스 디버깅  (0) 2024.07.10