본문 바로가기
프로그래밍/Java

Java - 정보 은닉과 캡슐화, 클래스 변수와 메소드

by 왕거 2020. 6. 26.

사전 스터디 과제에 집중하다보니 개인 공부에 신경을 못썼다.

 

하루에 1강씩은 꼭 봐야겠다고 다시 한번 다짐했다.

 

일단 오늘을 정리하면 9강, 10강을 들었는데, 목차보고 괜히 쫄았나보다.

 

9강 목차가 정보 은닉, 접근 수준 지시지, 캡슐화였는데 캡슐화의 중요성이야 뭐 말할 것도 없지만 정보 은닉과 지시자는 그냥 public, private, protected, (default)에 대한 내용들이었다.

 

그냥저냥 다시한번 개념을 되새기는 정도로 마무리하고 넘어갔다.

 

단, 캡슐화의 경우는 굉장히 중요한 개념이니까 객체지향 4요소에 대해서 한번 정리할 필요를 느꼈다.

 

다음 강의인 10강은 static 접두어를 사용하는 변수, 메소드등에 대한 강의였는데 막연하게 C언어의 전역변수 비슷한 역할을 하는 것으로 알고 있던 걸 좀 더 확실하게 개념을 알게 되었다.

 

static으로 선언을 하면 좋은 변수나 메소드의 목적이라던가 기준을 명확하게 확립할 수 있었다.

 

static 변수를 일단 정식 명칭이 클래스 변수라고 하는데, 클래스 내에서 변수의 이름으로 직접 접근이 가능하며 인스턴스를 통해서 또는 클래스 이름을 통해서도 접근이 가능하다.

 

값의 참조나 공유가 목적인 변수에 사용하는 것이 좋아보인다.

 

static으로 선언한 메소드의 경우는 대략적인 부분은 클래스 변수와 동일하고, 클래스의 목적과는 관계가 없는 단순한 계산 제공이나 인스턴스와 관련 지을 이유가 없는 메소드일 경우 사용하는 것이 좋다.

 

마지막으로 static 초기화 블록이라는 내용이 있었는데 간단히 정리하면 클래스 변수를 초기화할 때 하드코딩하는 것이 아닌 어떤 작업의 결과값을 초기화 값으로 사용해야 할 때 이용하는 기능이다.

 

아주 좋은 예로 날짜를 저장하는 클래스 변수를 보여줬는데 참 적절한 예시인 것 같다.

 

'프로그래밍 > Java' 카테고리의 다른 글

Java - 상속 (1)  (0) 2020.07.05
Java - 콘솔 출력과 입력  (0) 2020.06.29
Java - 메소드 오버로딩과 String 클래스  (0) 2020.06.28
Java - 클래스 패스와 패키지  (0) 2020.06.19
Java - JVM, 변수, 상수  (0) 2020.06.15