| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 배열
- Visual Studio Code
- math
- vscode
- string
- junit
- Eclipse
- SpringBoot
- html
- javascript
- 문자열
- IntelliJ
- list
- java테스트
- HashMap
- 자바
- Java
- Array
- input
- CSS
- ArrayList
- 자바문법
- 자바스크립트
- 테스트자동화
- 스프링부트
- junit5
- 정규식
- 단위테스트
- 인텔리제이
- js
- Today
- Total
목록자바문법 (32)
어제 오늘 내일
Java에서 추상 클래스(abstract class)와 인터페이스(interface)는 모두 "규칙을 정의하고 자식 클래스가 구현하도록 만드는 기능"을 하지만, 목적과 사용 방식, 설계 개념에서는 분명한 차이가 있습니다.이 글에서는 두 개념의 차이를 명확히 이해할 수 있도록 구조와 예제를 중심으로 정리합니다. 1. 공통점추상 클래스와 인터페이스 모두:객체 생성 불가미완성 메서드(추상 메서드)를 포함할 수 있음자식 클래스가 반드시 구현해야 하는 기능을 정의다형성을 지원하지만, 실제 설계 시 선택 기준은 둘의 차이점에서 결정됩니다. 2. 추상 클래스란?abstract 키워드로 선언하며, 상속을 통해 공통 기능 + 확장 가능한 구조를 제공하는 클래스입니다.특징일반 메서드 + 추상 메서드 모두 포함 가능객체 생..
Java에서 추상클래스(abstract class)는 객체를 직접 생성할 수 없고, 상속을 통해서만 사용되는 클래스입니다.완성되지 않은 메서드(추상 메서드)를 포함할 수 있으며, 공통 기능은 제공하되 세부 동작은 자식 클래스가 구현하도록 강제하는 역할을 합니다. 1. 추상클래스의 기본 개념추상클래스는 abstract 키워드를 사용하여 선언합니다.특징객체 생성 불가추상 메서드 포함 가능(선언만 있고 구현 없음)일반 메서드(구현된 메서드)도 포함 가능공통적인 속성과 동작을 정의하는 데 사용형식:abstract class Animal { abstract void sound(); // 추상 메서드}설명sound()는 구현이 없으므로 자식 클래스가 반드시 구현해야 함 2. 추상클래스 사용 목적여러 클래스가 ..
Java에서 interface(인터페이스)는 클래스를 설계할 때 규칙(기능의 명세)을 정의하는 역할을 합니다.인터페이스는 객체가 “무엇을 할 수 있는지”를 정의하며, 실제 구현은 이를 구현(implements)한 클래스가 담당하게 됩니다.인터페이스는 다형성과 유연한 구조 설계에 핵심적으로 사용됩니다. 1. interface란?인터페이스는 추상 메서드들의 집합으로 볼 수 있습니다.(단, Java 8 이후에는 default 메서드와 static 메서드도 포함 가능)특징생성자 없음객체 생성 불가모든 메서드는 기본적으로 추상(abstract)다중 구현(implements)이 가능클래스가 수행해야 할 기능을 명확히 강제형식:interface 인터페이스명 { // 추상 메서드 void method();}..
Java에서 자식클래스는 객체가 생성될 때 반드시 부모클래스의 생성자를 먼저 호출합니다.이를 위해 사용하는 문법이 바로 super()입니다. 부모 생성자 호출은 상속 관계에서 객체가 올바르게 초기화되도록 만드는 중요한 과정입니다. 1. 부모 생성자 호출의 기본 개념자식클래스의 생성자가 실행되기 전에부모클래스의 생성자가 먼저 호출되어야 한다는 것이 Java의 규칙입니다.자식 생성자 안에서 명시적으로 부모 생성자를 호출하지 않더라도, Java는 자동으로 super()를 첫 줄에 삽입합니다.예:class Parent { Parent() { System.out.println("Parent 생성자"); }}class Child extends Parent { Child() { ..
Java의 접근 제어자(Access Modifier)는 클래스, 필드, 메서드가 어디까지 접근 가능한지 범위를 결정하는 중요한 문법 요소입니다. 적절한 접근 제어자는 코드의 안정성과 캡슐화를 강화하고, 불필요한 노출을 막아 더 안전한 구조를 만들 수 있게 합니다. Java에서 제공하는 주요 접근 제어자는 public, private, protected, default(명시 없음)입니다. 1. public가장 개방적인 접근 제어자입니다.어디서든 접근이 가능합니다.public class Person { public String name;}특징다른 패키지에서도 접근 가능외부 공개 API 등을 작성할 때 사용 2. private가장 제한적인 접근 제어자입니다.같은 클래스 내부에서만 접근 가능합니다.publ..
Java에서 void 메서드는 값을 반환하지 않는 메서드입니다. 따라서 호출하는 방식도 반환값이 있는 메서드와 약간 다릅니다. 이 글에서는 void 메서드가 어떤 특징을 가지며, 어떻게 호출하는지 간단하고 명확하게 설명합니다. 1. void 메서드 정의 예제먼저 void 메서드는 다음과 같이 선언합니다:public void sayHello() { System.out.println("Hello");}설명반환 타입이 void이므로 어떤 값도 돌려주지 않음출력만 하고 종료 2. void 메서드 호출 방법void 메서드는 그냥 메서드 이름을 호출하면 됩니다.sayHello(); // 호출호출 결과Hello값을 반환하지 않기 때문에, 다음과 같이 사용할 수 없습니다:String result = sayHell..
Java에서 void는 메서드가 아무런 값을 반환하지 않는다는 것을 의미하는 키워드입니다. 메서드의 반환 타입(return type) 위치에 사용되며, 메서드가 실행만 하고 결과값을 돌려주지 않을 때 사용됩니다. 1. void의 기본 의미Java 메서드는 일반적으로 어떤 값을 반환하지만, 경우에 따라 반환값이 필요 없는 메서드도 존재합니다. 이런 경우 반환 타입 자리에 void를 사용합니다.예:public void sayHello() { System.out.println("Hello");}설명메서드는 실행만 할 뿐, 호출한 곳으로 값을 돌려주지 않는다return 문을 써도 값은 반환할 수 없음 (단독 return은 가능) 2. void 메서드의 특징반환값 없음return 키워드 생략 가능필요하다면 ..
Java에서 static 키워드는 클래스에 속하는 멤버를 정의할 때 사용하는 중요한 키워드입니다. 객체를 만들지 않고도 사용할 수 있으며, 프로그램 전체에서 공유되는 특성을 가집니다. 이 글에서는 static의 개념과 사용 방법을 간단하고 명확하게 정리합니다. 1. static의 기본 개념static은 클래스 수준의 변수나 메서드를 정의하는 데 사용되는 키워드입니다.즉, 객체마다 따로 존재하는 것이 아니라 클래스가 로딩될 때 단 한 번 생성되고 모든 인스턴스가 공유합니다.예:class Counter { static int count = 0;}설명count는 객체가 아닌 클래스에 속함프로그램에서 하나만 존재 2. static 변수 (클래스 변수)객체마다 다른 값을 가지는 인스턴스 변수와 달리, sta..
Java에서 삼항연산자(ternary operator)는 조건식을 간단하게 표현할 수 있는 연산자로, if-else 문을 한 줄로 줄여주는 역할을 합니다. 코드가 간결해지고 가독성이 높아져 자주 활용되는 문법 중 하나입니다. 1. 삼항연산자의 기본 형태삼항연산자의 구조는 다음과 같습니다:조건식 ? 값1 : 값2동작 방식조건식이 true → 값1 선택조건식이 false → 값2 선택예:int result = (10 > 5) ? 1 : 0; // result = 1 2. if-else를 대체하는 간단한 예int age = 20;String type = (age >= 18) ? "성인" : "미성년자";설명age가 18 이상이면 "성인" 선택그렇지 않으면 "미성년자" 선택같은 로직을 if-else로 표현하면 ..
Java에서 @Override 어노테이션은 메서드가 상위 클래스의 메서드를 재정의(override) 하고 있음을 명확하게 표시하는 데 사용됩니다. 코드의 가독성을 높이고, 실수로 인해 오버라이딩이 제대로 이루어지지 않는 상황을 방지해 주는 매우 중요한 어노테이션입니다. 1. @Override 어노테이션이란?@Override는 메서드가 부모 클래스 또는 인터페이스의 메서드를 재정의하고 있다는 것을 컴파일러에게 알려주는 역할을 합니다.만약 오타나 메서드 시그니처가 일치하지 않아 실제로는 오버라이딩이 되지 않음에도 작성자가 그렇게 의도한 경우, 컴파일 오류를 발생시켜 실수를 빠르게 확인할 수 있게 해줍니다.예:@Overridepublic String toString() { return "Hello";} ..