Programming 28

인터페이스 (Interface)

🧩 자바 인터페이스 정리!자바에서 인터페이스는 규칙을 정해 놓은 틀입니다.“이런 기능을 만들 거라면, 이런 이름과 모양으로 꼭 만들어 주세요!”라고 강제하는 역할을 해요.✅ 직접 기능을 만들진 않아요.✅ “이런 메서드를 꼭 만들어야 한다”는 형식만 정합니다.✅ 실제 구현은 그 인터페이스를 ‘구현(implements)’하는 클래스가 합니다.🔧 인터페이스란?오직 추상 메서드와 상수만 포함 가능한 구조📌 (단, Java 8 이후부터는 default, static 메서드도 허용)interface InterfaceEx { public static final int NUM = 4; public abstract void method();}🙋‍♀️ 사실 public static final 과 publ..

Programming/Java 2025.05.14

추상 클래스(Abstract Class)

🧱 자바 추상 클래스 정리자바에서 추상 클래스는 말 그대로 미완성 클래스입니다.완전히 구현되지 않은 추상 메서드를 포함하고 있으며,직접 객체 생성은 불가능하고, 상속을 통해 완성해야 사용할 수 있어요.📌 추상 클래스란?추상 클래스는 공통된 특징을 묶어낸 설계도입니다.abstract class Animal { abstract void sound(); // 추상 메서드}abstract 키워드를 붙이면 클래스나 메서드를 추상으로 만들 수 있어요.추상 메서드는 선언만 존재하고, 내용(구현부)은 없음추상 클래스는 직접 new로 인스턴스 생성할 수 없습니다.🧠 추상화, 구체화 개념 간단 요약용어의미추상여러 클래스에서 공통된 특징을 뽑아냄추상화공통 부분을 따로 떼어내서 조상 클래스로 만드는 작업구체화추상 ..

Programming/Java 2025.05.14

Java의 조건문

🌈 자바의 조건문🧭 자바의 제어 흐름이란?자바 프로그램은 기본적으로 위에서 아래로 순차적으로 실행됩니다.하지만! 때때로 프로그램은 특정 조건에 따라 분기하거나, 어떤 동작을 반복해야 하죠.이럴 때 사용하는 것이 바로 제어 흐름 문법입니다.✅ 1. if 문 – 조건이 맞으면 실행!가장 기본적인 조건문입니다.if (조건식) { // 조건이 true일 때 실행할 코드}📌 예제 1: 온도에 따라 행동 바꾸기int temp = 30;if (temp >= 28) { System.out.println("날씨가 덥네요! 에어컨을 켜요.");}👉 온도가 28도 이상이면 에어컨을 켜는 메시지를 출력합니다.⚠️ 괄호 {} 생략?if (temp >= 28) System.out.println("더워요!"..

Programming/Java 2025.05.01

다형성(Polymorphism)이 뭔가요?

🎯 다형성이란 무엇인가?여러 가지 형태를 가질 수 있는 능력객체지향 프로그래밍(OOP)에서 다형성은 같은 타입(조상 타입)의 참조변수로다양한 자식 객체들을 조작할 수 있는 능력을 의미합니다.즉,부모 타입 변수로 여러 자식 타입 객체를 다룰 수 있다!Animal myPet = new Dog();Animal yourPet = new Cat();myPet, yourPet 모두 Animal 타입이지만 실제 객체는 Dog, Cat입니다.🛠️ 다형성의 동작 방식조상 타입 참조 → 자손 객체 참조Parent p = new Child();Parent 타입 참조변수 p가Child 타입 인스턴스를 가리킵니다.🛎️ 메서드 호출 흐름 (가상 메서드, 동적 바인딩)컴파일 시점: 참조변수 타입 기준으로 메서드 존재 여부 ..

Programming/Java 2025.04.30

StringBuilder Vs StringBuffer

🎯 StringBuilder & StringBuffer란?문자열을 수정 가능(mutable) 하게 만들어주는 자바 클래스입니다.String은 한 번 만들어지면 수정할 수 없지만,StringBuilder와 StringBuffer는 기존 문자열을 직접 수정할 수 있어요.🔥 String과 차이점은?📌 기본 개념 비교구분StringStringBuilder / StringBuffer변경 가능 여부❌ 불변 (immutable)✅ 가변 (mutable)메모리 사용새 객체 계속 생성기존 객체 수정성능수정 많으면 느림빠름 (수정에 최적화)✨ 쉽게 말하면String은 매번 새 종이에 새로 쓰는 느낌.StringBuilder/StringBuffer는 기존 종이에 고쳐 쓰는 느낌! 🏎️ StringBuilder..

Programming/Java 2025.04.29

문자열 String Class

📃 문자열 String🎯 String이란?String은 문자의 집합을 표현하는 참조형(객체형) 데이터 타입입니다. ⚠️ 주의: 문자 하나(char)와 문자열(String)은 다릅니다!char letter = 'A'; // 문자 하나String word = "Apple"; // 문자열 (객체)🔮 String 객체의 특징구분설명불변성(Immutable)한 번 만들어진 문자열은 수정할 수 없다.메모리 최적화동일한 문자열 리터럴은 메모리 공간을 공유한다.참조형 데이터기본형이 아니라 객체로 관리된다.⚙️ String 클래스의 구조public final class String implements java.io.Serializable, Comparable, CharSequence { privat..

Programming/Java 2025.04.29

Java의 반복문과 흐름 제어 키워드!

🔁 반복문과 흐름 제어 키워드🔁 반복문이란?같은 동작을 여러 번 하고 싶을 때 사용하는 프로그래밍의 마법 도구!🎯 이런 상황, 한 번쯤 해보셨죠? 👩‍🏫 "1부터 10까지 숫자 출력해봐!" 💻 처음에는 이렇게 쓸 수도 있어요System.out.println(1);System.out.println(2);System.out.println(3);...System.out.println(10);😵‍💫 10번은 그렇다 쳐도,100번? 1000번? 1억번? 이걸 매번 손으로 써야 한다면?정신이 아득해지겠죠..? 저는 벌써부터 다 손으로 칠 생각을 하니까... 하아.. 🤯💢그래서 나오 해결책이반복문!지금부터 반복문 사용방법을 알아보도록 할게요!🧮 기본 for 문정해진 횟수만큼 반복할 때 가장 자..

Programming/Java 2025.04.23

자바의 배열(Array)

📦 자바의 배열(Array)🧊 배열이란?배열(Array)은같은 자료형의 값 여러 개를 저장할 수 있는 연속된 공간이에요.🥚 계란판 → 고정된 칸 수, 각 칸에 1개씩! 마치 계란판처럼 정해진 칸에 하나씩 데이터를 담을 수 있는 구조가 바로 배열이에요! 그리고 중요한 건, 칸의 개수는 처음 만들 때만 정할 수 있고, 나중엔 바꿀 수 없어요!🔢 배열을 왜 쓰나요?🙅‍♀️ 배열 없이 변수를 쓰면?int score1 = 90;int score2 = 85;int score3 = 100;점수가 100명이라면… 변수 100개 선언해야 할까요?! 😱✅ 배열을 쓰면!int[] scores = new int[100];한 줄로 점수 100개 저장 가능! 🙌✨ 배열 선언과 생성자료형[] 배열이름 = new 자료..

Programming/Java 2025.04.22

접근 제어자

🔐 자바 접근 제어자“클래스, 변수, 메서드... 누가 어디까지 접근할 수 있는 거지?”자바에서는 접근 제어자를 통해 이 모든 걸 컨트롤할 수 있어요!지금부터 한눈에 + 쉽게 정리해드릴게요 ✨🤷 접근 제어자란?접근 제어자는 클래스나 클래스 멤버(필드, 메서드 등)에“누가 접근할 수 있는가?” 를 정해주는 보안등급 같은 거예요.🚪 문을 여는 열쇠라고 생각하면 돼요!공개할 건 공개하고, 감출 건 감추는 게 객체지향의 기본이니까요 💡🛡️ 접근 제어자의 종류접근 제어자접근 가능 범위private같은 클래스 내부 에서만 접근 가능(default)같은 패키지 에서 접근 가능 (별도 키워드 없이 선언된 경우)protected같은 패키지 + 상속 관계의 다른 패키지 클래스 에서 접근 가능public어디서든 접..

Programming/Java 2025.04.17

자바 중첩 클래스란?

🎁 자바 중첩 클래스 완전 정복!!"클래스 안에 또 클래스가 있어요?"네, 맞습니다! 자바에서는 클래스 안에 또 다른 클래스를 선언할 수 있습니다.이런 걸 중첩 클래스(Nested Class) 라고 불러요!🧩 중첩 클래스의 분류자바에서는 클래스 안에 또 다른 클래스를 정의할 수 있어요.이런 구조를 중첩 클래스(Nested Class) 라고 부릅니다.👀중첩 클래스는 크게 두 가지로 나뉘어요구분설명Static 중첩 클래스static 키워드로 선언된 클래스. 외부 클래스의 인스턴스 없이 사용 가능Non-static 중첩 클래스 (Inner Class)외부 클래스의 인스턴스와 함께 사용되는 클래스 (비정적 클래스)👇🏼👇그리고 Inner Class 안에는 아래와 같은 세 가지 종류가 있어요👇🏻👇I..

Programming/Java 2025.04.14