캡슐화 : 외부로부터 영향을 받지 않도록 메소드와 데이터 구조를 묶는 것.
그래서 (예를 들어 변수명을 바꿨을 때,)오류의 범위를 한정 지을 수 있다.
캡슐을 깨뜨리는 행위를 막을 강제할 방법은 없다.
그래서 은닉성을 위한 어떤 '도구'가 필요.
접근지시자(private,protected,public)등장.
<static method>
-static을 쓰면 일반함수 (function이라고 쓰면 더 직관적일텐데) 객체말고 파라미터를 넘겨 받는다.
<instance method>
-static을 빼면 객체지향에서 쓰는 함수(메서드) 객체를 넘겨받는다. = 객체 메서드, 실체 메서드
lotto 객체에 대하여 this를 사용하는 gen(), sort()..이런 함수들은
lotto에 서비스한다 하여 서비스, 메서드, (lotto의)멤버 함수 등 다양한 이름으로 불린다.
그 중에 '메서드'라는 언어를 특히 사용한다.
*getNum()같이 this를 쓰지 않는 메서드는 다른 언어에서는 메서드라 하지 않고 그냥 function이라고 함.
자바처럼 완전한 객체지향이 아닌 언어에서는 class 밖에 있는게 function.
그런데 자바는 class 밖에 function이 있는 것이 불가능함.
안에 들어왔으니 인스턴스 함수와는 차별을 두어야 하니까
일반함수는 static을 붙인다.
이름도, 반환타입도 없으면 생성자(Constructor)가 된다.
그 어떤 함수보다(속성보다) 먼저 실행되고 단 한번만 되는 그 생 성 자!!
'JAVA' 카테고리의 다른 글
이클립스 실행시 자동저장 후 실행 설정 (0) | 2021.04.11 |
---|---|
추상화란 (JAVA 추상화) (0) | 2021.04.08 |
이클립스에서 Package Explorer 사라졌을 때 (0) | 2021.04.04 |
JAVA 생성자 (Consturctor) (0) | 2021.04.04 |