Java기반 Back-End 개발자 & 정보처리산업기사 과정 강의 8일차 정리

misung·2021년 3월 25일
0

배열

2차원 배열

자료형 [][] 배열명 = new 자료형 [행 크기][열 크기];

int[][] arr2D = new int[2][3];


[0][0] [0][1] [0][2]
[1][0] [1][1] [1][2]

2차원 배열 실습하기

예시 1. 3x3 사이즈의 배열을 선언하고, 0부터 수를 차례로 할당한 뒤 출력해보자.

// 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

예시 2. 서로 크기가 다른 2행의 배열을 선언해보자.

  1. 0번째 행 은, 3열 크기로 선언한다.
  2. 1번째 행 은, 4열 크기로 선언한다.
  3. 2차원 배열의 요소들을 선언과 동시에 할당한다.
// 열의 수가 서로 다른 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();
}

예시 3. 아래와 같은 지시사항으로 배열을 선언해보자.

  1. 2차원 배열을 선언하되, 3행만 선언한다.
  2. 은 각각 3, 4, 2열로 선언한다.
  3. 배열에 순서대로 1부터 차례대로 요소를 할당한다.
  4. 저장된 값을 출력해본다.
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 두 수의 합의 결과를 함수 외부로 전달해준다.


Phone, PhoneMain 클래스를 가지고 실습하기

Phone Class

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("메시지를 보낸다.");
	}
}

PhoneMain Class

// 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
전화를 겁니다.
메시지를 보낸다.


Calculator, CalculatorMain 클래스를 가지고 실습하기

Calculator

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;
	}

}

CalculatorMain

// 객체를 생성하면서, 생성자가 호출됨.
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

0개의 댓글

관련 채용 정보