배열
- 가변데이터는 배열에 저장하면 안 된다.
1. 배열의 선언
int[] arr;
2. 배열의 생성
arr = new int[3];
3. 배열의 초기화
arr[0] = new String("java");
=> 생성할 때 정의한 크기만큼 각각의 데이터를 저장할 수 있는 공간이 만들어진다.
이를 요소라고 하고 각 요소에는 index가 부여된다.
배열변수[index]=배열변수에 저장할 값
- 배열의 요소에는 초기값을 주지 않아도 자동으로 초기값이할당된다.
int(정수) = 0
double(실수) - 0.0
boolean - false
참조형 = null
4. 배열의 선언과 생성을 동시에
int[] arr = new int[10];
5. 배열의 선언, 생성, 초기화를 한 번에
int[] arr = {10, 20, 30, 40, 50};
//자바답게
int[] arr2 = new int[] {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
6. 배열의 입력과 출력을 직접 다 하지 않고 for문을 이용해 출력하기
package array; // 1~45까지의 랜덤한 숫자를 배열에 담아 출력하기
import java.util.Random;
public class ArryExam02 {
public static void main(String[] args) { // (*45)+1
Random rand = new Random();
int[] array = new int[5];
for (int i = 0; i < array.length; i++) {
array[i] = rand.nextInt(45)+1;
}
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
7. 메소드 이용해 반복되는 배열 출력하기
int[] ia = new int[] { 3, 7, 1, 8, 10, 2, 15, 2, 10 }; // 원본
int[] ib = new int[] { 1, 2, 3, 4, 5 };
int z = 0;
int h = 0;
for (int i = 0; i < ia.length; i++) { // ia
if (ia[i] % 2 == 0) {
z += ia[i];
} else {
h += ia[i];
}
}
System.out.println("( 배열 ia )");
System.out.println("홀수의 합 : " + h);
System.out.println("짝수의 합 : " + z);
z = 0;
h = 0;
for (int i = 0; i < ib.length; i++) { // ib
if (ib[i] % 2 == 0) {
z += ib[i];
} else {
h += ib[i];
}
}
System.out.println("( 배열 ib )");
System.out.println("홀수의 합 : " + h);
System.out.println("짝수의 합 : " + z);
--------메소드 적용한 코드---------
package array;
public class ArrayExam04 {
public static void main(String[] args) {
free(ia, "name");
free(ib, "name");
}
// main메소드 밖에 적기
public static void free(int[] arr, String name) { // 배열의 이름도 다르니 name매개변수 만들기
System.out.println("( 배열 "+name+" )");
int z = 0;
int h = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 2 == 0) {
z += arr[i];
} else {
h += arr[i];
}
}
System.out.println("홀수의 합 : " + h);
System.out.println("짝수의 합 : " + z);
}
}
7-2. 메소드 이용해 반복되는 배열 출력하기
package array;
public class RefArryTest {
public static void main(String[] args) {
Customer obj1 = new Customer("kim", "1234", "김하늘");
Customer obj2 = new Customer("fe", "1234", "페데리코");
Customer obj3 = new Customer("aaa", "1234", "아델");
Customer obj4 = new Customer("silian", "1234", "실리안");
System.out.println("*********고객리스트*********");
System.out.println("아이디:"+obj1.getId()+" 비밀번호:"+obj1.getPass()+" 이름"+obj1.getName());
System.out.println("아이디:"+obj2.getId()+" 비밀번호:"+obj2.getPass()+" 이름"+obj2.getName());
System.out.println("아이디:"+obj3.getId()+" 비밀번호:"+obj3.getPass()+" 이름"+obj3.getName());
System.out.println("아이디:"+obj4.getId()+" 비밀번호:"+obj4.getPass()+" 이름"+obj4.getName());
---------------------------------------------------적용--------------------------------------------------------
System.out.println("*********고객리스트 배열*********");
Customer[] customerList = new Customer[5];
customerList[0] = obj1;
customerList[1] = obj2;
customerList[2] = obj3;
customerList[3] = obj4;
customerList[4] = new Customer("la", "1234", "라우리엘");
for (int i = 0; i < customerList.length; i++) {
System.out.println("아이디:"+customerList[i].getId()
+" 비밀번호:"+customerList[i].getPass()+" 이름"+customerList[i].getName());
}
}
}
클래스 메소드(static메소드)와 인스턴스 메소드
- 인스턴스 메소드 : 인스턴스 변수와 관련된 작업을 하는, 즉 메소드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메소드
- 클래스 메소드(static메소드) : 메소드 앞에 static이 븥어 있으면 클래스 메소드이다. 인스턴스와 관계없는 메소드를 클래스 메소드로 정의한다.
* 변하지 않는 값 -> 상수는 static을 붙여준다.
- 클래스 메소드는 인스턴스 변수를 사용할 수 없다(그 반대는 가능함)
'JAVA' 카테고리의 다른 글
2022-10-17 객체지향언어 - 다형성. 추상클래스, 제어자 fanal (0) | 2022.10.18 |
---|---|
2022-10-14 객체지향언어 - 생성자, 상속 (0) | 2022.10.17 |
2022-10-11~12 객체지향언어 - 메소드 작성방법, 호출, 오버로딩, 캡슐화, 생성자 +활용 (0) | 2022.10.12 |
2022-10-07 if, for, while,/do~while, break/continue, Frame, 객체지향언어, 지역변수/전역변수 (0) | 2022.10.08 |
2022-10-06 java API, 리터럴, 데이터타입 (0) | 2022.10.08 |
댓글