- 필드2024년 07월 12일
- chantleman
- 작성자
- 2024.07.12.: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);하면 스택영역에 있는 값, 즉 주소값을 출력합니다.
728x90'자바' 카테고리의 다른 글
버블 소팅 이용한 로또 예제 (0) 2024.07.12 배열 복사 (0) 2024.07.12 배열, 필드 데이터 담기 (0) 2024.07.12 문자 맞히기 게임 예제 (0) 2024.07.10 이클립스 디버깅 (1) 2024.07.10 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)