자료형
[][]
배열명
= new
자료형
[행 크기][열 크기]
;
int[][] arr2D = new int[2][3];
→
[0][0] [0][1] [0][2]
[1][0] [1][1] [1][2]
// 3행 3열의 int타입 배열 선언 int[][] arr2D = new int[3][3]; int num = 0; // 차례로 1부터 9까지 할당 for (int i = 0; i < arr2D.length; i++) { for (int j = 0; j < arr2D[i].length; j++) { arr2D[i][j] = ++num; } } // 저장된 요소를 출력 for (int i = 0; i < arr2D.length; i++) { for (int j = 0; j < arr2D[i].length; j++) { System.out.print(arr2D[i][j] + " "); } System.out.println(); }
→
1 2 3
4 5 6
7 8 9
0번째 행
은, 3열
크기로 선언한다.1번째 행
은, 4열
크기로 선언한다.// 열의 수가 서로 다른 2행의 배열 int[][] arr2D = {{ 1, 2, 3 }, { 4, 5, 6, 7 } }; for (int i = 0; i < arr2D.length; i++) { // 각 행의 열의 갯수를 불러오므로, 열의 수가 달라도 출력이 가능하다. for (int j = 0; j < arr2D[i].length; j++) { System.out.print(arr2D[i][j] + " "); } System.out.println(); }
2차원 배열
을 선언하되, 3행
만 선언한다.열
은 각각 3, 4, 2
열로 선언한다.배열
에 순서대로 1부터 차례대로 요소를 할당한다.출력
해본다.int[][] arr2D = new int[3][]; int num = 0; // 행의 사이즈를 미리 정해주었으므로 행 크기는 출력이 잘 됨. // System.out.println(arr2D.length); // 아직 열들의 사이즈가 정해지지 않았기 때문에 Exception 발생. // System.out.println(arr2D[0].length); arr2D[0] = new int[3]; arr2D[1] = new int[4]; arr2D[2] = new int[2]; for (int i = 0; i < arr2D.length; i++) { for (int j = 0; j < arr2D[i].length; j++) { arr2D[i][j] = ++num; } } for (int i = 0; i < arr2D.length; i++) { for (int j = 0; j < arr2D[i].length; j++) { System.out.print(arr2D[i][j] + " "); } System.out.println(); }
→
1 2 3
4 5 6 7
8 9
class Phone { String name; String color; int productCode; }
name
,color
,productCode
등이 멤버 변수이다.
int
, String
= 멤버 변수의 자료형을 나타낸다.
name
, color
, productCode
= 멤버 변수의 변수이름을 나타낸다. 각각 이름
, 색상
, 코드번호
의 속성
을 갖는다.
멤버 변수는 속성에 따라 알맞은 자료형으로 선언해 주어야 한다.
public class Phone { ... public Phone () { // 생성자 } }
public Phone ()
이 부분이 생성자이다.
생성자는 따로 정의하지 않아도, 컴파일러에서 자동으로 생성자를 만들어 준다. 이를 디폴트 생성자
라 한다.
필요에 의해 생성자를 생성하는 경우, 생성자 내에 코드를 직접 구현할 수 있다.
메소드는 함수
의 한 종류로써, 함수
는 입력값
과 결과값
을 갖는 하나의 기능을 수행하는 일련의 코드
이다.
함수는 함수 이름
, 매개 변수
, return 예약어
, 함수 반환형
등을 갖는다.
int
sum
(int num1
, int num2
) { return
num1 + num2; }
int
= 반환형
함수 내에서 가공된 변수를 정수형 int
타입으로 반환해주겠다는 뜻이다.
sum
= 함수 이름
함수의 이름이다. 여기서는 두 매개 변수를 더한 값을 구하는 클래스라는 의미에서, sum 이라는 이름을 붙였다.
num1
, num2
= 매개 변수
함수 내부로 전달되는 정수형 int 매개 변수들이다.
return
= return 예약어
return 예약어를 통해 return 뒤에 붙은 num1 + num2 두 수의 합의 결과를 함수 외부로 전달해준다.
public class Phone { /* * 클래스 개념 * 1. 필드 (field) * : 데이터를 저장하는 공간 (변수와 같은 개념) */ String color; String company; int size; /* * 2. 생성자 (Constructor) * : 객체를 만들 때 따라야 하는 규칙 * : 객체를 생성할 때 필요한 매개 변수를 규정 * : 생성자의 이름은 클래스의 이름과 같게 한다. */ public Phone() { } /* * 3. 메소드 (Method) * : 기능을 정의하는 블럭 * : 매개 변수가 있을 수도 있고, 없을 수도 있다. * : 호출되는 정의되어 있는 기능을 수행한다. */ public void call() { System.out.println("전화를 겁니다."); } public void sendMsg() { System.out.println("메시지를 보낸다."); } }
// Phone 클래스의 인스턴스인, ph 객체 생성 Phone ph1 = new Phone(); Phone ph2 = new Phone(); // ph객체의 color필드에 white 문자열 저장. ph1.color = "white"; System.out.println(ph1.color); // ph 객체의 call() 메소드 호출 ph1.call(); // ph 객체의 sendMsg() 메소드 호출 ph1.sendMsg();
→
white
전화를 겁니다.
메시지를 보낸다.
public class Calculator { // 생성자를 굳이 선언하지 않았을 경우라도, 생성자는 알아서 생성된다. public Calculator() { System.out.println("Calculator 생성자 호출"); } /* 두 개의 숫자를 더한 결과를 보여주는 기능 * 반환형은 void로, 반환하는 것이 없다. * 매개 변수는 int형 변수 2개를 받고 있다. */ public void plus(int num1, int num2) { int sum = num1 + num2; System.out.println("sum : " + sum); } /* * 두 개의 숫자를 뺀 결과를 반환해주는 메소드 */ public int minus(int num1, int num2) { int result = num1 - num2; // num1에서 num2를 뺀 결과를 반환 return result; } /* * 곱셈 기능 : int 타입 두 개를 매개변수로 하는 메소드 * 반환형은 void로 하고, 곱셈 결과를 출력하는 기능을 갖게 한다. */ public void multiple(int num1, int num2) { int result = num1 * num2; System.out.println("곱셈 결과 : " + result); } /* * 나눗셈 기능 : int 타입 변수 두 개를 매개변수로 하는 * return값 (int) 값이 있는 메소드 * 나눗셈 결과를 return 해주는 기능을 갖게 한다. */ public int divide(int num1, int num2) { int result = num1 / num2; return result; } }
// 객체를 생성하면서, 생성자가 호출됨. Calculator calc = new Calculator(); // 매개 변수로 10, 20을 넘겨줌 calc.plus(10, 20); // minus 메소드로부터 반환받은 값을 result에 대입 int result = calc.minus(20, 10); System.out.println("minus 메소드 결과 : " + result);
→
Calculator 생성자 호출
sum : 30
minus 메소드 결과 : 10