JAVA/기초
Java에서 static을 사용하는 이유
뿌비
2024. 10. 12. 01:09
728x90
Java에서 static을 사용하는 이유
- Java에서는 클래스가 기본 단위이며, 클래스 안에 변수(필드)와 메서드를 정의한다.
다른 곳에서 클래스의 변수나 메서드를 사용하려면 보통 new 클래스명();과 같은 방식으로 인스턴스를 생성해야 한다.
하지만 클래스 안에 있는 메서드나 변수에 static을 붙이면, 이들을 전역에서 인스턴스를 생성하지 않고도 해당 메서드나 변수에 접근할 수 있다.
이렇게 하면 불필요한 객체 생성을 피하면서, 공통된 데이터를 효율적으로 관리할 수 있다.
* 인스턴스란? : 클래스를 기반으로 생성된 실제 객체
static의 주요 사용 목적
1. 공유할 값이 있을 때: 클래스의 모든 인스턴스가 공유해야 하는 데이터를 만들고자 할 때 static 변수를 사용한다.
// 예시: 코드에서 totalStudents는 모든 학생 객체가 공유하며, 새로운 학생이 생성될 때마다 그 값이 증가한다.
// 이를 통해 클래스 전체에서 학생 수를 추적할 수 있다.
public class Student {
// 모든 학생이 공유할 static 변수
static int totalStudents = 0;
public Student() {
totalStudents++; // 학생 객체가 생성될 때마다 총 학생 수 증가
}
}
public class Main {
public static void main(String[] args) {
// 학생 객체 생성
Student student1 = new Student();
Student student2 = new Student();
// 모든 학생이 공유하는 totalStudents를 출력
// static 변수에 직접 접근하여 객체 생성 없이 값을 참조
System.out.println("Total Students: " + Student.totalStudents); // 출력: 2
}
}
2. 객체 없이 바로 사용할 때: 자주 사용하는 기능을 객체를 만들지 않고도 사용하고자 할 때 static 메서드를 활용한다.
// 예시
public class Calculator {
// 객체 없이 사용할 수 있는 static 메서드
static int add(int a, int b) {
return a + b; // 두 숫자를 더한 값을 반환
}
}
public class Main {
public static void main(String[] args) {
// 객체 생성 없이 static 메서드 호출
int result = Calculator.add(3, 5); // 3과 5를 더함
System.out.println("Result of Addition: " + result); // 출력: 8
}
}
※ 요약
- static을 붙이면: 전역에서 인스턴스를 생성하지 않고도 해당 메서드나 변수에 접근할 수 있다.
- static 변수: 모든 객체가 공유해야 하는 데이터를 만들 때 사용하고, 클래스 이름을 통해 접근한다.
- static 메서드: 객체 생성 없이 바로 호출할 수 있는 기능을 만들 때 사용한다.
728x90