Java TIL(2)

21068 단어 JavaTILJava

📚 하루에 한번씩 배운 것과 지식을 정리하려고 쓰는 글

📗 Java 기초문법

📌 배열이란?

인덱스를 이용해서 자료형이 같은 데이터를 관리하는 것이다.

// 배열 선언 후 초기화
int[] arr1 = new int[5];
arr1[0] = 100;
arr1[1] = 200;
arr1[2] = 300;
arr1[3] = 400;
arr1[4] = 500;

// 배열 선언과 초기화를 동시에
int[] arr2 = {10, 20, 30, 40, 50};

📌 배열의 기본 속성

기본 자료형 데이터를 담고 있는 변수와 달리 배열 변수는 배열 데이터의 주소를 담고 있다.

// 배열 기본속성
int[] arrAtt1 = {10, 20, 30, 40, 50, 60};
int[] arrAtt2 = null;
int[] arrAtt3 = null;

// 배열 길이
System.out.println("arrAtt1.length : " + arrAtt1.length);

// 배열 요소 출력
System.out.println("arrAtt1 : " + Arrays.toString(arrAtt1));

// 배열 요소 복사
arrAtt3 = Arrays.copyOf(arrAtt1, arrAtt1.length);
System.out.println("arrAtt3 : " + Arrays.toString(arrAtt3);

// 배열 레퍼런스
arrAtt2 = arrAtt1;
System.out.println("arrAtt1 : " + arrAtt1);
System.out.println("arrAtt2 : " + arrAtt2);
System.out.println("arrAtt3 : " + arrAtt3);

/* 결과
arrAtt1.length : 6
arrAtt1 : [10, 20, 30, 40, 50, 60]
arrAtt3 : [10, 20, 30, 40, 50, 60]
arrAtt1 : [I@4554617c
arrAtt2 : [I@4554617c
arrAtt3 : [I@74a14582
*/

💡 배열1과 배열3의 주소는 요소의 값만 복사했을 뿐이므로 각자 다르다. 배열1과 배열2가 담은 주소는 같은 주소다. 같은 곳을 가르키고 있음.

📌 다차원 배열

배열 안에 또 다른 배열이 존재한다.

// 다차원 배열
int[][] arrMul = new int[3][2];
arrMul[0][0] = 10;
arrMul[0][1] = 100;
arrMul[1][0] = 20;
arrMul[1][1] = 200;
arrMul[2][0] = 30;
arrMul[2][1] = 300;

// 출력 후 결과
[10, 100]
[20, 200]
[30, 300]

📌 조건문 - switch 문

비교대상이 되는 결과값과 선택사항이 많을 경우 주로 사용한다.

// switch문
System.out.print("점수를 입력하세요. : ")Scanner inputNum = new Scanner(System.in);
int score = inputNum.nextInt();

switch (score) {
case 100:
case 90:
System.out.println("수");
break;

case 80:
System.out.println("우");
break;

case 70:
System.out.println("미");
break;

default:
System.out.println("try again!!");
break;
}

inputNum.close();

💡Scanner(System.in) 입력받은 뒤에 close()해주어야 함


📗 Java 객체

📌 객체 지향 프로그래밍이란?

- 객체란 ?
세상에 존재하는 모든 것을 뜻하며, 프로그래밍에서 속성과 기능을 가지는 프로그램 단위이다.
- 클래스란 ?
객체를 생성하기 위한 툴로 모든 객체는 클래스로부터 생성된다.
- 클래스 구성요소
클래스는 속성(멤버 변수)와 기능(메서드)로 구성된다.
ex) 자전거
속성(멤버 변수) : 안장, 핸들, 바구니, 기어, 페달, 바퀴
기능(메서드) : 기어 변속, 가속, 브레이크

📌 클래스 제작과 객체 생성

📎 클래스는 멤버 변수(속성), 메서드(기능), 생성자 등으로 구성된다.

public class Grandeur {
//클래스 이름 : 일반적으로 첫 글자는 대문자로 한다.
    public String color;
    public String gear;
    public int price;
    // 멤버 변수(속성)
    public Grandeur() {
    	System.out.println("Grandeur constructor");
    }
    public Grandeur(String c, int p) {
    	System.out.println("Grandeur constructor");
        color = c;
        price = p;
    }
    // 생성자 : 클래스에서 객체를 생성할 때 가장 먼저 호출된다.
    public String run() {
    	System.out.println("--run--");
        return "Hello";
    }
    // 메서드(기능), 반환값 Stirng
    public void stop() {
    	System.out.println("--stop--");
    }
    // 메서드(기능)
}

📎 객체 생성 : 클래스로부터 'new'를 이용해 객체 생성

Grandeur myCar1 = new Grandeur();
myCar1.color = "red";
myCar1.gear = "auto";
myCar1.price = 30000000;

myCar1.run();
myCar1.stop();
myCar1.info();

📌 메서드

오버로딩 (중복 메서드)
이름은 같고, 매개변수의 개수 또는 타입이 다른 메서드를 만들 수 있다.

접근자
private : 외부에선 사용할 수 없고 객체 내에선 사용할 수 있다.
public : 외부에서도 호출 가능.

좋은 웹페이지 즐겨찾기