- 멤버
- 인스턴스 멤버 : 객체마다 가지고 있는 멤버를 의미한다
- 정적 맴버 : 클래스가 가지고 있는 멤버로 모든 인스턴스가 공유한다
- 정적 멤버를 선언해주는 방법은 static키워드를 사용해주면 된다

- 고객은 은행이라는 클래스를 통해 각자의 계좌를 만들 수 있는데 이때 계좌가 인스턴스 멤버가 되는 것이다.
- 이 계좌는 인스턴스 필드, 계좌이체를 하는 동작은 인스턴스 메서드이다.
- 하지만 두 명의 고객 모두 은행의 고객센터 번호를 동일하게 공유하며 고객센터의 번호가 4567로 바뀐다면 바뀐 번호를 두명의 고객 모두 인지할 수 있다. 이때 고객센터 번호가 정적 멤버가 되는 것이다.
- 코드로 살펴보자
-
public class BankTest { public static void main(String[] args) { Bank customer1 = new Bank(); Bank customer2 = new Bank(); System.out.println(customer1.tel == customer2.tel); customer1.tel = "4321-4321"; System.out.println(customer1.tel == customer2.tel); } } class Bank { String account; int balance; static String tel = "1234-1234"; } - static으로 선언해준 tel이라는 변수는 customer1과 customer2가 모두 동일한 값으로 공유하기 때문에 true가 나올 것이다.
- 또한 customer1이 tel의 번호를 바꿨다. 후에 밑에서 다시 비교를 해주는데 이때도 결과는 true이다.
- 패키지
- 단순하게 폴더의 기능만 하는 것이 아니라 클래스의 일부분으로, 클래스를 유일하게 만들어준다
- 같은 패키지안에 같은 이름의 클래스는 존재할 수 없다
- 작명은 일반적으로 주소 값을 거꾸로 써주는 형식으로 폴더명을 작성해 준다
- ex > com.tistory.projectName
- java로 시작하는 패키지는 자바 표준 api에서만 사용하므로 사용할 수 없다
- 접근 제한자
- public : 다른 패키지에서도 접근이 가능하다.
- protected : 같은 패키지 또는 다른 패키지라 하더라도 상속을 받았다면 사용이 가능하다
- default : 같은 패키지에서만 사용이 가능하며 default는 써주는 것이 아니라 접근 제한자를 안 써주면 자동으로 default가 된다
- private : 클래스 내부에서만 사용이 가능하다.
- 개방성은 적은 순서대로 public > protected > default > private가 된다
'Back-end > JAVA' 카테고리의 다른 글
| 21. Class - 상속 (0) | 2021.07.24 |
|---|---|
| 20. Class - final(상수) (0) | 2021.07.24 |
| 18. Class - Method(메서드) (0) | 2021.07.24 |
| 17. Class - Constructor(생성자) (0) | 2021.07.24 |
| 16. Class - Field(필드) (0) | 2021.06.23 |