배열이란?
많은 수의 변수를 다뤄야할 때, 배열로 다룬다.
객체배열도 비슷하다.
많은 수의 객체를 다뤄야할 때, 객체배열로 다룬다.
단! 객체가 저장되는 것이 아닌 객체의 주소가 저장되는 것 == 참조변수들을 하나로 묶은 참조변수 배열
Tv tv1, tv2, tv3. ----> Tv[] tvArr = new Tv[3]; // 길이가 3인 Tv타입의 참조변수 배열
이렇게 작업한것은 객체를 그저 다루기 위한 참조변수들이 만들어진 것뿐, 아직 객체가 생성된 것이 아님.
객체를 생성해서 객체 배열의 각 요소에 저장하는 것은 필수여야 한다. 까먹지 말자!
Tv tv1, tv2, tv3. ----> Tv[] tvArr = new Tv[3]; // (생성)
tvArr[0] = new Tv(); // 객체를 생성해서 배열의 각 요소에 저장
tvArr[1] = new Tv();
tvArr[2] = new Tv();
저장한 코드를 간단하게 한 것🔽 (배열의 초기화 블럭 사용)
Tv tvArr = { new Tv(), new Tv(), new Tv()}
클래스
: '객체를 생성화기 위한 틀' 이며 '속성(멤버변수)과 기능(메서드)으로 정의'
자바에서 변수는 클래스변수(cv) / 인스턴스변수(iv) / 지역변수(lv) 세종류가 있다.
🔔앞으로 해당 변수들을 cv / iv / lv 로 언급할 예정
class Variables -> 클래스영역
{
int iv; // 인스턴스변수
static int cv; // 클래스변수(static변수, 공유변수)
void method() -> 메서드영역
{
int lv = 0; // 지역변수
}
}
인스턴스 변수(iv)
1. 클래스영역에서 선언
2. 인스턴스를 생성할 때 만들어짐, (그래서 iv의 값을 읽거나 저장하려면 먼저 인스턴스를 생성해야함)
3. 인스턴스마다 별도의 공간을 가지므로 서로 다른 값을 가질 수 있음.
클래스변수(cv)
1. iv 앞에 static 붙이면 됨
2. cv는 모든 인스턴스가 공통된 저장공간(변수)를 공유 즉, 한클래스의 모든 인스턴스들이 공통적인값을 유지해야하는
'속성'의 경우 cv로 선언
3. iv와 달리 인스턴스를 생성하지 않고 언제라도 즉시 사용가능 '클래스이름.클래스변수'로 직접선언 가능 👈 이와 같은형식으로 사용
지역변수(lv)
1. 메서드내에서 선언, 메서드가 종료되면 사라짐
2. for문 while문의 블럭 내에 선언된 변수는, 지역변수가 선언된 블럭{} 내에서만 사용 가능
iv는 인스턴스가 생성될때 생성!
인스턴스마다 각기 다른값을 가질 수도 있음!
cv는 항상 공통된 값을 갖는다!
'자바(Java)' 카테고리의 다른 글
자바 다형성(polymorphism) 예시 참조변수 인스턴스 (0) | 2023.06.08 |
---|---|
[Java 문법 종합반] 기초언어 2주차 ~2-16 (0) | 2023.05.25 |
[Java 문법 종합반] 기초언어 2주차 (2-10) (0) | 2023.05.23 |
[Java 문법 종합반] 기초언어 1주차 (0) | 2023.05.23 |
자바(java) 인자(argument) / 매개변수(parameter) 차이 (0) | 2023.05.12 |