사이먼's 코딩노트

[Java] 객체지향 프로그램 본문

Java/Java

[Java] 객체지향 프로그램

simonpark817 2024. 1. 24. 19:08

[객체]

[객체가 필요한 이유]

  • 변수에는 오직 값 하나만 넣을 수 있다.
  • 프로그래밍을 하다보면 변수에 값을 여러개 넣을 필요가 있을 때가 있다.
  • 그래서 고안된 것이 객체이다.
  • 객체는 커피 캐리어에 비유할 수 있다.
  • 커피 캐리어에는 커피를 여러잔 담을 수 있고, 용도에 따라 종류가 여러가지 있다.
  • 프로그래밍을 할 때 상황에 따라 서로 다른 종류의 객체 여러개가 필요하다.
  • 객체를 일종의 제품으로 보았을 때 객체를 만들기 위해서는 설계도 즉, 클래스가 필요하다.
  • 객체는 너무 커서 변수에 담을 수 없다.
  • 클래스로는 객체도 만들 수 있고, 그 객체를 조종할 수 있는 리모콘도 만들 수 있으며 객체 리모콘을 담을 변수도 만들 수 있다.

 

[배열 객체]

package org.example;

//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
    public static void main(String[] args) {
        int a = 3;

        int[] arr = new int[3];
        arr[0] = 10;
        arr[1] = 20;
        arr[2] = 30;

        int[] arr2 = arr;
        arr2[1] = 200;

        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);

        System.out.println(arr2[1]);
    }
}
  • arr은 하나의 변수이기 때문에 오직 하나의 값을 넣을 수 있다.
  • 객체는 일종의 폴더라고 생각하면 좋다.
  • int[] arr = new int[3] 에서 new int[3]이 배열 객체이다.
  • 배열 객체의 자료형 type은 필요에 따라 int, double, char, boolean 등이 될 수 있다.
  • int[ ] arr = new int[3]; 에서 new int[3]은 하나의 객체이다. new는 객체 생성을 의미하고 해당 배열 객체에는 정수 type으로만 저장이 가능하고 공간이 3개가 있다는 뜻이다.
  • 생성된 객체의 개수를 세고 싶을 때는 new의 개수를 보면된다.
  • 위 내용을 조금 간단하게 설명하면 변수 arr는 new int[3] 객체와 연결된 리모콘이 있다고 생각하면된다.
  • 새로운 변수 arr2에 arr 배열 객체를 넣으면 arr2는 arr와 동일한 배열 객체가 된다.
  • 위 코드를 실행했을 때 출력문으로는 arr[0]에 들어간 10, arr[1]에 들어간 20, arr[2]에 들어간 30과 arr2[1]에 들어간 20이 출력된다.

 

[서로 다른 type의 배열 객체 생성]

package org.example;

// arr1에 [true, true, false]
// arr2에 [3.14, 10.2, 2.5]
// arr3에 [1~10]
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
    public static void main(String[] args) {

//      1. 배열 하나씩 생성해서 넣는 방법
        boolean[] arr1 = new boolean[3];

        arr1[0] = true;
        arr1[1] = true;
        arr1[2] = false;

        System.out.println(arr1[0]);
        System.out.println(arr1[1]);
        System.out.println(arr1[2]);

//      배열 길이 확인
        System.out.println(arr1.length);


//      2. 한 번에 배열 값을 넣는 방법
        double[] arr2 = {3.14, 10.2, 2.5};
        System.out.println(arr2[0]);
        System.out.println(arr2[1]);
        System.out.println(arr2[2]);


//      3. 반복문을 사용한 배열 값 넣는 방법
        int[] arr3 = new int[10];
        for (int i = 0; i < 10; i++) {
            arr3[i] = i + 1;
        }
        for (int i = 0; i < arr3.length; i++) {
            System.out.println(arr3[i]);
        }
    }
}
  • 위 코드는 각각 다른 type의 배열 객체를 생성하여 값을 저장하고 출력하는 코드이다.
  • 먼저 배열 객체 변수 arr1를 생성하여 각각 배열 공간에 논리값(true와 false)을 저장하는 방법이 제시되어 있다.
  • 논리값을 쓰기위해서는 boolean이라는 type을 사용해야한다.
  • 두번째로 arr2 객체 생성과 함께 한 번에 값을 넣는 방법이 제시되어 있다.
  • 세번째는 배열 객체 변수 arr3를 생성하여 배열의 길이가 길어질 수록 일일이 값을 넣어주기 힘들기 때문에 반복문을 사용하여 값을 넣는 방법이 제시되어 있다.
  • 위 코드에서 나오는 length는 길이를 의미하는데 예를 들어 현재 arr1의 배열 공간은 총 3개가 있고 출력문을 통해 arr1.length를 출력해보면 3이라는 숫자가 출력되게 된다.

 

[변형된 for문]

package org.example;

//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
    public static void main(String[] args) {

        int[] arr = new int[10];

        for(int i = 0; i < 10; i++) {
            arr[i] += i;
        }

        System.out.println("== for문 ==");
        for(int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }

        System.out.println("== 변형된 for문 ==");
        for(int n : arr) {
            System.out.println(n);
        }
    }
}
  • 위 코드는 배열 객체 변수 arr를 생성하고 for문을 통해 각 배열 공간에 값을 넣어주고 for문을 통해 각 배열 공간에 들어간 값을 출력하는 출력문이다.
  • 첫번째 for문은 우리가 흔하게 접하는 for문의 형식으로 시작점(int i=0;), 조건부(i<arr.length), 보폭(i++) 3가지로 구분되어 문법이 구성되어있다.
  • 두번째 for문은 콜론(:)을 사용하여 다른 조건, 증감보폭 필요없이 문법이 구성되어 있다.
반응형

'Java > Java' 카테고리의 다른 글

[Java] 클래스와 메서드(2)  (0) 2024.02.02
[Java] 클래스와 메서드(1)  (2) 2024.01.29
[Java] 반복문(for, while)  (0) 2024.01.22
[Java] 조건문(if, else if, else)  (0) 2024.01.19
[Java] 변수 / 연산자  (0) 2024.01.17