반응형
이전에 배운 내용
[JAVA] 인스턴스 멤버와 클래스 멤버
이전에 배운 내용 [JAVA] 메서드 오버로딩 println( ); , 기본형 참조형 매개변수 [JAVA] 메서드 오버로딩 println( ); , 기본형 참조형 매개변수 이전에 배운 내용 [JAVA] 객체의 필드와 메서드 [JAVA] 객체의
dev-story93.tistory.com
지역변수란?
메서드 내부에 선언한 변수!
- 메서드가 실행될 때마다 독립적인 값을 저장하고 관리한다.
- 지역변수는 메서드 내부에서 정의될 때 생성되고 메서드가 종료될 때까지만 유지한다.(사용중일때만 휘발성)
public class Main {
public static void main(String[] args) {
Main main = new Main();
// 메서드 호출 : main.getClass()
System.out.println("main.getClass() = " + main.getNumber());
System.out.println("main.getClass() = " + main.getNumber());
System.out.println("main.getClass() = " + main.getNumber());
}
//메인 안에 컨스트럭터가 내장되어있다.
//기본생성자 //생략 가능
//public Main () {}
public int getNumber() {
//지역변수 <-> 전역변수
//해당 메서드가 실행될 때 마다 족립적인 값을 저장하고 관리합니다.
// 이 지역변수는 메서드 내부에서 정의될 때 생성된다.
// 이 메서드가 종료될때 소멸 된다.
int number = 1; // 지역 변수
number += 1;
return number; // 메서드 종료되면 지역변수 제거됨
}
}
// 출력
//main.getNumber() = 2
//main.getNumber() = 2
//main.getNumber() = 2
지역변수와 반되되는것은 전역변수이며 우리가 배운 static와 비슷하다.
final 필드와 상수
final은 최종적이라는 의미
- final 필드는 초기값이 저장되면 해당값을 프로그램이 실행하는 도중에는 절대로 수정할 수 없다.
- 또한 final 필드는 반드시 초기값을 지정해야 합니다.
final 선언
final String company = "GENESIS";
...
Car car = new Car();
System.out.println(car.company);
필드 타입 앞에 final 키워드를 추가하여 final 필드를 선언할 수 있다.
- 사용방법은 일반적인 인스턴스 필드와 동일합니다. 다만 수정이 불가능하다.
- car.company = "Benz"; 이렇게 수정하려 하면 오류가 발생한다.
상수
상수라고 하면 보통 static final로 많이 사용한다.
- 상수의 특징은 값이 반드시 한 개이며 불변의 값을 의미합니다.
- 따라서 인스턴스마다 상수를 저장할 필요가 없습니다. (조금은 클래스 멤버와 비슷한 것 같군)
static final String COMPANY = "GENESIS";
...
System.out.println(Car.COMPANY);
- final 앞에 static 키워드를 추가하여 모든 인스턴스가 공유할 수 있는 값이 한 개이며 불변인 상수를 선언할 수 있습니다.
- 사용방법은 일반적인 클래스 필드와 동일합니다. 다만 수정이 불가능합니다.
- Car.COMPANY = "Benz"; 이렇게 수정하려 하면 오류가 발생합니다.
- 일반적으로 상수는 대문자로 작성하는 것이 관례이다.
다음은 생성자에 대해 알아보자!
반응형
'언어(language) > 자바(Java)' 카테고리의 다른 글
| [JAVA] 접근제어자 (0) | 2023.10.19 |
|---|---|
| [JAVA] 생성자, this와 this( ) (0) | 2023.10.19 |
| [JAVA] 인스턴스 멤버와 클래스 멤버 (2) | 2023.10.19 |
| [JAVA] 메서드 오버로딩 println( ); , 기본형 참조형 매개변수 (0) | 2023.10.19 |
| [JAVA] 객체의 필드와 메서드 (0) | 2023.10.18 |