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
느낀점
본가에 갔다와서 오랜만에 하는 공부라 적응이 잘 되지 않았다. 앞으로 더욱 꾸준히해서 얼른 리듬을 되찾아야겠다.
오늘 어떤 부분에서 에러가 났는데 갑자기 해결이 됐다. 해결이 되어서 좋았긴 했는데 정확한 이유를 파악하지 못해서 다음에 또 이런 에러가 발생했을 때 대처를 할 수 없을 것 같아서 뭔가 찝찝했다.
배우는 입장에서는 결과보다는 과정을 중요하게 생각해야하니까 다음에 또 이런 에러가 발생하면 그때는 정말 확실하게 해결하고 넘어가야겠다고 다짐했다!!