gwooden_코린이

java_오버로딩 합계/평균 점수 구하기_221128(6일차) 본문

java/6일차

java_오버로딩 합계/평균 점수 구하기_221128(6일차)

gwooden22 2022. 11. 28. 12:54
728x90

- 오버로딩 기능 활용용 코드

이름이 동일한 함수를 여러개 만드는건 해당 풀이에서는 안됨

메서드명은 같지만 매개변수를 다르게 해주는건 가능

 

avg <-- 매서드명은 같지만 () <--괄호안에 있는 매개변수를 다르게 해줘야 가능

package 스코어;

import java.util.Scanner;

public class StudentMain {

	public static void main(String[] args) {


		Scanner sc = new Scanner(System.in);
		
		//생성자
		//2개의 객체 생성
		Student stu1 = new Student(100, 80, 90);
		Student stu2 = new Student();
		
		//sut2.math =  라고 생각하면 된다.
		
		
		//main 변수에서 사용할 단순 변수를 선언한거
		int stu1_sum, stu2_sum;
		double stu1_avg, stu2_avg;
		
		System.out.print("정수를 입력하세요 : ");
		int math = sc.nextInt();
		int kor = sc.nextInt();
		int eng = sc.nextInt();
		
		stu1_sum = stu1.sum();
		stu2_sum = stu2.sum(math, kor, eng); //Student 클래스로 위에서 입력한 3가지 값을 넘겨준다.
		
		stu1_avg = stu1.avg();
		stu2_avg = stu2.avg(math, kor, eng);
		
		System.out.println("학생1의 합계 : " + stu1_sum + " 평균 : "+ stu1_avg);
		System.out.println("학생1의 합계 : " + stu2_sum + " 평균 : "+ stu2_avg);

	}

}
결과값

정수를 입력하세요 : 70 50 60
학생1의 합계 : 270 평균 : 90.0
학생1의 합계 : 180 평균 : 60.0

package 스코어;

//오버로딩 활용

public class Student {
	
	//math, kor, eng 정수형 클래스 변수
	
	//합계구하는 메서드(반환타입 : int)
	//평균구하는 메서드(반환타입 : double)
	
	
	//stu1에 대한 점수 값
	//객체 변수를 의미함
	int math;
	int kor;
	int eng;
	
	//생성자
	Student() { //매개 변수가 없는게 실행이 되고
		
	}

	public Student(int math, int kor, int eng) { //매개 변수 있는게 실행이 되기 위해 매개 변수 받게끔 처리
		super();
		this.math = math;
		this.kor = kor;
		this.eng = eng;
	}
	
		// 합계 구하는 메서드 생성

	public int sum() { //sut1에 대한 합계, 기본 값이 포함되어 있음
		//객체 변수를 의미함
		return math + kor + eng; //3가지 점수를 더해서 리턴 시켜라
	}
	
	public int sum(int math, int kor, int eng) { //stu2에 대한 합계 stu2는 지정된 값이 없음
		return math + kor + eng; //3가지 점수를 더해서 리턴 시켜라 //바로 위에 대한 객체변수
	}
	
		// 평균 구하는 메서드 생성
	
	public double avg() {
		return (math+kor+eng) / 3.0;
	}
	
	public double avg(int math, int kor, int eng) { 
		return (math + kor + eng) / 3.0; 

	}
}

package 스코어;

public class StudentMain {

	public static void main(String[] args) {

//       객체를 넣을 수 있는 배열을 생성한것
		Student[] students = new Student[3];
		
		int i; //증감식 변수
		
		for(i=0; i<students.length; i++) {
			students[i] = new Student(); //메서드 호출
			
			System.out.println(i + 1 + "번째 학생");
			students[i].setScore();
			
			students[i].sum();
			students[i].avg();
			
			
		}
	
		
			for(i=0; i<students.length; i++) {
				System.out.println(i + 1 + "번째 학생");
				students[i].showResult();
		

			}

	}

}
package 스코어;

import java.util.Scanner;

public class Student {
	
	//math, kor, eng 정수형 클래스 변수
	
	//합계구하는 메서드(반환타입 : int)
	//평균구하는 메서드(반환타입 : double)
	
	
	//stu1에 대한 점수 값
	//객체 변수를 의미함
	int math;
	int kor;
	int eng;
	int sum;
	double avg;
	
	Scanner sc = new Scanner(System.in);
	
	//생성자
	Student() { //매개 변수가 없는게 실행이 되고
		
	}

	public Student(int math, int kor, int eng) { //매개 변수 있는게 실행이 되기 위해 매개 변수 받게끔 처리
		super();
		this.math = math;
		this.kor = kor;
		this.eng = eng;
	}
	
		// 합계 구하는 메서드 생성

	public void sum() { //해당 클래스 내부에서 값을 구할거니 메서드는 리턴할게 없어 void 사용
		//객체 변수를 의미함
		sum = math + kor + eng; //math + kor + eng를 sum에 대입
	}
	
	
		// 평균 구하는 메서드 생성
	
	public void avg() { 
		avg = (math+kor+eng) / 3.0;
	}
	

	
	public void setScore() {
		System.out.print("점수를 3개 입력하세요 : ");
		math = sc.nextInt();
		kor = sc.nextInt();
		eng = sc.nextInt();

	}
	
	public void showResult() {
		System.out.println("합계 : " + sum + "평균 : " + avg);
	}
	
}

package 스코어;

public class StudentMain {

	public static void main(String[] args) {

//       객체를 넣을 수 있는 배열을 생성한것
		Student[] students = new Student[3];
		
		int i; //증감식 변수
		int max = 0;
		int min = 500;
		
		for(i=0; i<students.length; i++) {
			students[i] = new Student(); //메서드 호출
			
			System.out.println(i + 1 + "번째 학생");
			students[i].setScore();
			
			students[i].sum();
			students[i].avg();
			
			
		}
	
		
			for(i=0; i<students.length; i++) {
				System.out.println(i + 1 + "번째 학생");
				students[i].showResult();
		

			}
			
			//3명 중 가장 큰 합계 가장 작은 값 출력
			
			for(i=0; i<students.length; i++) {
				if(students[i].sum>max) 
					max = students[i].sum;
				
				
				if(students[i].sum<min) 
					min = students[i].sum;
				}

			
				System.out.println("가장 큰값 : " + max + " 가장 작은 값 : " + min);
	}

}
결과값

1번째 학생
점수를 3개 입력하세요 : 10 60 80
2번째 학생
점수를 3개 입력하세요 : 60 80 90
3번째 학생
점수를 3개 입력하세요 : 70 60 20
1번째 학생
합계 : 150평균 : 50.0
2번째 학생
합계 : 230평균 : 76.66666666666667
3번째 학생
합계 : 150평균 : 50.0
가장 큰값 : 230 가장 작은 값 : 150
package 스코어;

import java.util.Scanner;

public class Student {
	
	//math, kor, eng 정수형 클래스 변수
	
	//합계구하는 메서드(반환타입 : int)
	//평균구하는 메서드(반환타입 : double)
	
	
	//stu1에 대한 점수 값
	//객체 변수를 의미함
	int math;
	int kor;
	int eng;
	int sum;
	double avg;
	
	Scanner sc = new Scanner(System.in);
	
	//생성자
	Student() { //매개 변수가 없는게 실행이 되고
		
	}

	public Student(int math, int kor, int eng) { //매개 변수 있는게 실행이 되기 위해 매개 변수 받게끔 처리
		super();
		this.math = math;
		this.kor = kor;
		this.eng = eng;
	}
	
		// 합계 구하는 메서드 생성

	public void sum() { //해당 클래스 내부에서 값을 구할거니 메서드는 리턴할게 없어 void 사용
		//객체 변수를 의미함
		sum = math + kor + eng; //math + kor + eng를 sum에 대입
	}
	
	
		// 평균 구하는 메서드 생성
	
	public void avg() { 
		avg = (math+kor+eng) / 3.0;
	}
	

	
	public void setScore() {
		System.out.print("점수를 3개 입력하세요 : ");
		math = sc.nextInt();
		kor = sc.nextInt();
		eng = sc.nextInt();

	}
	
	public void showResult() {
		System.out.println("합계 : " + sum + "평균 : " + avg);
	}
	

}

package 스코어;

public class StudentMain {

	public static void main(String[] args) {

//       객체를 넣을 수 있는 배열을 생성한것
		Student[] students = new Student[3];
		
		int i; //증감식 변수
		int max = 0;
		int min = 500;
		int maxIdx = 0, minIdx = 0;
		
		for(i=0; i<students.length; i++) {
			students[i] = new Student(); //메서드 호출
			
			System.out.println(i + 1 + "번째 학생");
			students[i].setScore();
			
			students[i].sum();
			students[i].avg();
			
			
		}
	
		
			for(i=0; i<students.length; i++) {
				System.out.println(i + 1 + "번째 학생");
				students[i].showResult();
		

			}
			
			//3명 중 가장 큰 합계 가장 작은 값 출력
			
			for(i=0; i<students.length; i++) {
				if(students[i].sum > max)  {
					max = students[i].sum;
					maxIdx = i + 1;
				}
				if(students[i].sum < min) {
					min = students[i].sum;
					minIdx = i + 1;
				}
			}
			
			System.out.println("가장 큰값 : " + max + "번째 학생에 " +" 가장 작은 값 : " + min);
			
			System.out.println(maxIdx + "번째 학생이 1등");
			System.out.println(minIdx + "번째 학생이 꼴등");
	}
	

}
결과값

1번째 학생
점수를 3개 입력하세요 : 50 70 90
2번째 학생
점수를 3개 입력하세요 : 60 50 40
3번째 학생
점수를 3개 입력하세요 : 30 50 70
1번째 학생
합계 : 210평균 : 70.0
2번째 학생
합계 : 150평균 : 50.0
3번째 학생
합계 : 150평균 : 50.0
가장 큰값 : 210번째 학생에  가장 작은 값 : 150
1번째 학생이 1등
2번째 학생이 꼴등
package 스코어;

import java.util.Scanner;

public class Student {
	
	//math, kor, eng 정수형 클래스 변수
	
	//합계구하는 메서드(반환타입 : int)
	//평균구하는 메서드(반환타입 : double)
	
	
	//stu1에 대한 점수 값
	//객체 변수를 의미함
	int math;
	int kor;
	int eng;
	int sum;
	double avg;
	
	Scanner sc = new Scanner(System.in);
	
	//생성자
	Student() { //매개 변수가 없는게 실행이 되고
		
	}

	public Student(int math, int kor, int eng) { //매개 변수 있는게 실행이 되기 위해 매개 변수 받게끔 처리
		super();
		this.math = math;
		this.kor = kor;
		this.eng = eng;
	}
	
		// 합계 구하는 메서드 생성

	public void sum() { //해당 클래스 내부에서 값을 구할거니 메서드는 리턴할게 없어 void 사용
		//객체 변수를 의미함
		sum = math + kor + eng; //math + kor + eng를 sum에 대입
	}
	
	
		// 평균 구하는 메서드 생성
	
	public void avg() { 
		avg = (math+kor+eng) / 3.0;
	}
	

	
	public void setScore() {
		System.out.print("점수를 3개 입력하세요 : ");
		math = sc.nextInt();
		kor = sc.nextInt();
		eng = sc.nextInt();

	}
	
	public void showResult() {
		System.out.println("합계 : " + sum + "평균 : " + avg);
	}
	

}
728x90

'java > 6일차' 카테고리의 다른 글

java_상속_221128(6일차)  (0) 2022.11.28
java_캡슐화_221128(6일차)  (0) 2022.11.28
java_메서드 호출 최대/최소값 구하기_221128(6일차)  (0) 2022.11.28
java_Static_221128(6일차)  (0) 2022.11.28
java_싱글톤_221128(6일차)  (0) 2022.11.28
Comments