class AutoallToString{
int a = 10; // 인스턴스 함수(변수)
}
public static void main(String[] args){
System.out.println(a); // 불러올 수 없다.
}
⇒해당 식은 성립이 될 수 없다.
⇒static 함수 안에는 인스턴스 함수와 인스턴스 변수가 올 수 없기 때문.
static함수가 먼저 생성되기 때문.
[계산] public class Test37 { public static void main(String[] args) { String[] strArr = new String[3]; strArr[0] = "ABCDER"; strArr[1] = "ABCDER"; strArr[2] = "ABCDER"; //String[] strArr = {"ABCDER","ABCDER","ABCDER"}; 상기와 같음 System.out.println(getStrArr(strArr)); // 같은 함수 안에서 불러오는 것 } public static int getStrArr(String[] strArr) { // static 함수 안에는 인스턴스 함수와 변수가 올 수 없다. int count = 0; for (int i = 0; i < strArr.length; i++) { count += strArr[i].length(); } return count; } }
[결과값] 18
[계산] class Circle8 { private double radius; public Circle8(double radius) { this.radius = radius; } public double getArea() { return radius * radius * Math.PI; } public static double getArrArea(Circle8[] c) { double sumArea = 0; for (int i = 0; i < c.length; i++) { sumArea += c[i].getArea(); } return sumArea; } } public class Test34 { public static void main(String[] args) { int[] a = new int[2]; Circle8[] circleArr = new Circle8[2]; // Circle8[]은 데이터 타입이다! //Circle11[] circleArr = { new Circle11(10), new Circle11(10) }; 상기와 같음 circleArr[0] = new Circle8(10); circleArr[1] = new Circle8(10); // 상기 배열을 풀어서 설명 // Circle8 b = new Circle8(10); // Circle8 c = new Circle8(10); // // circleArr[0] = b; // Circle8 타입의 생성된 객체 // circleArr[1] = c; // Circle8 타입의 생성된 객체 double areas = Circle8.getArrArea(circleArr); System.out.println(areas); // 해당 넓이 출력 } }
[결과값] 628.3185307179587
[계산] //2. 로또번호를 담는 배열을 선언후 //로또 번호를 출력하시오.(단 중복 없이 출력하시오.) public class Test37 { public static void main(String[] args) { int[] lotto = new int[6]; for (int i = 0; i < lotto.length; i++) { lotto[i] = (int) (Math.random() * 45) + 1; for (int j = 0; j < i; j++) { if (lotto[i] == lotto[j]) { i--; } } } System.out.print("로또 번호: "); for (int i = 0; i < lotto.length; i++) { System.out.print(lotto[i] + " "); } } }
[결과값] 로또 번호: 28 30 41 9 37 44
배열 생성 : int[] arr = new int[3];
배열 생성 및 초기화1 : int[] arr = new int[] {1, 2, 3};
배열 생성 및 초기화2 : int[] arr = {1, 2, 3};
[계산] // Rectangle9[] recArr = new Rectangle9[2]; // recArr[0] = new Rectangle9(10, 20); // recArr[1] = new Rectangle9(10, 30); Rectangle9[] recArr = { new Rectangle9(10, 20), new Rectangle9(10, 30) }; // 상기와 같은 의미
[계산] // Circle8[] circleArr = new Circle8[2]; // Circle8[]은 데이터 타입이다! // circleArr[0] = new Circle8(10); // circleArr[1] = new Circle8(10); Circle11[] circleArr = { new Circle11(10), new Circle11(10) }; 상기와 같음
기본 자료형 배열(int,double등)은 모든 요소 0으로 초기화
인스턴스 배열(=참조변수 배열:String등)은 모든 요소 null로 초기화
int[] ar = new int[10];⇒0의 값이 10개 생성
값을 선언하지 않을 시의 초깃값
[계산] public class Test38 { public static void main(String[] args) { for (int i = 0; i < args.length; i++) { System.out.print(args[i] + ": "); System.out.println(args[i].length()); } } }
[결과값] milk: 4 coffee: 6
java Test38 milk coffee ⇒ String[] arr = new String[] {"milk", "coffee"}
[계산] public class EnhancedFor { public static void main(String[] args) { // 코드의 특징: 배열 요소의 순차적 접근 int[] ar = { 1, 2, 3, 4, 5 }; for (int i = 0; i < ar.length; i++) { System.out.print(ar[i]); } // 위 유형의 코드는 for-each문으로 다음과 같이 구성 가능 int[] ac = { 1, 2, 3, 4, 5 }; for (int e : ac) { System.out.print(e); } // 코드의 양이 줄고 배열의 길이와 요소에 신경 쓸 필요 없다. } }
[결과값] 1234512345
[계산] public class EnhancedFor { public static void main(String[] args) { int[] ar = { 1, 2, 3, 4, 5 }; // 배열 요소 전체 출력 for (int e : ar) { // read only 읽을 수만 있고, 값을 입력할 수는 없다. 입력하고 싶으면 for(int i=0・・・ 사용 System.out.print(e + " "); } System.out.println(); // 단순 줄 바꿈을 목적으로 int sum = 0; // 배열 요소의 전체 합 출력 for (int e : ar) { sum += e; } System.out.println("sum: " + sum); } }
[결과값] 1 2 3 4 5 sum: 15
[계산] public class EnhancedFor { public static void main(String[] args) { // int[] ar = { 1, 2, 3, 4, 5 }; String[] ar = { "AASDFDSAF", "ADFADF", new String("ABD") }; for (String str : ar) { System.out.print(str + " "); } System.out.println(); int sum = 0;
for (String str : ar) {
sum += str.length();
}
System.out.print("sum: " + sum);
}
}
>>```
[결과값]
AASDFDSAF ADFADF ABD
sum: 18
[계산] class Box1 { private int boxNum; private String conts; public Box1(int boxNum, String cont) { this.boxNum = boxNum; this.conts = cont; } public int getBoxNum() { return this.boxNum; } public String toString() { // Object에 toString이 있는데 거기까지 도달하지 못하도록 함수를 정의한 것. return boxNum + " " + conts; } } public class Test39 { public static void main(String[] args) { Box1[] ar = new Box1[3]; ar[0] = new Box1(101, "Coffee"); ar[1] = new Box1(101, "Computer"); ar[2] = new Box1(505, "Apple"); // 배열에서 번호가 505인 Box를 찾아 그 내용물을 출력하는 반복문 for (Box1 e : ar) { if (e.getBoxNum() == 505) { System.out.println(e); } } } }
[결과값] 505 Apple