2024. 3. 16. 23:43ㆍ정보처리,전산
클래스 변수와 인스턴스 변수는 객체 지향 프로그래밍에서 중요한 개념이다. 이 둘은 서로 다른 범위에서 사용되며 다른 목적으로 사용된다.
- 클래스 변수(Class Variable):
- 클래스 변수는 해당 클래스의 모든 인스턴스들이 공유하는 변수이다.
- 클래스 변수는 한 번 정의되면 모든 인스턴스에 의해 공유되며, 클래스 이름을 통해 접근된다.
- 클래스 변수는 보통 어떤 클래스의 모든 인스턴스가 공유해야 하는 공통적인 상태나 속성을 나타내는 데 사용된다.
- 클래스 변수는 클래스 내부에 선언되고, static 키워드로 정의된다.
클래스 변수(class variable)는 클래스의 모든 인스턴스가 공유하며, 한 번 정의되면 모든 인스턴스가 동일한 값을 공유한다.
public class Student {
// 클래스 변수
static int numberOfStudents = 0;
// 인스턴스 변수
String name;
int age;
// 생성자
public Student(String name, int age) {
this.name = name;
this.age = age;
numberOfStudents++; // 클래스 변수 값 증가
}
// 학생 수를 출력하는 메서드
public static void printNumberOfStudents() {
System.out.println("학생 수: " + numberOfStudents);
}
public static void main(String[] args) {
// Student 클래스의 인스턴스(객체)를 생성한다.
Student student1 = new Student("철수", 20);
Student student2 = new Student("영희", 21);
// 클래스 변수를 출력한다.
Student.printNumberOfStudents(); // 출력: 학생 수: 2
}
}
numberOfStudents는 클래스 변수로서, 모든 학생들이 공유하는 학생 수를 나타낸다. Student 클래스의 각 인스턴스가 생성될 때마다 numberOfStudents 값이 증가되어야 하므로, 생성자에서 해당 값을 증가시켜준다.
클래스 변수를 사용하면 해당 클래스의 모든 인스턴스들이 동일한 값을 공유할 수 있고, 클래스의 상태를 나타내는 데 유용하다.
- 인스턴스 변수(Instance Variable):
- 인스턴스 변수는 각각의 인스턴스마다 별도로 존재하는 변수이다.
- 인스턴스 변수는 각 인스턴스마다 고유한 값을 가질 수 있다.
- 인스턴스 변수는 해당 클래스의 객체(인스턴스)가 생성될 때마다 메모리에 할당되며, 인스턴스의 상태를 나타내는 데 사용된다.
인스턴스(instance)는 객체 지향 프로그래밍(OOP)에서 클래스의 실제 객체를 의미한다. 클래스는 객체를 만들기 위한 틀이며, 이 틀을 이용하여 실제 데이터를 가지고 있는 객체를 생성할 수 있다.
객체들이 클래스를 기반으로 만들어진 것이며, 이 객체들을 인스턴스라고 한다.
public class Car {
String model; // 모델명을 나타내는 인스턴스 변수
// 생성자 메서드
public Car(String model) {
this.model = model;
}
// 속도를 출력하는 메서드
public void printSpeed(int speed) {
System.out.println("속도: " + speed);
}
public static void main(String[] args) {
// Car 클래스의 인스턴스(객체)를 생성한다.
Car myCar = new Car("코나");
// 생성된 인스턴스의 메서드를 호출한다.
myCar.printSpeed(100);
}
}
Car 클래스를 정의하고, main 메서드에서 Car 클래스의 인스턴스를 생성하여 사용한다. 이때, myCar 변수는 Car 클래스의 인스턴스를 가리키는 참조이다. 따라서 이러한 인스턴스는 클래스를 기반으로 생성되었으며, 클래스에서 정의된 속성과 메서드를 사용할 수 있다.
'정보처리,전산' 카테고리의 다른 글
텍스처 전송 시 Lock을 걸어야 하는 이유 (0) | 2024.09.05 |
---|---|
정수형(int)과 부동 소수점형(float) 데이터의 표현 (0) | 2024.09.05 |
소프트웨어 테스트 (0) | 2024.07.27 |
테스트 오라클 (Test Oracle) (0) | 2024.07.27 |
1. CPU (0) | 2024.01.18 |