
변수의 종류
선언 위치에 따른 변수의 종류
변수는 선언되는 위치에 따라 다음과 같이 세 가지로 구분됩니다.
- 지역 변수 : 메서드 내부에서 선언되는 변수로, 해당 메서드가 실행될 때 생성되고 종료 시 소멸됩니다.
- 인스턴스 변수 : 클래스의 인스턴스가 생성될 때마다 각각의 객체에 따로 할당되는 변수로, 객체의 상태를 나타냅니다.
- 클래스 변수 : static 키워드로 선언된 변수로, 클래스의 모든 인스턴스가 공유하는 변수입니다.
public class Car {
// 인스턴스 변수
String color;
// 클래스 변수
static int totalCars;
public Car(String color) {
this.color = color;
totalCars++;
}
}
위 코드에서 color는 인스턴스마다 고유한 값을 가지는 인스턴스 변수이며, totalCars는 클래스 변수로 모든 객체가 공유합니다.
클래스 변수와 인스턴스 변수
- 클래스 변수 : 클래스에 종속되며, 객체 생성 없이 접근할 수 있습니다. 모든 객체가 동일한 값을 공유하며 메모리 절약에도 유리합니다.
- 인스턴스 변수 : 각 객체마다 독립적으로 존재하며, 객체의 고유 상태를 유지합니다. 객체가 생성될 때마다 별도의 메모리 공간을 차지합니다.
클래스 변수와 인스턴스 변수는 프로그램의 흐름과 데이터 관리 방식에 큰 영향을 줍니다. 예를 들어, 여러 객체가 같은 데이터를 공유해야 할 때 클래스 변수를 사용하고, 객체마다 다른 데이터를 가질 때는 인스턴스 변수를 사용합니다.
메서드의 역할과 선언
메서드란?
메서드는 객체가 수행할 동작이나 기능을 정의하는 코드 블록입니다. 객체를 메서드를 통해 동작을 수행하고, 상태를 변화시킵니다. 메서드를 선언할 때는 반환 타입, 메서드 이름, 매개변수를 정의해야 하며, 구현부에서는 메서드가 실행할 코드를 작성합니다.
public class Car {
// 메서드 선언과 구현
void drive() {
System.out.println("자동차가 달립니다.");
}
int getSpeed() {
return 100; // 반환값이 있는 메서드
}
}
- 반환 타입 : 메서드가 리턴하는 값의 타입을 지정합니다. 값을 반환하지 않으면 void를 사용합니다.
- 메서드 이름 : 메서드의 역할을 나타내는 명칭입니다.
- 매개변수 : 메서드에 전달되는 값을 정의하며, 메서드 실행에 필요한 데이터를 받아옵니다.
메서드 호출과 반환
객체는 메서드는 호출해 동작을 수행할 수 있습니다. 메서드 호출은 객체명.메서드명() 형태로 작성됩니다.
Car myCar = new Car();
myCar.drive(); // "자동차가 달립니다." 출력
메서드는 return문을 통해 호출자에게 값을 반환할 수 있습니다. 반환되는 값의 타입은 메서드의 반환 타입과 일치해야 합니다.
public int add(int a, int b) {
return a + b;
}
변수 초기화와 메서드 내부 로직
명시적 초기화
변수는 선언 시 값을 초기화할 수 있습니다. 메서드 내부에서 사용되는 지역 변수도 초기화되어야만 사용할 수 있습니다.
int num = 0; // 명시적 초기화
메서드 내부에서 변수 사용
메서드 내부에서는 지역 변수를 선언하고, 이를 이용해 로직을 구성합니다. 메서드가 호출될 때마다 지역 변수는 새로 생성되며, 메서드 종료 시 소멸됩니다.
public void calculate(int a, int b) {
int sum = a + b; // 지역 변수
System.out.println("합계: " + sum);
}
'📝 프로그래밍 패러다임 > 객체지향프로그래밍' 카테고리의 다른 글
[객체지향 프로그래밍] 생성자와 객체 초기화 : 효울적인 객체 생성 방법 (0) | 2024.09.22 |
---|---|
[객체지향 프로그래밍] 캡슐화 - 데이터 보호와 정보 은닉의 핵심 원리 (0) | 2024.09.20 |
[객체지향 프로그래밍] 다형성 - 다양한 형태의 객체를 다루는 방법 (0) | 2024.09.18 |
[객체지향 프로그래밍] 추상화 - 복잡성을 줄이는 설계의 핵심 (1) | 2024.09.17 |
[객체지향 프로그래밍] 상속 - 코드의 재사용 (0) | 2024.09.17 |

변수의 종류
선언 위치에 따른 변수의 종류
변수는 선언되는 위치에 따라 다음과 같이 세 가지로 구분됩니다.
- 지역 변수 : 메서드 내부에서 선언되는 변수로, 해당 메서드가 실행될 때 생성되고 종료 시 소멸됩니다.
- 인스턴스 변수 : 클래스의 인스턴스가 생성될 때마다 각각의 객체에 따로 할당되는 변수로, 객체의 상태를 나타냅니다.
- 클래스 변수 : static 키워드로 선언된 변수로, 클래스의 모든 인스턴스가 공유하는 변수입니다.
public class Car {
// 인스턴스 변수
String color;
// 클래스 변수
static int totalCars;
public Car(String color) {
this.color = color;
totalCars++;
}
}
위 코드에서 color는 인스턴스마다 고유한 값을 가지는 인스턴스 변수이며, totalCars는 클래스 변수로 모든 객체가 공유합니다.
클래스 변수와 인스턴스 변수
- 클래스 변수 : 클래스에 종속되며, 객체 생성 없이 접근할 수 있습니다. 모든 객체가 동일한 값을 공유하며 메모리 절약에도 유리합니다.
- 인스턴스 변수 : 각 객체마다 독립적으로 존재하며, 객체의 고유 상태를 유지합니다. 객체가 생성될 때마다 별도의 메모리 공간을 차지합니다.
클래스 변수와 인스턴스 변수는 프로그램의 흐름과 데이터 관리 방식에 큰 영향을 줍니다. 예를 들어, 여러 객체가 같은 데이터를 공유해야 할 때 클래스 변수를 사용하고, 객체마다 다른 데이터를 가질 때는 인스턴스 변수를 사용합니다.
메서드의 역할과 선언
메서드란?
메서드는 객체가 수행할 동작이나 기능을 정의하는 코드 블록입니다. 객체를 메서드를 통해 동작을 수행하고, 상태를 변화시킵니다. 메서드를 선언할 때는 반환 타입, 메서드 이름, 매개변수를 정의해야 하며, 구현부에서는 메서드가 실행할 코드를 작성합니다.
public class Car {
// 메서드 선언과 구현
void drive() {
System.out.println("자동차가 달립니다.");
}
int getSpeed() {
return 100; // 반환값이 있는 메서드
}
}
- 반환 타입 : 메서드가 리턴하는 값의 타입을 지정합니다. 값을 반환하지 않으면 void를 사용합니다.
- 메서드 이름 : 메서드의 역할을 나타내는 명칭입니다.
- 매개변수 : 메서드에 전달되는 값을 정의하며, 메서드 실행에 필요한 데이터를 받아옵니다.
메서드 호출과 반환
객체는 메서드는 호출해 동작을 수행할 수 있습니다. 메서드 호출은 객체명.메서드명() 형태로 작성됩니다.
Car myCar = new Car();
myCar.drive(); // "자동차가 달립니다." 출력
메서드는 return문을 통해 호출자에게 값을 반환할 수 있습니다. 반환되는 값의 타입은 메서드의 반환 타입과 일치해야 합니다.
public int add(int a, int b) {
return a + b;
}
변수 초기화와 메서드 내부 로직
명시적 초기화
변수는 선언 시 값을 초기화할 수 있습니다. 메서드 내부에서 사용되는 지역 변수도 초기화되어야만 사용할 수 있습니다.
int num = 0; // 명시적 초기화
메서드 내부에서 변수 사용
메서드 내부에서는 지역 변수를 선언하고, 이를 이용해 로직을 구성합니다. 메서드가 호출될 때마다 지역 변수는 새로 생성되며, 메서드 종료 시 소멸됩니다.
public void calculate(int a, int b) {
int sum = a + b; // 지역 변수
System.out.println("합계: " + sum);
}
'📝 프로그래밍 패러다임 > 객체지향프로그래밍' 카테고리의 다른 글
[객체지향 프로그래밍] 생성자와 객체 초기화 : 효울적인 객체 생성 방법 (0) | 2024.09.22 |
---|---|
[객체지향 프로그래밍] 캡슐화 - 데이터 보호와 정보 은닉의 핵심 원리 (0) | 2024.09.20 |
[객체지향 프로그래밍] 다형성 - 다양한 형태의 객체를 다루는 방법 (0) | 2024.09.18 |
[객체지향 프로그래밍] 추상화 - 복잡성을 줄이는 설계의 핵심 (1) | 2024.09.17 |
[객체지향 프로그래밍] 상속 - 코드의 재사용 (0) | 2024.09.17 |