자바문법 3

[Java] 정적 멤버와 Static

📌 Static 의 정의 정적(Static)은 '고정된'을 의미합니다. 정적 멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드 와 메서드를 말합니다. 📌 Static 의 특징 이러한 static은 다음과 같은 특징이 있습니다. 메모리에 고정적으로 할당됩니다. 객체마다 가지고 있을 필요가 없는 공용 데이터라면 정적 필드로 선언하는 것이 좋습니다. 객체 생성없이 사용이 가능합니다. 클래스 로더가 클래스(바이트코드)를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리됩니다. 클래스의 로딩이 끝나면 바로 사용할 수 있습니다. static 메서드 내에서는 인스턴스 변수를 사용할 수 없습니다. 객체 자신의 참조인 this 키워드 사용이 불가합니다. 프로그램이 종료될 때 해제됩니다. ..

Java 2023.11.09

[Java] 접근 제한자란 무엇인가

📌 들어가며... Java 코딩을 하다보면 public, private, protected 와 같은 접근 제한자들을 마주치게 됩니다. 그런데 이러한 접근제한자의 정의나 기능을 명확히 알지 못하고 단순히 '다른 메서드들이 private으로 되어 있어서.. public 으로 되어 있어서.. 나도 그대로 public 으로 선언 해야지' 라는 가벼운 마음으로 사용할 때가 있는 것 같아 명확히 정의와 그 기능을 알아보고자 합니다. 📌 접근 제한자란? 접근 제한자란 말 그대로 클래스 및 인터페이스 그리고 이들이 갖고 있는 멤버들에 대한 접근을 제한하는 것을 말합니다. 클래스와 인터페이스를 다른 패키지에서 사용 못하도록 막기 객체 생성을 막기 위해 생성자를 호출하지 못하게 하기 필드나 메소드를 사용하지 못하도록 막기..

Java 2023.03.08

[Java] extends 와 implements 의 차이

자바에 있어서 OOP, 상속과 관련되 개념은 매우 중요하다고 할 수 있습니다. 자바 코딩의 핵심이라고 볼 수 있으며 자바 관련 조금만 큰 규모 혹은 작은 규모더라도 SpringBoot 코딩을 하다보면 반드시 사용하게 되는 개념 입니다. 얼마 전 회사에서 하나의 시스템과 다른 시스템을 연동하는 20여개의 api 를 개발할 때도 implements를 이용했습니다. 이 때HttpClient.java 라는 파일에는 public ResponseDto getInformation(); 과 같은 형식으로 개발할 api 들에 대해 나열한 interface를만들고 HttpClientImpl 이라는 구현체를 만들어 구현체에서 각 api 들을 구현했습니다. 이렇게 코딩을 하게 되면 api 의 스펙이 도중에 변경 되더라도 Ht..

Java 2023.01.10