BackEnd/JAVA

JAVA 생성자, 접근 제한자(접근제어자), 추상 클래스 추상 메서드 개념정리

H_Develop 2022. 7. 28. 08:20

생성자 
  생성자는 클래스_명과 동일한 이름의 메써드 생성(생성자(Construct:C 프로그램에서 구조체))라고 부르는데 
'클래스_명 객체_명 = new 클래스_명()'; 구문에서 뒤의 클래스_명이 바로 생성자를 호출 한다는 의미이다. 

인스턴스화 할때 제일 먼저 호출되어 실행되는 일종의 메써드이다. 생성자는 인스턴스 필드 값들을 초기화시킨다. 
원래는 public 클래스_명(매개_변수) { ... } 구문이다. 
원래는 public class Constructor { .. }식으로 main() 함수 위에 기술해야 하지만 
자동으로 입력되기 때문에 일부러 쓸 필요는 없다.

클래스에서의 접근 제한자 (접근 제어자)
  제한자는 외부에서 해당 클래스에 접근할 수 있는 범위를 표시하는데 
▶ final : 부모 클래스나 필드에 붙이면 상속을 못해주고 필드 값도 변경하지 못한다.
▶ private : 부모 클래스에 붙이면 상속이 불가하고 다른 객체들이 이 클래스를 사용할 수 없다.

                  클래스를 보호해서 캡슐화(encapsulation:은닉) 할 때 사용된다.
▶ protected : 부모 클래스에 붙이면 상속받은 클래스에서만 사용할 수 있다.  
▶ public : 부모 클래스에 붙이면 누구나 접속해서 이 클래스의 객체를 사용할 수 있다.
▶ default : 클래스에 특별히 이런 접근 제한자를 붙이지 않으면 해당 클래스의 필드는 해당 패키지 안에서만 사용된다.

  this는 로컬변수나 매개변수에서 클래스 멤버에 name과 같은 변수가 있을 때 this.name식으로 해주면 해당 클래스의 변수를 지시한다. 간단히 말해서 this는 클래스에 있는 멤버변수 등을 지시한다.

  추상 클래스와 추상 메써드
 이들은 클래스에서 수행할 멤버 메써드들을 지정하지 않고 호출하는 방법만 기술한 메써드를 추상 메써드라고 하고, 

추상 메써드를 가지고 있는 클래스를 추상 클래스라고 한다. 

 abstract를 앞에 붙여서 표현한다. 프로그래밍을 강제할 때 사용하며 기본적으로 지켜야 할 틀을 제공해서 각 서브 클래스에서 이 클래스를 불러서 구현시킬 때 사용된다.