[자바]변수_(새싹)

Kingyj·2024년 11월 21일

변수?

프로그래밍 언어에서 변수는 데이터(data)를 저장할 수 있는 메모리상의 공간을 의미한다. 변수에는 데이터 타입(정수, 실수, 문자, 문자열, 참/거짓 등)과 일치하는 단 하나의 값만 저장할 수 있다.
변수에는 기본형변수와 참조형변수가 있다.


기본형변수

코드_기본형변수

public class Main {
    public static void main(String[] args) {
        int age = 25;           // 정수형
        double height = 175.5;  // 실수형
        char grade = 'A';       // 문자형
        boolean isStudent = true; // 논리형

        System.out.println("나이: " + age);
        System.out.println("키: " + height);
        System.out.println("학점: " + grade);
        System.out.println("학생 여부: " + isStudent);
    }
}

출력

나이: 25: 175.5
학점: A
학생 여부: true

참조형변수

  • 객체를 가리킴

    • 참조형 변수는 실제 데이터가 저장된 곳(주소)을 저장하고, 데이터를 직접적으로 다루지 않아요.
  • 크기가 동일함

    • 모든 참조형 변수는 주소를 저장하므로 크기가 동일해요(32비트 JVM에서는 4바이트, 64비트 JVM에서는 8바이트).
  • 기본형과 다르게 초기값이 null

    • 참조형 변수를 선언만 하고 초기화하지 않으면 값이 null이에요. (null은 아무것도 참조하지 않음을 의미)
  1. 클래스 (Class)
    클래스로 만들어진 객체를 가리키는 변수.
    예: String, 사용자 정의 클래스 등.

코드_참조형변수 클래스 예시

String name = "Java"; // 문자열 객체를 가리킴
MyClass obj = new MyClass(); // 사용자가 만든 클래스의 객체를 가리킴
  1. 배열 (Array)
    동일한 타입의 데이터를 저장하는 집합을 가리키는 변수.

코드_참조형변수 배열 예시

int[] numbers = {1, 2, 3}; // 정수 배열 객체를 가리킴
String[] words = {"Hello", "World"}; // 문자열 배열을 가리킴
  1. 인터페이스 (Interface)
    인터페이스 타입도 참조형 변수로 사용할 수 있어요.
    실제 객체는 인터페이스를 구현한 클래스의 인스턴스입니다.

코드_참조형변수 인터페이스 예시

List<String> list = new ArrayList<>(); 
// List 인터페이스를 구현한 ArrayList 객체
  1. 기타 참조형 (Wrapper 클래스, Enum 등)
    Integer, Double 같은 기본형 데이터를 객체로 다룰 수 있는 Wrapper 클래스도 참조형.
    열거형(Enum)도 참조형의 일종.

코드_참조형변수 기타 참조형 예시

Integer num = 10; // 기본형 int의 Wrapper 클래스

코드_참조형변수

public class Main {
    public static void main(String[] args) {
        // 참조형 변수: 문자열 객체
        String greeting = "Hello, Java!";
        System.out.println(greeting); // 문자열 출력

        // 참조형 변수: 배열
        int[] numbers = {10, 20, 30};
        System.out.println(numbers[0]); // 배열의 첫 번째 값 출력

        // 참조형 변수: 사용자 정의 클래스
        Person person = new Person("Alice", 25);
        System.out.println(person.name + ", " + person.age); // 객체의 값 출력
    }
}

// 사용자 정의 클래스
class Person {
    String name;
    int age;

    // 생성자
    Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

출력

Hello, Java!
10
Alice, 25

0개의 댓글