27일차 - 2023.2.2

문우림·2023년 2월 2일
0

Java

목록 보기
12/23

1. 배열을 생성과 동시에

1-1. 초기화

  • 배열 생성
    int[] arr = new int[3];

  • 배열 생성 및 초기화1
    int[] arr = new int[]{1, 2, 3};

  • 배열 생성 및 초기화2
    int[] arr = {1, 2, 3};

1-2. 배열의 참조 값과 메소드


public class Array1 {

	public static void main(String[] args) {
		int[] ar = { 1, 2, 3, 4, 5, 6, 7 };
		int sum = sumOfAry(ar);
		System.out.println(sum);
		System.out.println(ar);
	}

	static int sumOfAry(int[] ar) {
		int sum = 0;
		for (int i = 0; i < ar.length; i++)
			sum += ar[i];
		return sum;
	}

	static int[] makeNewIntAry(int len) {
		int[] ar = new int[len];
		return ar;
	}

}

[결과]
28
[I@aec6354

String[] str

String[] strArr = {"ABCDER", "ABCDER", "ABCDER"};
		
		/*
		 * String[] strArr = new String[3];
		 * 
		 * strArr[0] = "ABCDER"; 
		 * strArr[1] = "ABCDER"; 
		 * strArr[2] = "ABCDER";
		 */

Circle[] circleArr

Circle[] circleArr = { new Circle(10), new Circle(10) };
		/*
		 * Circle[] circleArr = new Circle[2]; 
		 * circleArr[0] = new Circle(10);
		 * circleArr[1] = new Circle(10);
		 */

1-3. 기본 데이터 형의 디폴트 초기화

class A {
	int a;
	int b;
	String str;
	char ch;
	boolean bl;

	// 개발자가 초기화를 안해주면 자동으로 데이터 타입에 따라 초기값이 들어간다
}

public class Practice {

	public static void main(String[] args) {
		A a = new A();
		System.out.println(a.a);
		System.out.println(a.b);
		System.out.println(a.str);
		System.out.println(a.ch);
		System.out.println(a.bl);
	}

}

2. enhanced for문(for-each문)

  • fo-each문은 단순한 반복을 할 때 사용하면 편리하다.
  • for(int i = 0; i < arr.length; i++)경우처럼 for-each문은 i에 접근을 하지 못한다.
  • 요소를 순서대로 돌린다.

1, 2, 3, 4, 5 순서대로 출력

public class EnhancedFor {

	public static void main(String[] args) {
		int[] ar = { 1, 2, 3, 4, 5 };
		for (int e : ar) {
			System.out.println(e);
		}
	}

}

위의 예제의 합 구하기

public class EnhancedFor {

	public static void main(String[] args) {
		int[] ar = { 1, 2, 3, 4, 5 };

		int sum = 0;
		for (int e : ar) {
			sum += e;
		}
		System.out.println("sum: " + sum);
	}

}

String[] ar = { "Hello", "Java", "Bye" }; for-each문을 사용해 문자열 합계 구하기.

public class EnhancedFor {

	public static void main(String[] args) {
		String[] ar = { "Hello", "Java", "Bye" };

		int sum = 0;
		for (String str : ar) {
			sum += str.length();
		}
		System.out.println(sum);
	}

}

인스턴스 배열 대상 for-each문의 예

package example1;

class Box {
	private int boxNum;
	private String coments;

	public Box(int boxNum, String coments) {
		this.boxNum = boxNum;
		this.coments = coments;
	}

	public int getBoxNum() {
		return boxNum;
	}

	public String toString() {
		return coments;
	}
}

public class EnhancedFor2 {

	public static void main(String[] args) {
		Box[] ar = new Box[5];

		ar[0] = new Box(101, "Coffee");
		ar[1] = new Box(202, "Computer");
		ar[2] = new Box(303, "Apple");
		ar[3] = new Box(404, "Dress");
		ar[4] = new Box(505, "Fairy-tale book");

		for (Box e : ar) {
			if (e.getBoxNum() == 505)
				System.out.println(e);
		}

	}

}
  • toString( )를 선언하면 주소값이 아니라 내용을 출력

0개의 댓글