JAVA/JAVA 기초

JAVA 자료형 및 변수

임베디드 친구 2024. 9. 23. 14:10
728x90
반응형

JAVA 자료형 및 변수

1. 자료형

자료형이란 변수가 어떤 종류의 데이터를 저장할 수 있는지를 나타내는 역할을 합니다. 변수는 특정 데이터 유형을 사용해야 하며, Java에서는 크게 두 가지 자료형이 존재합니다: 기본 데이터 유형(Primitive Data Types)과 참조 데이터 유형(Reference Data Types).

2. 변수

변수는 값이 저장되는 메모리 공간의 이름이라고 이해하면 됩니다. 변수는 선언할 때 자료형을 명시해야 하며, 이는 변수가 저장할 수 있는 값의 종류를 결정합니다.

예시: int i = 0;
여기에서 'int'는 자료형에 해당하고, 'i'는 변수(변수 이름), '0'은 할당된 값입니다.

변수 선언 시 주의사항

  • 변수 이름은 영문자, 숫자, 밑줄(_), 달러 기호($)를 사용할 수 있으며, 영문자로 시작해야 합니다.
  • Java에서 예약어(예: int, long, double, if, while, true, false)는 변수 이름으로 사용할 수 없습니다.
  • 변수 이름에는 그 역할이나 내용을 포함하는 것이 좋습니다.
  • 여러 단어로 이루어진 변수 이름은 첫 단어를 소문자로 시작하고, 이후 단어의 첫 글자를 대문자로 쓰는 카멜 케이스(Camel Case) 스타일을 따르는 것이 좋습니다. 예: mExtraVariable.
  • 상수의 경우 대문자밑줄(_)만 사용하는 것을 권장합니다. 예: static final int MAX_SIZE = 10;.

3. Java의 자료형

Java에서는 기본 데이터 유형(Primitive Data Types)과 참조 데이터 유형(Reference Data Types) 두 가지 데이터 타입이 있습니다.

3.1 기본 데이터 유형 (Primitive Data Types)

Java에서 기본적인 변수 선언에 사용되며, 각 자료형은 메모리에서 차지하는 크기와 표현할 수 있는 값의 범위가 다릅니다.

정수형 (Integer Types)

  • byte: 8비트 부호 있는 정수, 범위: -128 ~ 127
  • short: 16비트 부호 있는 정수, 범위: -32,768 ~ 32,767
  • int: 32비트 부호 있는 정수, 범위: -2^31 ~ 2^31-1
  • long: 64비트 부호 있는 정수, 범위: -2^63 ~ 2^63-1

실수형 (Floating-Point Types)

  • float: 32비트 부동 소수점, 범위: 대략 ±3.4E38 (유효자릿수: 7자리)
  • double: 64비트 부동 소수점, 범위: 대략 ±1.7E308 (유효자릿수: 15자리)

문자형 (Character Type)

  • char: 16비트 유니코드 문자, 범위: \u0000 ~ \uffff

논리형 (Boolean Type)

  • boolean: 참(true) 또는 거짓(false)을 나타내는 논리 값

3.2 참조 데이터 유형 (Reference Data Types)

참조 데이터 유형은 객체를 참조하는 데 사용됩니다. Java에서 기본 자료형이 아닌 모든 데이터 타입은 참조 자료형입니다. 예를 들어, 클래스, 배열, 열거형 등이 있습니다.

클래스 (Class)

클래스는 객체를 생성하기 위한 틀이며, 클래스의 인스턴스(객체)를 변수에 할당할 수 있습니다.

class ExClass {
    // 클래스 멤버들...
}

ExClass exObj = new ExClass(); // 객체 생성 및 할당

인터페이스 (Interface)

인터페이스는 추상 메서드와 상수의 집합이며, 이를 구현한 클래스에서 메서드를 정의하여 사용할 수 있습니다.

interface ExInterface {
    void exMethod();
}

class ExClass implements ExInterface {
    public void exMethod() {
        // 구현
    }
}

배열 (Array)

같은 자료형의 여러 값을 저장할 수 있는 자료 구조입니다.

int[] integers = {10, 20, 30}; // 정수형 배열
String[] days = {"monday", "tuesday"}; // 문자열 배열

열거형 (Enumeration)

열거형은 상수들의 집합을 정의하는 데이터 유형입니다.

enum Weekdays {SUNDAY, MONDAY, TUESDAY, WEDNESDAY}
Weekdays today = Weekdays.MONDAY;

기타 참조 데이터 유형

  • String: 문자열을 나타내는 클래스

    String name = "JavaGuide";
  • Date, ArrayList, HashMap: 각각 날짜, 동적 배열, 키-값 쌍의 자료 구조를 제공하는 클래스

    Date currentDate = new Date();
    ArrayList<String> stringList = new ArrayList<>();
    HashMap<Integer, String> map = new HashMap<>();

4. Java 접근 제어자 (Access Modifiers)

Java에서 접근 제어자는 클래스, 멤버 변수, 메서드 등에 대한 접근 권한을 제어하기 위해 사용됩니다. 이를 통해 클래스 외부로부터 내부 데이터를 보호할 수 있습니다.

  • public: 모든 패키지에서 접근 가능

  • private: 같은 클래스 내부에서만 접근 가능

  • protected: 같은 패키지 또는 상속받은 하위 클래스에서 접근 가능

  • default (package-private): 같은 패키지 내에서만 접근 가능

    public class MyClass {
      public int publicVar;        // 공용 변수
      private int privateVar;      // 개인 변수
      protected int protectedVar;  // 보호 변수
      int defaultVar;              // 패키지 전용 변수 (default 접근 제어자)
    }

5. 변수의 유형

Java에서 변수는 크게 세 가지로 나눌 수 있습니다.

5.1 지역 변수(Local Variables)

특정 블록(메서드 또는 제어문) 내에서만 유효하며, 블록이 종료되면 메모리에서 사라집니다.

public void method() {
    int localVar = 10; // 지역 변수
}

5.2 인스턴스 변수(Instance Variables)

클래스 내부에서 선언되며, 각 객체에 독립적으로 할당됩니다.

public class MyClass {
    private int instanceVar; // 인스턴스 변수
}

5.3 클래스 변수(Class Variables)

static 키워드로 선언된 변수이며, 클래스에 속하는 고정된 값입니다. 모든 객체가 공유합니다.

public class MyClass {
    private static int classVar; // 클래스 변수
}

6. Java 변수의 초기화

변수를 사용할 때는 반드시 초기화가 필요합니다. 변수 초기화 방식에는 몇 가지가 있습니다.

6.1 명시적 초기화

변수 선언과 동시에 초기화하는 방법입니다.

int number = 100;

6.2 생성자를 이용한 초기화

객체가 생성될 때 생성자를 통해 변수를 초기화할 수 있습니다.

public class MyClass {
    int number;

    public MyClass() {
        number = 100;
    }
}

6.3 메서드를 이용한 초기화

필요한 시점에 메서드를 호출하여 변수를 초기화할 수 있습니다.

public class MyClass {
    int number;

    public void initialize() {
        number = 100;
    }
}

6.4 인스턴스 블록을 이용한 초기화

인스턴스 블록 내에서 변수를 초기화할 수 있습니다.

public class MyClass {
    int number;

    {
        number = 100;
    }
}

6.5 정적 블록을 이용한 초기화

static 변수는 정적 블록을 통해 초기화할 수 있으며, 클래스가 처음 로드될 때 한 번만 실행됩니다.

public class MyClass {
    static int number;

    static {
        number = 100;
    }
}

7. 결론

Java의 자료형, 변수 선언, 초기화에 대해 알아보았습니다. 이 내용은 Java 프로그래밍의 기초로, 앞으로의 학습 과정에서 매우 자주 사용되므로 자연스럽게 익숙해질 것입니다. 변수 선언 시 자료형을 명시하고, 초기화하지 않으면 컴파일러에서 오류를 발생시킵니다. 이번 글을 통해 Java의 자료형과 변수 활용 방법을 충분히 이해하시길 바랍니다.

728x90
반응형

'JAVA > JAVA 기초' 카테고리의 다른 글

Java에서 조건문(if, switch) 다루기  (0) 2024.09.26
Java 연산자 기초와 사용법  (0) 2024.09.25
Java에서 배열(Array) 사용하기  (0) 2024.09.24
JAVA 개발 환경 설치하기  (0) 2024.09.22
Java 언어  (0) 2024.09.21