728x90
반응형
package chap6;
/*
* 선언 위치에 따른 변수의 종류
*
* 선언위치 선언방법 할당위치 접근방법
* 클래스 변수 (정적변수) : 클래스 내부 static int num; 클래스영역 클래스명.변수명
* 메모리 할당 시점 : 클래스 정보가 로드 될때 클래스 영역에 메모리 할당 됨.
* 1. 객체화랑 관련 없음.
* 2. 모든 객체의 공통변수로 사용됨. 모든 객체가 같은 값을 공유함.
* 3. 기본값으로 초기화됨.
*
* 인스턴스 변수 : 클래스 내부 int num; 힙영역 참조변수명.변수명
* 메모리 할당 시점 : 객체화시 힙영역에 메모리 할당 됨.
* 1. 반드시 객체화 되어야 메모리 할당됨.
* 2. 객체별로 다른 메모리가 할당됨. 객체별로 다른 값을 저장할 수 있음.
* 3. 기본값으로 초기화됨.
*
* 지역 변수 : 메서드 내부 int num; 스택영역 변수명
* 메모리 할당 시점 : 변수의 선언문이 실행될 때 스텍영역에 할당됨.
* 1. 반드시 초기화를 해야함.
* 2. 매개변수는 지역변수다.
*/
class Car {
String color; //인스턴스 변수
int number; //인스턴스 변수
static int width = 200; //클래스 변수
static int height = 120;//클래스 변수
//toString() : 객체의 문자열화에 관여하는 메서드
// 참조변수 이름으로 출력할때 자동 호출되는 메서드
public String toString() {
return color + ":" + number + "(" + width + "," + height + ")";
}
}
public class CarEx1 {
public static void main(String[] args) {
System.out.println("자동차 크기:" + Car.width + "," + Car.height);
// System.out.println("자동차 정보:" + Car.color + "," + Car.number);
Car car1 = new Car(); //객체화
System.out.println("car1:" + car1); //car1.toString() 메서드 호출
car1.color = "흰색";
car1.number = 1234;
System.out.println("car1:" + car1);
Car car2 = new Car();
car2.color = "빨강색";
car2.number = 2345;
System.out.println("car2:" + car2);
car1.width = 100;
car1.height = 60;
System.out.println("car1:" + car1); //width=100, height=60
System.out.println("car2:" + car2); //width=100, height=60
//지역변수는 반드시 초기화가 필요함
int num = 0;
System.out.println(num); //초기화가 되지 않음. 출력할수 없음.
char ch;
if(num == 0) ch='A';
else ch='B';
System.out.println(ch); //ch변수는 반드시 초기화 됨.
char ch1;
if (num == 0) ch1 = 'C';
else if (num == 1) ch1 = 'D';
// System.out.println(ch1); //ch1 변수는 초기화 안될 가능성 있음.
int[] arr;
// System.out.println(arr.length); //arr 변수가 초기화 안됨.
}
}728x90
반응형
'study > Java' 카테고리의 다른 글
| [Java] 18. 클래스와 객체 Exam2 (클래스 구현과 구동클래스) (0) | 2022.03.17 |
|---|---|
| [Java] 18. 클래스와 객체 (메서드 구성) (0) | 2022.03.17 |
| [Java] 18. 클래스와 객체 Exam1 (가로, 세로를 변수로 가지고있는 클래스 구현하기) (0) | 2022.03.17 |
| [Java] 18. 클래스와 객체 (0) | 2022.03.17 |
| [Java] 17. TEST7 풀이 (홀수를 입력하고 숫자로 이루어진 모래시계 출력하기) (0) | 2022.03.16 |