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 |