지난 글에 객체에 대해서 조금 적었었다.
보고 또 봐도 익숙해지지가 않는 어려운 놈이다.
그래도 뭐 어쩌겠냐..
해야지..
객체가 있다는 건 알았다.
그렇다면 객체의 특성 같은 걸 정의하는 공간이 필요할거다.
그게 바로 클래스이다.
클래스에는 객체의 특성(속성, 기능)이 정의 되는 곳이라고 생각하면 된다.
클래스를 작성할 때는 앞에서 언급했는 추상화와 캡슐화가 이루어져야한다.
혹시라도 추상화와 캡슐화의 개념이 헷갈린다면, 다시 한 번 앞에 글을 보도록 하자
클래스를 선언하는 방법으론
[접근제한자][예약어] class 클래스명 {}
이런 식으로 표현할 수 있다.
선언하는 방법에서 접근제한자라는 걸 언급했는데..
public 과 default가 있고 이들은 같은 패키지 혹은 전체적으로 임포트를 할 수 있느냐 없느냐 차이가 있다.
말이 어려워질 거 같으니 그냥 사진으로 대체하자

어우 사진이 참 편하다.
클래스내에서 속성이 작성 되는 영역을 필드라고 부르고 있다.
필드 영역에 쓰이는 변수의 이름을 멤버 변수라고도 부른다.
근데 멤버 변수에는 2가지가 있다는 점!
한 가지는 인스턴스 변수이고
또 다른 하나는 클래스 변수이다.
참..외울 변수가 많다
오늘도 뇌가 터질 예정이다
인스턴스 변수라는 건 필드에 작성된 일반 변수이고,
New 연산자에의해 객체가 생성되고, 메모리가 할당된다고 하여 인스턴스 변수라고 부르고 있다.
클래스 변수는 static 변수라고 말할 수 있다.
필드에 static 예약어와 함께 작성된 변수
프로그램 실행 시 1회만 생성된다.
static 영역에 메모리가 할당 되어 프로그램 종료 시 까지 유지됨.
=> static으로 선언 된 멤버 변수 중 하나
프로그램 실행 시 정적 메모리 영역(static영역)에 자동 할당되고
프로그램 종료 시 자동 소멸
위에 멤버변수와 별개로 지역변수라는 게 있다.
지역변수는 메소드나 혹은 제어문 안에 선언된 변수이다.
즉 그 지역에만 있는 변수라고 생각하면 좋을 거 같다.
그래서 해당 지역내에서만 사용할 수 있다.
지역변수가 선언되면 메모리 구조에서 stack영역에 메모리가 할당 되고, 메소드 종료 시 메모리가 소멸되는 구조이다.
쓰다보니 글이 길어졌다...
짧고 핵심적인 것들만 적고 싶었는데..
다음에는 짧고 핵심적인 것들만 쏙쏙 뽑아서
다시 봤을 때, 시간도 절약하고, 속성들만 배워갈 수 있게 벨로그를 만들어봐야겠다.
끝으로
뭐가 됐든 그만두지 말고 ing형으로 살아가보자 (오글)
맛있는 거 먹으러 가야쥐~~~(제일 핵심적인 말)
