[자바와 객체 지향 그리고 스프링] 4- final 키워드, instancsof 연산자, package 키워드

코린이서현이·2024년 1월 6일
0

👏들어가면서👏

🎯 목표

📌 final 키워드
📌 instancsof 연산자
📌 package 키워드

📌 final 키워드

✏️ final 은 "최종"이라는 의미를 가진다.
🤔 이런 의미를 가진 키워드를 "클래스", "변수", "메서드"에 사용했을 때 어떻게 될까?

📍 final 클래스는 상속할 수 없다. 따라서 하위 클래스를 만들 수 없다.
📍 fianl 변수는 초기화(값을 할당)이후에는 값을 변경할 수 없다. 따라서 선언시에 초기화 하지 않으면, 객체 생성시에 값을 초기화할 수 있고 그 이후에는 불가능하다.
📍 final 메서드는 오버라이딩을 금지하게 한다.

📌 instancsof 연산자

✏️ instansof는 객체 참조 변수에 담긴 객체가 해당 클래스의 인스턴스인지 물어보는 연산자이다.
👉 하위 클래스는 상위 클래스의 인스턴스이기도하다.

✏️ 인터페이스에 대해서도 가능하다.

📍 객체 참조 변수의 타입이 아닌, 참조하고 있는 실제 객체의 타입에 대해서 처리한다.

📌 package 키워드

✏️ package키워드는 네임스페이스를 만들어주는 역할을 한다.
한 클래스의 실제이름은 패키지.클래스이다.

📌 interface 키워드와 implements 키워드

✏️ interface는 인터페이스 선언 키워드
✏️ implements는 인터페이스를 사용하는 키워드

👉 인터페이스 포스팅 보러가기
인터페이스는 내용이 더 넓기 때문에 해당 글을 다시 읽는 것이 좋을 것 같다.

📌 this 키워드 & super 키워드

✏️this 는 객체 자기 자신을 가리키는 키워드이다.

🤔 지역변수와 정적 변수, 객체 변수의 이름이 같은 경우?!

지역변수가 우선된다.

  • 객체 변수와 이름이 같은 지역 변수가 있는 경우 객체 변수를 사용하려면, this.객체변수명으로 사용한다.
  • 정적 변수와 이름이 같은 지역 변수가 있는 경우 정적 변수 사용하려면 클래스명.정적변수명으로 사용한다.

✏️super바로 위 상위 클래스의 인스턴스를 지칭하는 키워드이다.

🙆‍ 정적 변수의 적절한 사용은 ?!

클래스명.변수명처럼 사용하는 것이 권장된다.
클래스 변수는 여기저기서 다 접근할 수 있기 때문에, 클래스명.변수명이 적절하다.

👏 마무리하면서

오예 내일부터는 SOLID에 대해서 알아보자 ~!
profile
24년도까지 프로젝트 두개를 마치고 25년에는 개발 팀장을 할 수 있는 실력이 되자!

0개의 댓글