InstanceStaticClass obj = new InstanceStaticClass();
obj.method1();
//다른 클래스의 스태틱 멤버 접근
InstanceStaticClass.method3();
//인스턴스 멤버
/*Scanner sc = new Scanner(System.in);
sc.next();
Random rd = new Random();
rd.nextInt(10);*/
//스태틱 멤버
/*int[] arr = new int[10];
Arrays.sort(arr);*/
}
}
스태틱 멤버에서 값 공유 테스트
//Share.java
package com.test;
public class Share {
// 인스턴스 멤버
private int a;
//스태틱 멤버
private static int b;
public void addA(int c) {
a+=c;
}
public static void addB(int c) {
b+=c;
}
public int getA() {
return a;
}
public static int getB() {
return b;
}
public int getC() {
return a*getB();
}
}
//Class13.java
package com.test;
public class Class13 {
public static void main(String[] args) {
Share obj1 = new Share();
Share obj2 = new Share();
obj1.addA(10); // 10
Share.addB(10); // 10
// obj1.addB(10); // 10+10 (가능은 하나 권장하지 않음)
obj2.addA(20); // 20
Share.addB(20); // 10+10+20
// obj2.addB(20); // 10+10+20+20 (가능은 하나 권장하지 않음)
System.out.println(obj1.getA()); // 10
System.out.println(obj1.getC()); // 10*30 = 300
System.out.println(obj2.getA()); // 20
System.out.println(obj2.getC()); // 20*30 = 600
System.out.println(Share.getB()); // 30
}
}
문제) 국,영,수 점수를 입력 받아서 총점, 평균, 판정 결과 출력. 클래스 이용. 판정 기준은 합격 -> 과목별로 40점 이상이면서, 평균이 60점 이상. 과락 -> 과목중 40점 미만이 있고, 평균이 60이상. 불합격 -> 평균이 60점 미만
평균이 60점 이상 -> 합격 또는 과락 -> 국영수 점수가 모두 40점 이상인지 확인. 평균이 60점 이하 -> 불합격
실행 예) 국어(0~100)?XX 영어(0~100)?YY 수학(0~100)?ZZ
입력받은 점수 : 국어 xx점, 영어 xx점, 수학 xx점 총점: xxxx 평균: xxx.x 판정: 합격
//자료 처리 전용 클래스 -> Score.java
package com.test;
public class Score {
private int kor, eng, mat;
private int total; //총점 전용 멤버변수
private double ave; //평균 전용 멤버변수
private String grade;//판정 전용 멤버변수
public int getKor() {
return kor;
}
public void setKor(int kor) {
this.kor = kor;
}
public int getEng() {
return eng;
}
public void setEng(int eng) {
this.eng = eng;
}
public int getMat() {
return mat;
}
public void setMat(int mat) {
this.mat = mat;
}
public int getTotal() { //총점을 계산해서 리턴하는 메소드 구현
total = this.kor + this.eng + this.mat; //총점공식
return total;
}
public double getAve() { //평균을 계산해서 리턴하는 메소드 구현
ave = getTotal() / 3.0; // 평균 공식
return ave;
}
public String getGrade() { //판정을 계산해서 리턴하는 메소드 구현
grade = "불합격";
if (getAve()>=60) {//판정공식
if (kor>=40 && eng>=40 && mat>=40) {
grade = "합격";
} else {
grade = "과락";
}
}
return grade;
}
}
//Class14.java
package com.test;
import java.util.*;
public class Class14 {
public static void main(String[] args) {
//입력
Scanner sc = new Scanner(System.in);
System.out.print("국어(0~100)?");
int kor = sc.nextInt();
System.out.print("영어(0~100)?");
int eng = sc.nextInt();
System.out.print("수학(0~100)?");
int mat = sc.nextInt();
//처리
//1단계. Score 객체 생성
Score obj = new Score();
//2단계. kor, eng, mat 점수를 setter를 통해서 전달.
//Score 객체의 kor, eng, mat 멤버변수에 저장
obj.setKor(kor);
obj.setEng(eng);
obj.setMat(mat);
//3단계. 총점, 평균, 판정 결과를 리턴받음.
//getTotal(), getAve(), getGrade() 메소드 호출
int total = obj.getTotal();
double ave = obj.getAve();
String msg = obj.getGrade();
//출력
System.out.printf("입력받은 점수 : 국어 %d점, 영어 %d점, 수학 %d점%n", kor, eng, mat);
System.out.printf("총점: %d%n", total);
System.out.printf("평균: %.1f%n", ave);
System.out.printf("판정: %s%n", msg);
}
}
문제) 여러명의 국,영,수 점수를 입력 받아서 총점, 평균, 판정 결과 출력. 클래스 이용. 판정 기준은 합격 -> 과목별로 40점 이상이면서, 평균이 60점 이상. 과락 -> 과목중 40점 미만이 있고, 평균이 60이상. 불합격 -> 평균이 60점 미만
평균이 60점 이상 -> 합격 또는 과락 -> 국영수 점수가 모두 40점 이상인지 확인. 평균이 60점 이하 -> 불합격
실행 예) 인원수 입력(1~10)?2 성적 입력(이름 국어 영어 수학)?hong 100 100 100 성적 입력(이름 국어 영어 수학)?kim 80 90 80 ------------------------------------------ 이름 국어 영어 수학 총점 평균 판정 ------------------------------------------ hong 100 100 100 300 100.0 합격 kim 80 90 80 .. .. 합격 ------------------------------------------
인원수 입력(1~10)?3 성적 입력(이름 국어 영어 수학)?park 84 65 78 성적 입력(이름 국어 영어 수학)?kim 39 85 100 성적 입력(이름 국어 영어 수학)?hong 39 21 41 ------------------------------------------ 전체 회원수: 3 명 ------------------------------------------ 이름 국어 영어 수학 총점 평균 판정 ------------------------------------------ park 84 65 78 227 75.7 합격 kim 39 85 100 224 74.7 과락 hong 39 21 41 101 33.7 불합격 ------------------------------------------
문제) 여러명의 국,영,수 점수를 입력 받아서 총점, 평균, 판정, 등수 결과 출력. 클래스 이용. 판정 기준은 합격 -> 과목별로 40점 이상이면서, 평균이 60점 이상. 과락 -> 과목중 40점 미만이 있고, 평균이 60이상. 불합격 -> 평균이 60점 미만
평균이 60점 이상 -> 합격 또는 과락 -> 국영수 점수가 모두 40점 이상인지 확인. 평균이 60점 이하 -> 불합격
실행 예) 인원수 입력(1~10)?2 성적 입력(이름 국어 영어 수학)?hong 100 100 100 성적 입력(이름 국어 영어 수학)?kim 80 90 80 ------------------------------------------------- 이름 국어 영어 수학 총점 평균 판정 등수 ------------------------------------------------- hong 100 100 100 300 100.0 합격 1등 kim 80 90 80 .. .. 합격 10등 -------------------------------------------------
문제) 여러명의 국어, 영어, 수학 점수를 입력 받아서 총점, 평균, 판정, 등수, 과목별 판정 결과 출력. 배열, 클래스 이용.
판정 기준은 합격 -> 과목별로 40점 이상이면서, 평균이 60점 이상 과락 -> 과목중에 40점 미만이 있고, 평균은 60점 이상 불합격 -> 평균이 60점 미만
평균이 60점 이상 -> 합격 평균이 60점 미만 -> 불합격
합격 또는 과락 구분은 -> 국어, 영어, 수학 점수가 모두 40점 이상인 확인.
과목별 판정 기준은 90점 이상은 A 80점 이상은 B 70점 이상은 C 60점 이상은 D 60점 미만은 F
실행 예) 인원수 입력(1~10)?2 성적 입력(이름 국어 영어 수학)?hong 100 100 100 성적 입력(이름 국어 영어 수학)?kim 80 90 80 ----------------------------------------- 이름 국어 영어 수학 총점 평균 판정 등수 ----------------------------------------- hong 100(A) 100(A) 100(A) 300 100.0 합격 1 kim 80(B) 90(A) 80(B) .. .. 합격 2 -----------------------------------------