프로그래밍/JAVA

JAVA - 배열의 선언과 생성(7) + String

개발자 덕구🐾 2021. 8. 26. 15:11
728x90

java에서는 C++의 배열 생성과 달리 'new' 키워드를 이용해 배열을 만든다!

 

 

 

 

 

1. 배열 

배열을 만들때 두가지의 과정을 거친다.

1. 선언

2. 생성

 

int는 기본자료형이지만 int 의 배열은 참조자료형이다. 

모든 배열은 참조 자료형이다!!

 

 

배열은 무조건 선언할 때 크기가 지정되어야만 한다.

이 단점을 보완하기 위해 자바에는 Collection이 존재한다. 

 

 

 

 

1. 선언은 배열을 다루기 위한 참조변수를 선언하는 것이다.

(참조변수는 주소가 저장되어있다.[배열의 첫주소])

2. new를 이용해 배열의 타입(ex. int) 와 길이를 지정해준다.  (실제 저장공간을 생성한다.)

int[] scores;     //1.배열의 선언
scores = new int[5]; //2. 배열의 생성

 

참고로 배열의 선언부에 붙는 대괄호[]는 int뒤에 붙여도 되고, 참조변수 뒤에 붙여도 된다.

 

int[] scores;

int scores[];

-> 둘다 가능하다!

 

 

+) 

new 없이 선언과 동시에 초기화 할수도있다.

int[] scores = {100,70,90,80};

 

 

배열의 길이를 구할 때는 배열의 이름.length를 이용한다. 

 

 

 

예제 코드 ) 

import java.util.Scanner;

public class Array1Demo {

	public static void main(String[] args) {
		
		Scanner in = new Scanner(System.in);
		
		int[] scores = new int[5];
		int sum = 0;
		
		for(int i=0;i<scores.length;i++) {
			scores[i] = in.nextInt();
		}
		for(int i=0;i<scores.length;i++) {
			sum += scores[i];
		}
		
		System.out.println("평균 = "+sum/5.0);
	}

}

 

int형 점수를 5개 입력받고, scores 배열에 저장한다.

그 합을 구해 변수 sum에 저장한다.

5로 나누어 평균을 구할수있다.

 

 

봐야할것

  • 숫자를 입력받을때 Scanner클래스를 이용해 만든 in객체의 매서드를 이용한다. -> in.nextInt();
  • 배열의 길이를 for문에서 돌릴때 size가 아닌 length를 이용 뒤에 ()가 없이 이용한다. [배열이름.length]
  • 배열은 한번 생성하면 길이를 변경할 수 없다. 

 

 

 


 

 

 

2. 이차원 배열  - 배열의 배열

 

int[][] scores = new int[3][5];

-> 3행 5열의 이차원 배열을 얻을 수 있다. 

 

 

 

생성시에 초기화하고 싶은 경우

int[][] scores = {
		     {100,30,26,76},
                    {98,57,87,87},
                    {87,35,96,100}
                  };

이렇게 3행 4열의 이차원 배열을 만들수있다.

new int[3][4]는 생략된다.

 

scores.length는 행의 개수 => 3이고

scores[0].length, scores[1].length, scores[2].length는 열의 개수 => 4이다. 

 

 

 

scores[0], scores[1], scores[2] 는 각각 참조변수이기 때문이다.

scores[0]은 scores[0][0], scores[0][1], scores[0][2], scores[0][3]의 참조변수로 주소가 담겨져있다.

 

 

 

즉, 이차원 배열은 '배열의 배열'  으로 구성되어있는 것이다.    

 

 

 

 

 


 

 

 

3. String

 

String은 참조 자료형이지만 특별하게 new를 사용하지 않고 ""를 사용하여 객체를 생성할 수 있다. 

String 클래스는 char 배열에 기능(메서드)를 추가한 것이다.

 

 

String 객체 (문자열)은 읽을 수 만 있을 뿐 내용을 변경할 수 없다 -!!

 

 

 

 

 

 


 

4. 참조 자료형

 

모든 참조 자료형은 초기화 하지 않으면 "null"이다. 

 

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

java - 객체 배열(9)  (0) 2021.08.27
Java - 동적배열[ArrayList](8)  (0) 2021.08.27
java - 문자열[==,!=,compareTo, equals](6)  (0) 2021.08.23
자바 - 정적멤버[static](5)  (0) 2021.08.21
자바 - this, this메서드(4)  (0) 2021.08.21