• 멤버
    • 인스턴스 멤버 : 객체마다 가지고 있는 멤버를 의미한다
    • 정적 맴버 : 클래스가 가지고 있는 멤버로 모든 인스턴스가 공유한다
      • 정적 멤버를 선언해주는 방법은 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

+ Recent posts