본문 바로가기

Java23

[JAVA] 인터페이스 (Interface) 인터페이스는 자바에서 다중 상속을 지원하는 중요한 개념입니다. 인터페이스는 추상 메서드만을 포함 하며, 객체의 공통된 기능을 강제할 수 있도록 합니다. 인터페이스는 일반 클래스와 달리 객체 생성이 불가능 하며, 구현 클래스에서 반드시 메서드를 오버라이딩하여 사용해야 합니다.인터페이스의 주요 특징인터페이스는 interface 키워드를 사용하여 선언합니다.인터페이스는 **상수(public static final)**와 **추상 메서드(public abstract)**로만 구성되어 있습니다.인터페이스는 다중 상속을 지원하므로 여러 개의 인터페이스를 동시에 구현할 수 있습니다.인터페이스의 모든 메서드는 public abstract의 특성을 갖습니다. 메서드의 선언부만 있고, 몸체는 없습니다.예제인터페이스 선언p.. 2025. 1. 11.
[JAVA] Final , abstract(추상) Final, Abstract 는 Java에서 클래스 설계와 상속 관계를 효율적으로 관리하고, 재사용성과 확장성을 높이기 위한 핵심 요소입니다. 1. FinalFinal은 변수, 메소드, 클래스에 적용되어 특정 동작이나 속성을 변경하지 못하도록 제한합니다.특징Final 변수초기화 이후 값을 변경할 수 없습니다.반드시 초기화가 필요합니다(선언과 동시에 또는 생성자를 통해).  Final 메소드오버라이딩 금지를 의미합니다.메소드의 구현을 고정하여 하위 클래스에서 변경하지 못하게 할 때 사용합니다.Final 클래스상속 금지를 의미합니다.해당 클래스를 그대로 사용해야 하며, 더 이상 확장하지 못합니다.public final String nation = "대한민국"; // 초기화 완료public final Stri.. 2025. 1. 11.
[JAVA] Static과 Singleton 패턴 Static과 Singleton 패턴은 Java에서 객체와 데이터를 효율적으로 관리하기 위한 중요한 개념입니다.1. Static 개념 및 활용Static은 객체마다 공유되는 동일한 값을 가지거나, 객체 생성 없이 클래스 레벨에서 직접 접근해야 할 때 사용하는 키워드입니다.Static 멤버 변수Static 변수는 객체들이 공유하는 값입니다.일반 변수는 각 객체마다 고유한 값을 가지지만, Static 변수는 클래스 레벨에서 생성되며 모든 객체가 동일한 값을 참조합니다.public class Count { public int a; // 일반 변수 public static int b; // 정적 변수} 예제: Static 변수 사용Count c1 = new Count();c1.a++; // 객체별로 .. 2025. 1. 11.
[JAVA] 자바의 다형성(Polymorphism) 이해하기: 개념부터 예제까지 다형성은 자바 객체지향 프로그래밍에서 매우 중요한 개념 중 하나입니다. 이를 통해 객체가 다양한 형태를 가질 수 있으며, 유연하고 확장성 높은 코드를 작성할 수 있습니다. 이번 글에서는 다형성의 기본 개념, 예제, 그리고 활용 방법을 다루며, 관련된 핵심 주제인 instance of 연산자와 클래스 캐스팅 도 함께 설명하겠습니다.1. 다형성(Polymorphism)정의: 객체가 다양한 형태를 가질 수 있는 성질.특징:자식 객체가 부모 타입을 가질 수 있다.부모 타입으로 선언된 변수는 부모 클래스의 메서드만 사용할 수 있다.단, 오버라이딩(Overriding) 된 메서드는 자식 클래스의 구현이 실행된다.상속 관계가 반드시 전제되어야 한다.2. 클래스 형변환(Class Casting)다형성으로 인해 부모 타.. 2025. 1. 11.
[JAVA] 접근제어자, 은닉 접근 제어자(Access Modifier)와 은닉(Encapsulation)은 자바의 객체지향 프로그래밍에서 데이터 보호와 캡슐화를 구현하는 핵심 개념입니다.이들은 클래스와 멤버(변수, 메서드)의 접근 범위 를 제한하거나 관리하여, 코드의 보안성과 유지보수성을 높이는 데 기여합니다1. 접근제어자(Access Modifiers)클래스에 적용되는 접근제어자public: 다른 패키지에서도 접근 가능.default: 접근제어자를 명시하지 않으면 default로 설정되며, 같은 패키지 내에서만 접근 가능.예시   class A {//클래스 붙는 접근제어자(접근제어자를 붙이지않으면 default)}  public class B {A a = new A(); //default는 같은 패키지에서 접근가능}  멤버 변수와.. 2025. 1. 11.
[JAVA] 오버라이딩(Overriding) , 오버로딩(overloading) , super 와this 자바 오버로딩(Overloading), 오버라이딩(Overriding), super와 this 이해하기자바 프로그래밍에서 오버로딩, 오버라이딩, 그리고 super-this 키워드는 객체지향 프로그래밍의 핵심 개념입니다. 이들은 코드의 재사용성과 가독성을 높이고, 다양한 상황에서 유연하게 동작할 수 있도록 도와줍니다. 이 글에서는 이 세 가지 개념을 쉽게 이해할 수 있도록 예제를 통해 설명하겠습니다.1. 오버로딩(Overloading)오버로딩은 같은 이름의 메서드를 여러 개 정의하되, 매개변수의 타입이나 개수를 다르게 지정하여 사용할 수 있게 하는 기능입니다.특징컴파일 시간에 결정됩니다.리턴 타입은 오버로딩을 구분하는 기준이 아닙니다.class Calculator { // 정수 두 개를 더하는 메서드.. 2024. 11. 30.