변수란?
자바에서 변수란 프로그램에서 데이터를 저장하고 처리하는데 사용되는 식별자입니다. 간단히 말하면, 변수는 값을 담는 그릇이라고 할 수 있습니다. 자바에서 변수는 데이터의 유형에 따라 기본형 타입(Primitive Data Types)과 참조형 타입(Reference Data Types)으로 나뉩니다.
변수의 데이터 타입
기본형 타입 (Primitive Data Types)
기본형 타입은 간단한 데이터를 저장하는 데 사용되며, 이러한 자료형은 메모리에서 고정된 크기를 차지합니다. 자바에서는 다양한 기본형 타입이 제공되며, 이들은 크게 정수, 실수, 문자, 논리 등의 유형으로 나뉩니다.
- 정수형 (Integer Types):
- byte: 8비트 부호 있는 정수를 표현합니다. -128부터 127까지의 값을 가집니다.
- short: 16비트 부호 있는 정수를 표현합니다. 대략 -32,768부터 32,767까지의 값을 가집니다.
- int: 32비트 부호 있는 정수를 표현합니다. 대략 -2,147,483,648부터 2,147,483,647까지의 값을 가집니다.
- long: 64비트 부호 있는 정수를 표현합니다. 대략 -9,223,372,036,854,775,808부터 9,223,372,036,854,775,807까지의 값을 가집니다.
- 실수형 (Floating-Point Types):
- float: 32비트 부동 소수점을 표현합니다. 대략 -3.4E38에서 3.4E38까지의 범위를 가집니다.
- double: 64비트 부동 소수점을 표현합니다. 대략 -1.7E308에서 1.7E308까지의 범위를 가집니다.
- 문자형 (Character Type):
- char: 16비트 유니코드 문자를 표현합니다. 유니코드 기준으로 모든 문자를 표현할 수 있습니다.
- 논리형 (Boolean Type):
- boolean: 논리값인 true 또는 false를 표현합니다. 주로 조건문과 논리 연산에 사용됩니다.
참조형 타입 (Reference Data Types)
참조형 타입은 객체의 주소를 저장하거나 객체에 대한 참조를 담는 데 사용됩니다. 이들은 기본형 타입과 달리 실제 데이터가 아닌 참조만을 저장하며, 객체 지향 프로그래밍에서 중요한 역할을 합니다.
- 클래스 (Class):
- 사용자가 직접 정의한 데이터 타입. 객체를 생성하기 위한 설계도 역할을 합니다.
- 인터페이스 (Interface):
- 메소드의 집합을 정의한 추상 데이터 타입. 클래스가 여러 인터페이스를 구현할 수 있습니다.
- 배열 (Array):
- 동일한 자료형의 데이터를 순서대로 저장하는 자료구조.
- 열거형 (Enum):
- 서로 연관된 상수들의 집합. 주로 제한된 값 중에서 선택하는 경우에 사용됩니다.
- 기타 참조형 타입 (Other Reference Types):
- 자바에서 제공하는 여러 클래스와 인터페이스들도 참조형 타입에 속합니다.
- 예) 문자열 클래스 String
기본형 타입 예제
정수형 (Integer Types)
byte (바이트)
- 8비트 부호 있는 정수를 나타냅니다.
- 범위: -128부터 127까지의 값을 가집니다.
- 주로 작은 범위의 정수를 표현할 때 사용됩니다.
byte myByte = 100;
Javashort (숏)
- 16비트 부호 있는 정수를 나타냅니다.
- 범위: -32,768부터 32,767까지의 값을 가집니다.
- byte보다 큰 범위를 표현할 수 있습니다.
short myShort = 1000;
Javaint (인트)
- 32비트 부호 있는 정수를 나타냅니다.
- 범위: -2,147,483,648부터 2,147,483,647까지의 값을 가집니다.
- 대부분의 정수 값은 int로 처리됩니다.
int myInt = 1000000;
Javalong (롱)
- 64비트 부호 있는 정수를 나타냅니다.
- 범위: -9,223,372,036,854,775,808부터 9,223,372,036,854,775,807까지의 값을 가집니다.
- 큰 범위의 정수를 저장할 때 사용됩니다.
long myLong = 1000000000000L; // 끝에 'L'을 붙여야 합니다.
Java실수형 (Floating-Point Types)
float (플로트)
- 32비트 부동 소수점을 나타냅니다.
- 대략 -3.4E38에서 3.4E38까지의 범위를 가집니다.
- 유효 숫자(가수)는 약 7자리입니다.
- 예를 들어, float myFloat = 3.14f;와 같이 사용합니다. (끝에
f
를 붙여야 합니다.)
float myFloat = 3.14f;
Javadouble (더블)
- 64비트 부동 소수점을 나타냅니다.
- 대략 -1.7E308에서 1.7E308까지의 범위를 가집니다.
- 유효 숫자(가수)는 약 15자리입니다.
- 자바에서 기본적으로 소수점을 사용하는 실수 값은 double 형태로 취급됩니다.
double myDouble = 3.14;
Java문자형 (Character Type)
char (캐릭터)
- 16비트 유니코드 문자를 나타냅니다.
- 범위: ‘\u0000’ (0)부터 ‘\uffff’ (65,535)까지의 유니코드 문자를 포함합니다.
- 예를 들어, char myChar = ‘A’;와 같이 사용합니다.
char myChar = 'A';
Java논리형 (Boolean Type)
boolean (불리언)
- boolean은 논리형 자료형으로, 두 가지 값을 가집니다: true 또는 false.
- 조건문, 반복문, 논리 연산 등에서 조건을 표현하거나 제어할 때 주로 사용됩니다.
- 예를 들어, boolean isJavaFun = true;와 같이 사용합니다.
boolean isJavaFun = true;
Java참조형 타입 예제
클래스 (Class)
클래스는 객체를 생성하기 위한 틀 또는 설계도로, 참조형 타입 중 가장 일반적인 형태입니다. 객체는 클래스의 인스턴스(Instance)이며, 이를 사용하기 위해서는 해당 클래스의 참조가 필요합니다.
// 예제: 학생 정보를 담는 Student 클래스
class Student {
String name;
int age;
// 생성자
public Student(String name, int age) {
this.name = name;
this.age = age;
}
}
// Student 클래스를 이용한 객체 생성과 사용
Student myStudent = new Student("John", 20);
System.out.println("이름: " + myStudent.name + ", 나이: " + myStudent.age);
Java인터페이스 (Interface)
인터페이스는 메소드의 집합을 정의한 추상 자료형으로, 클래스가 여러 인터페이스를 구현할 수 있습니다.
// 예제: 인터페이스 정의
interface Shape {
void draw();
}
// 인터페이스를 구현한 클래스
class Circle implements Shape {
@Override
public void draw() {
System.out.println("원을 그립니다.");
}
}
// 객체 생성 및 사용
Shape myShape = new Circle();
myShape.draw();
Java배열 (Array)
배열은 동일한 자료형의 여러 값을 하나의 변수에 저장하기 위한 자료구조로, 참조형 타입에 속합니다.
// 예제: 정수형 배열
int[] numbers = {1, 2, 3, 4, 5};
// 배열의 요소에 접근
System.out.println("첫 번째 숫자: " + numbers[0]);
Java열거형 (Enum)
열거형은 서로 연관된 상수들의 집합으로, 참조형 타입에 속합니다.
// 예제: 계절 열거형
enum Season {
SPRING, SUMMER, FALL, WINTER
}
// 열거형 상수 사용
Season currentSeason = Season.SUMMER;
System.out.println("현재 계절: " + currentSeason);
Java기타 참조형 타입
자바에서는 다양한 내장 클래스와 라이브러리에서 제공하는 여러 참조형 타입이 있습니다.
// 예제: 문자열 클래스
String myString = "Hello, Java!";
System.out.println(myString);
Java결론
이러한 자바의 변수와 타입은 프로그래밍에서 핵심적인 역할을 수행합니다. 기본형 타입은 간단한 데이터를 효율적으로 다루기 위한 기본 도구로 사용되며, 참조형 타입은 복잡한 데이터 구조를 표현하고 객체 지향 프로그래밍의 핵심을 이룹니다.