TIL&WIL

2023-04-24 TIL (Java : 추상, final)

blues_jun 2023. 4. 24. 21:51

오늘 배운 내용

  • Java : API, UI, 접근 제어자, 추상(abstract), final

새로 알게된 내용

 

1.  API(application programming interface), UI(user interface)

  • API란 두 소프트웨어 구성 요소가 서로 통신할 수 있게하는 메커니즘이다.
  • UI란 사용자와 소프트웨어 사이의 접점(입력장치, 출력장치)를 말한다.
  • System과 같이 자바에서 제공하는 명령어를 잘 활용해야한다.

 

2. 접근 제어자

  • 접근 제어자는 클래스의 멤버(변수, 메소드)들의 접근 권한을 지정한다.
  • public은 어느 곳에서든 호출이 가능하다.
  • private는 속하지 않은 클래스에서는 호출할 수 없다.
  • 즉, private를 활용하면 다른 클래스 내에서 선언을 할 때 재선언을 하는 실수가 없어지는 장점이 있다.
  • 또 다른 접근 제어자는 다음과 같다.
  같은 클래스 같은 패키지 다른 패키지,
서브 클래스
관계없음
pubilc O O O O
protected O O O X
default O O X X
private O X X X
  • 클래스 접근 제어자에는 default와 pubilc만 있다.
  • default는 같은 패키지에서만 사용 가능하고, pubilc는 모든 패키지에서 호출 가능하다.
  • public 클래스가 포함된 소스코드는 public 클래스의 클래스 명과 소스코드의 파일명이 같아야한다.

 

3. 추상(abstract)

  • abstract 클래스나 메소드는 반드시 상속해서 사용하도록 강제한다. (즉, 상속을 강제함)
  • abstract 메소드는 구체적인 로직을 담고 있지 않다. (그래서 상속을 한 뒤 오버라이딩을 해서 로직을 정의해야 함 !)
  • 본체가 있는 메소드는 abstract 키워드를 가질 수 없다.
  • 추상 클래스 내에는 추상 메소드가 아닌 메소드가 존재할 수 있다.

 

4. final

  • final은 abstract와는 반대로 상속/변경을 금지하는 규제이다.
  • 한 번 값이 정해지면 이후에는 변수 내의 값이 바뀌지 않는다.
  • final 필드 → 변수의 값은 상수가 된다.
  • final 메소드 → 오버라이딩 x
  • final 클래스 → 상속x

느낀점

 

 본가에 갔다와서 오랜만에 하는 공부라 적응이 잘 되지 않았다. 앞으로 더욱 꾸준히해서 얼른 리듬을 되찾아야겠다.

 

 오늘 어떤 부분에서 에러가 났는데 갑자기 해결이 됐다. 해결이 되어서 좋았긴 했는데 정확한 이유를 파악하지 못해서 다음에 또 이런 에러가 발생했을 때 대처를 할 수 없을 것 같아서 뭔가 찝찝했다.

 

 배우는 입장에서는 결과보다는 과정을 중요하게 생각해야하니까 다음에 또 이런 에러가 발생하면 그때는 정말 확실하게 해결하고 넘어가야겠다고 다짐했다!!