본문 바로가기

자바

JAVA - 0422

1번 - 최대, 최소, 합, 평균 구하기

package sevenClass;

public class Test0422_01 {
	public static void main(String[] args) {
		int[] arr = {2, 56, 88, 41, 3, 78, 95, 64, 43, 33};
		double[] arr2 = {4.4, 5.8, 89.7, 95.4, 77.8, 64.3, 34.9};
		
		System.out.printf("배열의 최솟값은: %d\n", minOfarr(arr));
		System.out.printf("배열의 최댓값은: %d\n", maxOfarr(arr));
		System.out.printf("배열의 합은: %d\n", sumOfarr(arr));
		System.out.printf("배열의 평균은: %.2f\n", avgOfarr(arr));
		System.out.println();
		
		System.out.printf("배열의 최솟값은: %.3f\n", minOfarr(arr2));
		System.out.printf("배열의 최댓값은: %.3f\n", maxOfarr(arr2));
		System.out.printf("배열의 합은: %.3f\n", sumOfarr(arr2));
		System.out.printf("배열의 평균은: %.2f\n", avgOfarr(arr2));
	}
	
	static int minOfarr(int[] x) {
		int min_n = 100000000;
		for(int i : x) {
			if(min_n >= i) {
				min_n = i;
			}
		}
		return min_n;
	}
	static int maxOfarr(int[] x) {
		int max_n = 0;
		for(int i : x) {
			if(max_n <= i) {
				max_n = i;
			}
		}
		return max_n;
	}
	static int sumOfarr(int[] x) {
		int sum_n = 0;
		for(int i : x) {
			sum_n += i;
		}
		return sum_n;
	}
	static double avgOfarr(int[] x) {
		int sum_n = 0;
		double avg;
		for(int i : x) {
			sum_n += i;
		}
		avg = sum_n / x.length;
		return avg;
	}
	
	static double minOfarr(double[] x) {
		double min_n = 100000000.0;
		for(double i : x) {
			if(min_n >= i) {
				min_n = i;
			}
		}
		return min_n;
	}
	static double maxOfarr(double[] x) {
		double max_n = 0.0;
		for(double i : x) {
			if(max_n <= i) {
				max_n = i;
			}
		}
		return max_n;
	}
	static double sumOfarr(double[] x) {
		double sum_n = 0;
		for(double i : x) {
			sum_n += i;
		}
		return sum_n;
	}
	static double avgOfarr(double[] x) {
		int sum_n = 0;
		double avg;
		for(double i : x) {
			sum_n += i;
		}
		avg = sum_n / x.length;
		return avg;
	}
}

 

 

메소드 생성

메소드 오버로딩을 통해 double형과 int형의 데이터를 동시에 관리할 수 있도록 메소드 생성

 

minOfarr - double형과 int형의 배열 형식의 데이터를 가져오고 이후 배열의 최솟값을 확인 후 반환

 

maxOfarr - double형과 int형의 배열 형식의 데이터를 가져오고 이후 배열의 최댓값을 확인 후 반환

 

sumOfarr - double형과 int형의 배열 형식의 데이터를 가져오고 이후 배열의 합계를 계산 후 반환

 

avgOfarr - double형과 int형의 배열 형식의 데이터를 가져오고 이후 배열의 평균을 계산 후 반환

 

 

main

int 배열인 arr 생성 - 이후 최소, 최대, 합계, 평균 메소드를 호출 후 반환값 출력

double 배열인 arr 생성 - 이후 최소, 최대, 합계, 평균 메소드를 호출 후 반환값 출력

 

 

2번 - 범위내의 랜덤값 출력

package sevenClass;

import java.util.Random;
import java.util.Scanner;

public class Test0422_02 {
	static Random rand = new Random();
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("시작할 값을 입력하세요: ");
		int a = scan.nextInt();
		System.out.print("끝값을 입력하세요: ");
		int b = scan.nextInt();
		
		System.out.printf("범위에서 랜덤한 값은: %d", rangeRnd(a, b));
		
		scan.close();
	}
	
	static int rangeRnd(int a, int b) {
		return rand.nextInt(a, b + 1);
	}
}

 

 

rangeRnd

시작값 a, 끝값 b를 전달받아 랜덤값 생성 후 리턴

 

Main

시작값 a, 끝값 b를 입력받아 메소드에 전달 그 후 반환받은 값을 출력

 

 

3번 - private 값 접근

package sevenClass;

public class Test0422_03 {
	public static void main(String[] args) {
		Human man1 = new Human("홍길동", 175.8, 65.9);
		Human man2 = new Human("이순신", 189.8, 80.9);
		
//		man1.name = "홍길동"; man1.height = 175.8; man1.weight = 65.9;
//		man2.name = "이순신"; man2.height = 189.8; man2.weight = 80.8;
		
		System.out.printf("이름은: %s\n", man1.getName());
		System.out.printf("키는: %.2f\n", man1.getHeight());
		System.out.printf("몸무게는: %.2f\n", man1.getWeight());
		System.out.println();
		
		System.out.printf("이름은: %s\n", man2.getName());
		System.out.printf("키는: %.2f\n", man2.getHeight());
		System.out.printf("몸무게는: %.2f\n", man2.getWeight());
		System.out.println();
		
		System.out.printf("증가한 몸무게는: %.2f\n", man1.incWeight(10));
		System.out.printf("증가한 키는: %.2f\n", man1.incHeight(10));
		System.out.println();
		
		System.out.printf("감소한 몸무게는: %.2f\n", man1.redWeight(10));
		System.out.printf("감소한 키는: %.2f\n", man1.redHeight(10));
	}
}

class Human{
	Human(){}
	Human(String n, double h, double w){
		this.name = n;
		this.height = h;
		this.weight = w;
	}
	private String name;
	private double height;
	private double weight;
	
	String getName() { return this.name; }
	double getHeight() { return this.height; }
	double getWeight() {return this.weight; }
	double incWeight(int n){ return this.weight += n; }
	double incHeight(int n){ return this.height += n; }
	double redWeight(int n){ return this.weight -= n; }
	double redHeight(int n){ return this.height -= n; }
}

 

 

Human Class

생성자를 통해 private 변수인 이름, 몸무게, 키의 값을 지정

get이 붙은 메소드를 통해 private 변수를 return

inc가 붙은 메소드를 통해 private 변수를 계산하고 반환

red가 붙은 메소드를 통해 private 변수를 계산하고 반환

 

private 변수는 외부에서 참조, 변환하지 못하고 class 내부에서만 참조, 변환 가능

 

Main

매개인자 3개를 보내서 man1, man2객체 생성

이름과, 몸무게, 키를 반환받아서 출력

증가, 감소를 통해 몸무게, 키를 변환

 

 

4번 - 연비 계산

package sevenClass;

public class Test0422_04 {
	public static void main(String[] args) {
		CarTest car1 = new CarTest("소나타", 50.8, 11.3);
		System.out.printf("자동차의 이동가능 여부: %b", car1.move(1, 5));
	}
}

class CarTest{
	private String carname;
	private double tank;
	private double yb;
	
	CarTest(){}
	CarTest(String c, double t, double y){
		this.carname = c;
		this.tank = t;
		this.yb = y;
	}
	
	boolean move(int dx, int dy) {
		boolean flag = false;
		double distance = Math.sqrt(dx*dx + dy*dy);
		if(distance*this.yb <= this.tank) {
			flag = true;
		}
		return flag;
	}
}

 

 

CarTest Class

생성자를 통해 private 변수인 carname, tank, yb 변수값 지정

move 메소드를 통해 이 거리를 이동 가능한지 판단 후 return

 

Main

매개인자를 전달하여 car1 객체 생성

이동 가능 여부를 매개인자를 전달하여 판단 후 변환받은 값을 출력

'자바' 카테고리의 다른 글

JAVA - 0516  (0) 2024.05.16
JAVA - 0509  (0) 2024.05.09
JAVA-0502  (0) 2024.05.02
JAVA - 0415  (0) 2024.04.15
JAVA - 0411  (0) 2024.04.11