210114_JAVA

정재현·2021년 1월 14일
0

TIL

목록 보기
44/80

오늘은 챕터10 클래스 변수와 클래스 메소드를 들어간다.
218페이지~224페이지까지 진행했고,
이론 위주고, 알고있던 내용이라 잘 읽혔다.

다만 용어는 좀 짚고 넘어갈 필요가 있다고 생각한다.
간단하게 요약하자면
클래스 내에 선언된 변수 앞에 static 선언을 붙이면 이건 인스턴스 변수가 아니라
'클래스 변수'가 된다.

그니깐,

static으로 선언된 변수는, 변수가 선언된 클래스의 모든 인스턴스가 공유하는 변수가 되는 것.

술술 읽히다가 클래스 변수의 접근 방법에 대한 내용이 나왔는데.
클래스 내부 접근과 클래스 외부 접근에 관한 내용이였다.

내부접근은 변수의 이름을 통해 직접 접근하는 방법이고.
외부접근은 클래스 또는 인스턴스의 이름을 통해 접근하는 방법이다.

또, 클래스 변수는 언제 초기화되는가에 대한 질문에는
클래스 변수는 인스턴스 생성 이전에 메모리 공간에 할당된다.

따라서 클래스 변수 a가 100으로 초기화 해놨다면,

class example {
    static int a = 100;
    example() {
        a = 0;
        }
    }

이제 요렇게 된다면 시간 낭비인셈이다.
100으로 초기화했다가 0으로 다시 초기화하면서 낭비.

또, 클래스 변수를 언제 유용하게 사용할 것인가? 질문에는
인스턴스 간에 데이터 공유가 필요한 상황에서 클래스 변수를 선언하면 유용하다고한다.

뭐 예를들면 원의 넓이나 둘레를 구하는 클래스에서 각각의 인스턴스를 생성하게 되고
그럴때 '파이'값을 static final 로 클래스 변수를 시켜놓으면 유용하게 사용할 수 있다는 말.

오늘의 코멘트: 책이 오늘도 안왔다....; 음 내일은 책의 목차를 다시 정리해봐야겠다.

profile
"돈받고 일하면 프로다"

0개의 댓글