Backend/Java 45

인터페이스와 추상화 클래스(interface VS abstract class)

안녕하세요. 오늘은 인터페이스와 추상화 클래스의 차이점을 알아볼 거예요. 이 친구들을 알아보기 전 공통점은 미완성된 설계도 역할이라는 점인데요. 역할을 같지만 사용하는 방식이 달라서 같이 알아볼까요? 인터페이스(interface) 인터페이스는 간단하게 "계약서" 같은 친구예요. 행동의 형태(메서드 이름, 매개 변수)만 정해놓고, 실제 어떻게 할지는 나중에 각각 다르게 구현 가능하게 해 주는데요. 그리고 여러 개를 동시에 구현할 수 있답니다.// 1. 인터페이스 정의public interface Animal { void makeSound(); // 몸체 없는 메서드}// 2. 인터페이스 구현(implements) 클래스public class Dog implements Animal { @O..

Backend/Java 2025.07.12

스태틱과 인스턴스의 차이점( static VS instance)

안녕하세요. 이번에는 자바의 중요한 개념 중 하나인스태틱(static)과 인스턴스(instance)의 차이점을 알아볼 거예요. 처음에는 혼란이 올 수 있지만, 조금씩 익숙해지면 객체지향 프로그래밍이 훨씬 명확해지니 천천히 하나씩 알아볼게요! statc 스태틱은 클래스가 메모리에 올라갈 때 한 번만 생성되는 친구예요. 객체 없이도 사용 가능하고, 모든 객체가 같은 값을 공유해 줘요.public class MathTool { public static int count = 0; // static 변수 public static void increase() { // static 메서드 count++; }}// 사용MathTool.increase();MathTool.increase(..

Backend/Java 2025.07.12

접근제한자(Access Modifiers)

안녕하세요. 이번에는 접근제한자에 대해 알아볼 건데요! 접근 제한자(Access Modifiers) 클래스, 메서드, 필드 등에 대한 접근 권한을 제어하는 데 사용(약속)하는 친구예요! 코딩의 시작 첫 파일을 실행 중 화면을 보시면 public class Hello { public static void main(String[] args) { }}대부분 이렇게 코딩을 시작하게 됩니다. 그중 앞에 public이 바로 접근제어자입니다. public을 사용한 이유는 시작점을 자바가 찾을 수 있게 일부러 public으로 열어두는 거예요! 이제부터 왜 접근제어자 중 시작이 왜 public인지 그리고 종류가 몇 가지가 있는지 함께 보시죠! public 첫 번째 코드는 public입니다. 이 친구..

Backend/Java 2025.07.12

업캐스팅과 다운캐스팅

안녕하세요. 오늘은 업캐스팅과 다운캐스팅의 설명과 차이점을 공유하고 싶어서 작성하게 됬어요 첫 업캐스팅과 다운캐스팅을 교육을 받을 때 머리가 조금 아팠던 기억이 납니다. (물론 지금도 지끈지끈합니다) class Animal { void sound() { System.out.println("동물들은 각 다른 소리를 냅니다."); }}class Dog extends Animal { void sound() { System.out.println("강아지는 왈왈!"); } void fetch() { System.out.println("강아지는 공을 가져옵니다."); }}예시 코드를 들고 왔는데요. 코드를 보면서 하나하나 같이 알아보는 시간을 가..

Backend/Java 2025.07.11

오버라이딩과 오버로딩

안녕하세요. 오늘은 제가 Java를 공부하면서 처음으로 혼란스럽게 한 두 친구를 소개하고자 해요. 바로 오버라이딩과 오버로딩입니다. 이름이 비슷해서 볼 때마다 새롭고 혼란스러웠는데요. 사실 이 두 친구는 전혀 다른 내용을 가지고 있답니다. 같이 차이점을 알아볼까요? 오버라이딩 오버라이딩은 상속받은 메서드를 제정의 하는 친구입니다. 예시)class Animal { void sound() { System.out.println("동물이 소리를 낸다"); }}class Dog extends Animal { @Override void sound() { System.out.println("멍멍!"); }}지금 예시는 클래스 Animal 은 보호자, 클래스 Do..

Backend/Java 2025.07.08