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의 자료형과 변수 활용 방법을 충분히 이해하시길 바랍니다.
'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 |