26일 차 - Array 배열 활용 문제 (23.02.01)

yvonne·2023년 2월 1일
0

📂Java

목록 보기
26/51
post-thumbnail

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

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

    	double areas = Circle.getArrArea(circleArr);
    	System.out.println(areas);
}

package array;

class Circle {
	private double r;

	public Circle(int r) {  // 생성자 
		this.r = r;
	}

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

	public static double getArrArea(Circle[] cA) { // main의 getArrArea의 파라미터 값이 Circle[] (참조형) 타입의 변수이기 때문에  
		double areaSum = 0;
		for (int i = 0; i < cA.length; i++) {
			areaSum += cA[i].getArea();
		}
		return areaSum;
	}

}

public class ArrayTest6 {

	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);

	}
}
  • 출력결과




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

String[] strArr = new String[3];
    	
   	strArr[0] = "ABCDER";
   	strArr[1] = "ABCDER";
   	strArr[3] = "ABCDER";
    	
    	System.out.println(getStrArr(strArr));

public class ArrayTest6 {

	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));

	}
	// 새로운 클래스를 생성하지 않는 이유는 위의 sysout에서 클래스를 호출하지 않고 함수를 사용했기 때문에
	public static int getStrArr(String[] sA) { // int형인 이유는 문자의 개수를 구하는 함수이기 때문에
		int csum = 0;
		for (int i = 0; i < sA.length; i++) {
			csum += sA[i].length();
		}
		return csum;
	}

}
  • 출력결과
        




3. 아래가 나오도록 Rectangle 객체를 만드시오.

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);

class Rectangle {
	private double w, h;

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

	public double getArea() {
		return w * h;
	}
	
	public static double getArrArea(Rectangle[] rA) {
			double rSum = 0;
			for (int i = 0; i < rA.length; i++) {
				rSum += rA[i].getArea();
			} return rSum;
	}
}

public class ArrayTest6 {

	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 = Rectangle1.getArrArea(recArr);
		System.out.println(areas);

	}
}
  • 출력결과




4. main 에서 실행된 Box[] ar = new Box[3] 대한 메모리 그림을 그리시오.

class Box {
   private String conts;
   
   Box(String cont) { this.conts = cont; }
   public String toString() {
      return conts;
   }
}

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]);
}

profile
개발 연습장

0개의 댓글