[java]Constructor, Override

2024. 8. 18. 10:34·JAVA
반응형

20240816수업

package ex07; //ex07폴더

import java.util.Scanner;

/*
번호,이름,국어,영어,수학
1,사나,70,80,90
2,모모,0,70,100
3,쯔위,70,90,90
4,정연,80,90,70
5,원영,90,90,89
6,유진,100,100,100
*/
class  Student { //Prj3>>bin>>ex07폴더를 보면 다같이 공유되는 Student class파일 존재
	// Fields
	// 입력:번호,이름,국어,영어,수학
	int     num;
	String  name;
	int     kor;
	int     eng;
	int     mat;
	
	// 출력용: 번호,이름,국어,영어,수학, 총점, 평균, 학점
	int     tot;
	double  avg;
	char    grade;
	
   // Constructor 생성자
   // 기본 생성자	
   public  Student() {
		Scanner   in    =  new Scanner(System.in);
		System.out.println("입력:번호,이름,국어,영어,수학");
		String    line  =  in.nextLine();
		String [] li    =  line.trim().split(","); 
		this.num        =  Integer.parseInt( li[0].trim() ); 
		this.name       =  li[1].trim(); 
		this.kor        =  Integer.parseInt( li[2].trim() ); 
		this.eng        =  Integer.parseInt( li[3].trim() ); 
		this.mat        =  Integer.parseInt( li[4].trim() );  		
	}	
	
	// Methods 계산
	private void getTot() {
		this.tot = this.kor + this.eng + this.mat; 
	}
	
	private void getAverage() {
		this.avg = (this.kor + this.eng + this.mat) / 3.0;		
	}
	
	private void getGrade() {
		//             0   1   2   3   4   5   6   7   8   9   10
		char []  g = {'F','F','F','F','F','F','D','C','B','A','A'};
		this.grade = g[(int) this.avg / 10];		
	}
	
	public void display() {
		String  title = "번호 이름 국어 영어 수학  총점  평균  학점";
		String  msg   = title + "\n";
		String  fmt   = "%d  %s  %d  %d  %d  %d  %.3f  %c";
		
		// process()
		getTot();
		getAverage();
		getGrade();
		
		msg  += String.format(fmt, 
			 	this.num, this.name,  
			 	this.kor, this.eng, this.mat,
			 	this.tot, this.avg, this.grade );
		System.out.println(msg);
		
	}	
	
	// ctrl+shift+s>>Generate toString
	@Override
	public String toString() {
		return "Student [num=" + num + "  name=" + name + ", kor=" + kor + ", eng=" + eng + ", mat=" + mat + ", tot="
				+ tot + ", avg=" + avg + ", grade=" + grade + "]";
	}
	
}

public class StudentTest_Scanner {

	public static void main(String[] args) {
		
        Student  s1 = new Student(1, "사나", 70, 80, 90);
        System.out.println( s1.toString() );//override를 호출한다.

		Student  s1 = new Student();	
		s1.display(); //main클래스에 display삽입
			
	}

}
생성자가 없다. - 컴파일러가 자동으로 기본생성자를 생성해준다
ex)public () {}
생성자:Constructor:객체를 생성(new)할 때 실행되는 명령을 적는다
            보통 field 변수를 초기화하는 경우가 많다 - 필수
기본생성자:인자가 없다.
자바는 함수와 생성자를 인자가 다르면 여러번 만들 수 있다. >>생성자 overloading /*
함수 overloading:하나의 클래스안에 함수 두개
/*class {
* add(int n1, int n2) {}
* add(int n1, double n2) {}
* add(int n1, double n2, double n3) {}*/

 

반응형

'JAVA' 카테고리의 다른 글

[java]객체 개념  (0) 2024.08.20
[java]getter/setter  (0) 2024.08.18
[java]ArrayList (자동배열)로 성적 입력 프로그램 만들기  (0) 2024.08.18
[java]정규식 (Regular Expression)  (0) 2024.08.17
[java] String 함수 총정리  (0) 2024.08.15
'JAVA' 카테고리의 다른 글
  • [java]객체 개념
  • [java]getter/setter
  • [java]ArrayList (자동배열)로 성적 입력 프로그램 만들기
  • [java]정규식 (Regular Expression)
라텐느
라텐느
이제 막 개발을 시작한 초보가 개인공부를 하는 공간입니다.
  • 라텐느
    괴발개발
    라텐느
    • 개발자 (154)
      • HTML|CSS (14)
      • JAVA (29)
      • JAVACSCRIPT (15)
      • SQL (16)
      • 기타 (5)
      • JSP (2)
      • SPRING (13)
      • SPRING BOOT (6)
      • Git&GitHub (1)
      • 시행착오 (2)
      • 개발일지 (35)
        • GreenMiniProject1 (12)
        • GreenMiniProject2 (9)
        • GreenFinalProject (14)
      • Flutter (5)
      • 자격증 (0)
        • SQLD (1)
      • AWS (2)
      • Linux (1)
      • 자료구조&알고리즘 (4)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 태그
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    javascript
    부트캠프
    link
    티스토리챌린지
    CSS
    JQuery
    링크
    HTML
    SQL
    db
    java
    오블완
    input
    AJAX
    개발자
    태그
    tag
    자기계발
    일지
    JS
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
라텐느
[java]Constructor, Override
상단으로

티스토리툴바