본문 바로가기

JAVA55

[JAVA] 중첩 클래스의 종류, 특징 중첩 클래스(Nested Class)개념하나의 클래스 내에 선언된 또 다른 클래스즉, 한 클래스 내에서 다른 클래스를 정의하여 사용외부 클래스의 멤버로써 중첩 클래스를 사용함 중첩 클래스를 사용하는 이유하나의 클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하여 사용하는 것이 좋지만특정 1개의 클래스와 관계를 맺는 경우에는, 관계를 맺은 클래스 내부에 선언하는 것이 좋음외부 클래스와는 서로 밀접한 관계가 있는 경우에2개의 클래스를 묶어서 한번에 관리하여 캡슐화를 증가 시키고, 유지보수에 도움을 줌 장점중첩 클래스를 사용하면, 두 클래스의 멤버들끼리 서로 쉽게 접근할 수 있음불필요한 관계 클래스를 내부에 감춰서, 코드의 복잡성을 줄일 수 있음  중첩 클래스의 4가지 종류class OuterCla.. 2024. 4. 23.
[JAVA] 상속과 인터페이스, 추상클래스와 인터페이스의 차이 상속와 인터페이스의 차이점 상속 인터페이스 extends 키워드 사용 implements 키워드 사용 멤벼변수, 메서드 상수, 추상메서드(미완성 메서드) public static final int num; - 상수 public abstract void method(); - 추상메서드 public static final public abstract (생략 가능, 컴파일 시에 추가) 단일 상속 (하위 클래스는 상위 클래스 1개만 상속 가능) 다중 구현이 가능 (하위 클래스가 여러 인터페이스를 구현할 수 있음) 추상메서드를 반드시 오버라이딩 하여 구현 인터페이스끼리 상속이 가능 Cat extends Animal Cat implements Animal Cat implements Animal, Pet (다중 구현.. 2024. 4. 23.
[JAVA] 추상 클래스, 추상 메서드, 추상클래스와 인터페이스 차이점 abstract 지정자[정의]1. 기능은 없고2. 선언만 되어 있음[용도]1. 클래스 : 추상 클래스로 사용2. 메서드 : 추상 메서드로 사용    추상 메서드정의public abstract void run(); -- 메서드 선언부구현이 되지 않은 메서드즉, 선언부만 있고, 구현부 블록 { } 이 없는 메서드 [ 구현 메서드 ]- 구현된 메서드 - 즉, 구현부 블록 { } 이 있는 메서드public void run() { } ---- { } 이 있는 메서드​      추상 클래스정의abstract class Student { abstract void run(); // 추상메서드}클래스 선언 시에 abstract로 지정된 클래스하나 이상.. 2024. 4. 22.
[JAVA] 인터페이스(특징, 형식과 구현), 상속과 인터페이스의 차이점 인터페이스정의인터페이스는 구현 클래스(하위 클래스)가 준수해야 하는 메서드를 정의함인터페이스에서는 구현에 대한 세부 사항을 정하지 않고, 구현 클래스(하위 클래스)가 따라야 하는 계약을 지정함 인터페이스의 용도인터페이스를 구현하는 하위 클래스가 인터페이스에 선언된 추상 메서드(불완전한 메서드)들을 강제로 구현하게 하기 위해 사용하위클래스에서 상위 클래스의 추상 메서드를 오버라이딩(@Override)하여 구현하도록  강제함  인터페이스의 특징1. 추상 클래스가 발전된 개념이므로, 인스턴스 생성(new 연산자로 생성)이 불가함인터페이스 내에는 생성자가 없기 때문에(상수와 추상메서드만 있음)new 연산자를 사용하여 인스턴스 생성이 불가함2. 인퍼페이스의 멤버로는 상수와 .. 2024. 4. 22.
[JAVA] static 멤버(static 필드, static 메서드) 정적 멤버(static member, class member) 정의 클래스에 소속된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메서드 클래스에 소속된 멤버이기 때문에 클래스 멤버라고 함 특정한 인스턴스에 속해 있는 멤버가 아님 즉, 인스턴스와 무관함 종류 static 필드(class 필드) static 메서드 특징 class StaticTest { static int count; // static 필드 static void printHello() { // static 메서드 System.out.println("hello"); }​ } 클래스의 인스턴스를 생성하지 않더라도 static 멤버에 접근이 가능 즉, 클래스가 정의만 되어도 static 메서드와 static 필드에 접근이 가능 클래스명과.. 2024. 4. 22.
[JAVA] final 지정자(클래스, 메서드, 변수에 지정하기) final 정의 금지의 의미를 가짐 용도 클래스 : 클래스의 상속을 금지 메서드 : 메서드의 오버라이딩을 금지 필드 : 값의 변경을 금지, 상수(constant)로 사용하겠다는 의미 클래스에 final 지정하기 클래스명에 final을 지정하면, 해당 클래스는 자식 클래스에 상속이 금지 final class 클래스명 { } 예제 메서드에 final 지정하기 final로 지정한 메서드를 자식 클래스에서 오버라이딩 하면 에러 발생 final 반환타입 메서드명( ) { } 예제 변수에 final 지정하기 변수의 값을 금지한다는 뜻 즉 상수(constant)로 사용하겠다는 뜻 [ 상수 ] - 프로그램 실행 후 ~ 종료까지 일정한 값을 유지 - 모든 인스턴스에서 동일한 값을 공유 [ JAVA에서 상수의 형식 ] p.. 2024. 4. 22.