| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- junit5
- 정규식
- Java
- Eclipse
- 배열
- 자바스크립트
- 자바
- vscode
- input
- 단위테스트
- java테스트
- js
- CSS
- 자바문법
- IntelliJ
- Visual Studio Code
- string
- 테스트자동화
- javascript
- html
- list
- SpringBoot
- ArrayList
- math
- junit
- Array
- 인텔리제이
- 문자열
- HashMap
- 스프링부트
- Today
- Total
목록Java (283)
어제 오늘 내일
Java의 enum(열거형)은 한정된 값들의 집합을 표현할 때 사용하는 특별한 타입입니다.예를 들어 요일, 상태값, 권한 등 “정해진 값만 존재해야 하는 상황”에서 매우 유용합니다.enum을 사용하면 코드 안정성이 높아지고, switch문이나 상수 처리도 훨씬 직관적입니다. 1. enum 기본 사용법enum은 클래스처럼 파일에 선언할 수 있으며, 여러 상수를 나열합니다.public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}사용:Day today = Day.MONDAY;특징각 값은 객체처럼 취급됨상수명을 모두 대문자로 작성하는 것이 관례 2. enum을 사용하는 이유✔ 문자열/숫자 상수보다 안전String da..
Java의 익명 클래스(anonymous class)는 이름이 없는 클래스이며,일회성 동작을 만들 때 매우 유용합니다.특히 인터페이스 구현, 추상 클래스 상속, 콜백 처리, 이벤트 핸들러 등에서 널리 사용됩니다.익명 클래스는 “클래스를 만들고 → 객체 생성”의 과정을 한 번에 처리할 수 있는 간결한 방식입니다. 1. 익명 클래스 기본 형태익명 클래스는 보통 인터페이스나 추상 클래스의 구현을 즉석에서 정의할 때 사용합니다.형식:타입 변수 = new 타입() { // 메서드 재정의(오버라이딩) 필요}; 2. 인터페이스 구현 예제가장 일반적인 사용 방식입니다.interface Greeting { void hello();}public class Main { public static void ma..
Java의 내부 클래스(inner class)는 클래스 내부에 선언된 클래스로, 외부 클래스와 밀접한 연관이 있는 로직을 함께 묶어 관리할 때 사용됩니다.내부 클래스는 외부 클래스의 멤버에 쉽게 접근할 수 있고, 구조를 논리적으로 그룹화하는 데 유용합니다. Java에서는 내부 클래스를 네 가지 형태로 제공합니다. 1. 멤버 내부 클래스 (Member Inner Class)외부 클래스의 멤버 위치에 선언된 일반적인 내부 클래스입니다.외부 클래스의 인스턴스 멤버에 자유롭게 접근할 수 있습니다.예제class Outer { private int value = 10; class Inner { void print() { System.out.println("value = "..
메서드 오버라이딩(Overriding)은 자식 클래스에서 부모 클래스의 메서드를 재정의하여자식 클래스에 맞는 동작을 구현하는 기능입니다.다형성의 핵심 요소이며 객체지향에서 매우 중요한 개념입니다.이 글에서는 오버라이딩을 사용할 때 반드시 지켜야 하는 규칙을 명확하게 정리합니다. 1. 메서드 이름이 같아야 한다부모 메서드와 동일한 메서드 이름을 가져야 오버라이딩이 성립합니다.class Parent { void hello() {}}class Child extends Parent { @Override void hello() {} // 이름 동일} 2. 매개변수(파라미터) 타입과 개수가 같아야 한다메서드 시그니처(이름 + 매개변수)가 완전히 같아야 오버라이딩입니다.조금이라도 다르면 오버로딩(O..
Java에서 객체지향 설계를 할 때 중요한 선택 중 하나는“상속(Inheritance)을 사용할 것인가, 합성(Composition)을 사용할 것인가?” 입니다.두 개념은 모두 객체 간 관계를 표현하지만, 구조적 차이와 설계 철학에서 큰 차이를 보입니다.이 글에서는 합성과 상속의 개념, 특징, 차이점, 언제 사용해야 하는지 명확하게 정리합니다. 1. 상속(Inheritance)상속은 부모 클래스의 기능을 자식 클래스가 물려받는 관계입니다.is-a 관계라고도 부릅니다.예:class Animal { void eat() { System.out.println("먹습니다"); }}class Dog extends Animal { void bark() { System.out...
Java를 비롯한 객체지향 프로그래밍(OOP)에서는 4대 핵심 원칙이 존재합니다.바로 상속(Inheritance), 추상화(Abstraction), 캡슐화(Encapsulation), 다형성(Polymorphism)입니다.이 네 가지가 객체지향의 구조와 설계를 이루는 기본 뼈대이며, 서로 유기적으로 연결되어 동작합니다. 1. 상속(Inheritance)상속은 기존 클래스(부모)의 속성과 기능을 새로운 클래스(자식)가 물려받는 것입니다.특징부모 클래스의 필드와 메서드 재사용코드 중복 감소자식 클래스에서 기능 확장 가능예제class Animal { void eat() { System.out.println("먹습니다"); }}class Dog extends Animal { void..
Java의 캡슐화(Encapsulation)는 객체지향 프로그래밍(OOP)의 핵심 개념 중 하나로,객체의 데이터(필드)를 외부에서 직접 접근하지 못하도록 숨기고, 필요한 경우 메서드를 통해서만 접근하도록 만드는 것을 의미합니다.이를 통해 데이터 보호, 잘못된 접근 방지, 유지보수성 향상 등의 효과를 얻을 수 있습니다. 1. 캡슐화의 핵심 개념캡슐화는 크게 두 가지 원칙으로 구성됩니다.필드(변수)를 private으로 감추기 (정보 은닉)getter/setter 같은 공개된 메서드를 통해 접근하도록 제한하기예:private int age; // 외부에서 직접 접근 불가public int getAge() { // 메서드를 통해서만 접근 return age;}public void setAge(..
Java에서 다형성(Polymorphism)은 객체지향 프로그래밍(OOP)의 핵심 개념 중 하나로,같은 타입(부모 타입)으로 다양한 형태(자식 객체)를 다룰 수 있는 능력을 말합니다.즉, 하나의 타입이 여러 동작을 수행할 수 있도록 만드는 강력한 기능입니다.1. 다형성이란?다형성은 여러 형태를 갖는다라는 의미로, Java에서는 다음과 같은 상황에서 나타납니다:부모 타입 변수로 자식 객체를 참조할 수 있다오버라이딩된 메서드는 실제 객체 타입 기준으로 실행된다형식:부모클래스 변수 = new 자식클래스();예:Animal a = new Dog();Animal b = new Cat();설명같은 Animal 타입이지만, 실제 객체는 Dog 또는 Cat실제 객체 타입에 따라 동작이 달라짐 2. 다형성의 핵심: 오버..
Java에서 this 키워드는 현재 객체(instance) 를 가리키는 참조입니다.클래스 내부에서 객체 자신의 변수, 메서드, 생성자를 명확하게 구분하거나 호출할 때 사용됩니다.this는 객체지향 프로그래밍에서 매우 중요한 개념이므로 정확히 이해하는 것이 좋습니다. 1. this로 멤버 변수와 지역 변수 구분하기메서드나 생성자 안에서 매개변수 이름과 멤버 변수 이름이 같을 때, 구분하기 위해 this를 사용합니다.예제class Person { String name; Person(String name) { this.name = name; // this.name = 멤버 변수, name = 매개변수 }}설명this.name → 객체의 멤버 변수name → 생성자의 매개변수동일한 ..
Java에서 static 키워드는 클래스 수준에서 공유되는 멤버를 정의할 때 사용됩니다.static 변수와 static 메서드는 모두 객체가 아닌 클래스 자체에 소속되지만, 두 개념은 용도와 동작 방식에서 차이가 있습니다.이 글에서는 static 변수와 static 메서드의 차이를 명확하게 정리합니다. 1. static 변수 (클래스 변수)static 변수가 선언되면, 해당 변수는 모든 객체가 공유하는 하나의 값만 존재합니다.클래스가 메모리에 로드될 때 단 한 번 생성됩니다.예제class Counter { static int count = 0; // static 변수 int id; Counter() { count++; id = count; }}사용:Coun..