26일차 - 2023.2.1

문우림·2023년 2월 1일
0

Java

목록 보기
11/23

1. Math.random( )

  • double형의 0.0 부터 1.0까지의 수를 랜덤으로 리턴한다.

로또 번호 구하기(복습)

public class Lotto {

	public static void main(String[] args) {
		int[] lottoArr = new int[6];

		for (int i = 0; i < 6; i++) {
			lottoArr[i] = (int) (Math.random() * 45) + 1;
			for (int j = 0; j < i; j++) {
				if (lottoArr[j] == lottoArr[i]) {
					i--;
					break;
				}
			}
		}
		for (int i = 0; i < 6; i++) {
			System.out.println(lottoArr[i]);
		}
	}
}

2. 배열의 활용

2-1. 값의 저장과 참조의 예

class Box {
	private String conts;

	Box(String cont) {
		this.conts = cont;
	}

	public String toString() {
		return conts;
	}
}

public class BoxTest {

	public static void main(String[] args) {
		Box[] ar = new Box[3];
		// 배열에 안스턴스 생성
		ar[0] = new Box("First"); 
		ar[1] = new Box("Second");
		ar[2] = new Box("Third");
		//저장된 인스턴스의 참조
		System.out.println(ar[0]);
		System.out.println(ar[1]);
		System.out.println(ar[2]);
	}

}
  • ar[0] = new Box("First"); = 배열에 인스턴스 저장
    값의 저장과 참조의 예제 코드의 메모리를 그리시오.
  • System.out.println(ar[0]); = 저장된 인스턴스의 참조(원래는 주소값 참조)

2-2. 배열 기반 반복문 활용의 예

public class StringArray {

	public static void main(String[] args) {
		String[] sr = new String[3];
		sr[0] = new String("Java");
		sr[1] = new String("System");
		sr[2] = new String("Compier");

		int cnum = 0;
		for (int i = 0; i < sr.length; i++)
			cnum += sr[i].length();

		System.out.println("총 문자의 수: " + cnum);
	}

}

아래가 돌아가도록 하시오.

main(){
    	Circle[] circleArr = new Circle[2];
    	circleArr[0] = new Circle(10);
    	circleArr[1] = new Circle(10);

    	//System.out.println(circleArr[0].getArea());
    	//System.out.println(circleArr[1].getArea());
  	    	
    	double areas = Circle.getArrArea(circleArr);
    	System.out.println(areas);
}
class Circle {
	// private final double PI = 3.14;
	private double rad;

	public Circle(int rad) {
		this.rad = rad;
	}

	public double getArea() {
		return (rad * rad) * Math.PI;
	}

	public static double getArrArea(Circle[] circleArr) {
		double sumArea = 0;
		for (int i = 0; i < circleArr.length; i++) {
			sumArea = sumArea + circleArr[i].getArea();
		}
		return sumArea;
	}

}

public class Array3 {

	public static void main(String[] args) {
		Circle[] circleArr = new Circle[2];
		circleArr[0] = new Circle(10);
		circleArr[1] = new Circle(10);

		double areas = Circle.getArrArea(circleArr);
		System.out.println(areas); // 해당 넓이 출력
	}

}

아래가 18이 나오도록 getStrArr 함수를 만드시오.

String[] strArr = new String[3];
   	
    	strArr[0] = "ABCDER";
    	strArr[1] = "ABCDER";
    	strArr[3] = "ABCDER";

        System.out.println(getStrArr(strArr));
public class AutoCallString {

	public static void main(String[] args) {
		String[] strArr = new String[3];

		strArr[0] = "ABCDER";
		strArr[1] = "ABCDER";
		strArr[2] = "ABCDER";

		System.out.println(getStrArr(strArr));

	}

	public static int getStrArr(String[] strArr) {
		int cnum = 0;
		for (int i = 0; i < strArr.length; i++) {
			cnum += strArr[i].length();
		}
		return cnum;

	}
}
class Rectangle {
	private double w;
	private double h;

	public Rectangle(double w, double h) {
		this.w = w;
		this.h = h;
	}

	public double getArea() {
		return (w * h);
	}

	public static double getArrArea(Rectangle[] recArr) {
		double sumArea = 0;
		for (int i = 0; i < recArr.length; i++) {
			sumArea = sumArea + recArr[i].getArea();
		}
		return sumArea;
	}
}

public class Array4 {

	public static void main(String[] args) {
		Rectangle[] recArr = new Rectangle[2];
		recArr[0] = new Rectangle(10, 20);
		recArr[1] = new Rectangle(10, 30);

		double areas = Rectangle.getArrArea(recArr);
		System.out.println(areas);
	}

}

0개의 댓글