[JAVA] Interface
·
JAVA
인터페이스(Interface)는 자바에서 다중 상속을 지원하기 위한 메커니즘 중 하나이며, 객체 지향 프로그래밍의 핵심 개념 중 하나이다. 인터페이스는 클래스가 구현해야 하는 메서드의 명세(specification)를 정의한다. 이를 통해 클래스는 인터페이스가 제공하는 메서드를 구현하여 특정 동작을 수행할 수 있다. 인터페이스의 특징 1. 추상 메서드(Abstract Method): 인터페이스는 추상 메서드만을 가질 수 있습니다. 즉, 메서드의 시그니처만을 정의하고 구현은 없습니다. 2. 상수(Constant): 인터페이스는 상수를 가질 수 있습니다. 상수는 자동으로 public static final로 설정됩니다. 3. 다중 상속(Multiple Inheritance): 클래스는 여러 개의 인터페이스를..
[JAVA] Abstract 예제
·
JAVA
package DAY0326; import java.util.Scanner; abstract class Command{ abstract public void process(); } class List extends Command{ @Override public void process() { System.out.println("데이터 목록을 출력합니다"); } } class Delete extends Command{ @Override public void process() { System.out.println("데이터 항목을 삭제합니다"); } } class Insert extends Command{ @Override public void process() { System.out.println("데이터를 ..
[JAVA] Abstract
·
JAVA
abstract는 자바에서 클래스나 메서드를 추상화할 때 사용되는 키워드이다. 추상 클래스는 객체를 직접적으로 생성할 수 없고, 추상 메서드는 메서드의 구현이 없는 상태로 선언된다. 1. 추상 클래스 (Abstract Class): 추상 클래스는 하나 이상의 추상 메서드를 포함하며, 객체를 직접적으로 생성할 수 없다. 추상 클래스는 상속을 통해 자식 클래스에게 메서드의 구현을 강제할 수 있다. abstract class Shape { abstract void draw(); // 추상 메서드 void display() { System.out.println("Shape"); } } class Circle extends Shape { void draw() { System.out.println("circle."..
[JAVA] static
·
JAVA
자바에서 static은 클래스 멤버를 정의할 때 사용되는 키워드이다. static 키워드가 사용된 변수나 메서드는 해당 클래스의 인스턴스와 관계없이 클래스 자체에 속한다. 즉, 클래스의 모든 인스턴스가 동일한 static 멤버를 공유한다. 1. 정적 변수 (Static Variables): 정적 변수는 클래스에 속하며, 클래스의 모든 인스턴스가 공유한다. 따라서, 객체를 생성하지 않고도 클래스 이름을 통해 접근할 수 있다. public class Example { static int count = 0; // 정적 변수 public static void main(String[] args) { Example.count++; // 정적 변수 접근 System.out.println("Count: " + Exam..
[JAVA] Call By Value / Call By Reference
·
JAVA
Call by value와 Call by reference는 함수 호출 시 매개변수가 전달되는 방식을 나타내는 용어이다. 1. Call by Value (값에 의한 호출): 매개변수로 전달되는 것은 값의 복사본이며, 호출된 함수에서 해당 값의 변경이 있어도 호출한 쪽에는 영향을 주지 않는다. 기본 데이터 타입(primitive type)을 매개변수로 전달할 때 발생한다. public class CallByValueExample { static void modify(int num) { num = num + 10; } public static void main(String[] args) { int number = 5; modify(number); System.out.println("Number: " + nu..
[JAVA] 오버로딩(Overloading)과 오버라이드(Override)
·
JAVA
오버로딩(Overloading)과 오버라이드(Override)는 객체 지향 프로그래밍에서 중요한 개념이다. 이 두 가지 개념은 다형성(polymorphism)을 구현하는데 사용된다. 다형성은 같은 이름의 메서드나 연산자가 다양한 상황에서 다르게 동작할 수 있는 능력을 의미한다. 1. 오버로딩 (Overloading): 오버로딩은 같은 이름의 메서드를 여러 개 정의하는 것을 말한다. 오버로딩된 메서드들은 서로 다른 매개변수의 타입 또는 개수를 가져야 한다. 컴파일러는 호출된 메서드와 일치하는 매개변수를 찾아 실행한다. public class Calculator { // 정수형 덧셈 메서드 public int add(int a, int b) { return a + b; } // 실수형 덧셈 메서드 publi..