클래스 :
1) 설계도
2) 데이터+함수
3) 사용자 정의 타입
2)데이터+함수
변수 : 하나의 데이터를 저장할 수 있는 공간
배열 : 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간
구조체(structure) : 서로 관련된 여러 데이터(종류 관계X)를 하나로 저장할 수 있는 공간
클래스 : 데이터와 함수의 결합 (구조체+함수)
3)사용자 정의 타입(user-defined type)
서로 관련된 변수들을 묶어서 하나의 타입으로 새로 추가하는 것
원하는 타입을 직접 만들 수 있다.
ex.
int hour; //시간
int minute; //분
int second; //초
--> 이걸 클래스로 표현, 정의 -> 객체지향
class Time {
int hour;
int minute;
int second;
}
Time t = new Time(); //이렇게 하나의 객체를 생성함. 훨씬 간단!
Time t1 = new Time();
Time t2 = new Time();
Time t3 = new Time();
// 아예 배열해서 변수 선언 가능
Time[] t = new Time[3];
t[0] = new Time();
t[1] = new Time();
t[2] = new Time();
** 시, 분, 초는 모두 0보다 크거나 같아야 한다. & 시의 범위는 0~23, 분과 초의 범위는 0~59이다.
public class Time {
private int hour;
private int minute;
private int second;
//hour의 값을 변경하기 위한 메서드. 지정한 값이 0보다 작거나 23보다 크면 메서드 종료한다.
public void setHour(int h) {
if (h<0 || h>23) return;
hour = h;
}
}
선언위치에 따른 변수의 종류
ex.
{ // **클래스영역**
int iv; //인스턴스 변수
static int cv; //클래스 변수 (static변수, 공유변수)
void method()
{ // **메서드 영역**
int lv = 0; //지역변수
}
}
1) 클래스 변수(class variable) : iv 앞에 static 붙이기만 하면 됨. / 클래스가 메모리에 올라갈 때 생성 -> 객체 생성 안해도 됨. 언제라도 바로 사용할 수 있다는 특징. / '클래스이름.클래스 변수' 형식
2) 인스턴스 변수(instance variable) :인스턴스가 생성되었을 때 생성/ 객체= iv를 묶어놓은 것. 외우세염~
3) 지역 변수 (local variable) : 변수 선언문이 수행되었을 때
3.클래스 변수와 인스턴스 변수