JAVA(77)
-
중첩 클래스 -정적 중첩 클래스
public class NestedOuter { private static int outClassValue = 1; private int outInstanceValue = 2; static class nested{ private int nestedInstanceValue = 3; public void print() { // 자신의 멤버에 접근 - 가능 System.out.println("nestedInstanceValue = " + nestedInstanceValue);// // 바깥 인스턴스에 직접 접근 - 불가능// System.out.println("outInstanceValue ..
2024.05.28 -
중첩 클래스
중첩 클래스말 그대로 중첩해서 정의한 클래스. 이를 중첩 클래스라 한다. 중첩 클래스 분류중첩 클래스는 정의하는 위치, 키워드에 따라 분류 된다. 내부 클래스 - non-static(비정적)중첩 클래스 - static(정적)Inner class(내부 클래스)static nested class(정적 중첩 클래스)Local class(지역 클래스) anonymous class(익명 클래스) *바깥 인스턴스 소속*전혀 다른 인스턴스 중첩 클래스 선언 위치(= 변수의 선언 위치)- 정적 중첩 클래스 위치 = 정적 변수 위치- 내부 클래스 위치 = 인스턴스 변수 위치- 지역 클래스 위치 = 지역 변수 위치(= 코드 블럭 안)ㄴ 익명 클래스는 지역 클래스의 하위 개념이다. 특수성을 띄고 있다. 내부 vs 중첩중첩(..
2024.05.28 -
enum
enum이란?특정 범위의 값을 지정해두고 제공하는 열거형 타입이다. 왜 사용하는가?Spring 사용 시 타입 안정성 부족 - 값의 제한이 어려움 : 대/소문자 구분, 오타 등을 관리 하기 어렵다. - 컴파일 오류 감지 불가 : 오타와 같은 상황이 발생해도 단순한 String 이므로 컴파일 단계에서 오류를 잡을 수 없다. -> 런타임 오류로 직결됨. ComparableEnum 에서 comaprable 인터페이스의 compareTo()를 사용할 땐 항상 주의해야 한다.Object 와 같이 enum 타입은 Enum을 상속하는데, Enum에는 이미 comparable 을 구현한 메서드가 있다.public final int compareTo(E o) { Enum other = o; En..
2024.05.01 -
String_String pool
String a = "big"; String b = "big"; String 참조변수에 "문자열" 을 대입한다는 것은 String a = new String("big"); String b = new String("big"); 와 같다고 했다. 그렇다면, 아래와 같이 연산했을 때 당연히 결과값은 False 여야 한다. a == b;// 기대값 false 그러나, 예상과 다르게 결과값은 'True' 가 나온다. 어째서일까? 이는 최적화와 관련이 있다. String 은 몹시 자주 쓰이는 만큼, 중복값도 빈번히 발생한다. 그리고 String은 객체이다. 즉, 중복값이 많을수록 불필요한 중복 객체가 수도 없이 존재하게 된다. 물필요한 객체 = 메모리 낭비! 따라서, 이런 불필요한 낭비를 미연에 방지하기 위해, 프..
2024.04.17 -
Object OCP(Open Closed Principle)
Bad Case Object 와 같이, 모든 클래스에서 공통적으로 사용하는 정보를 지닌 클래스, 메소드가 없다면? public class BadCaseObjectToString{ public static void print(BadCaseA bad){ String str = bad.badInfo(); // toString() 이 없으니 class에 정보 출력 메서드 작성해야 함. System.out.println(str); } // Object가 없으면 메서드 파라미터 타입별로 메서드 계속 새로 정의 해줘야 함. public static void print(BadCaseB bad){ String str = bad.badInfo(); // toString() 이 없으니 class에 정보 출력 메서드 작성해야..
2024.04.05 -
java.lang_Object Class
Object Class 자바에서 모든 클래스의 최상위 class 이다. Obejct - super - sub Object Class 가 최상위 클래스인 이유 공통 기능 제공 다형성 기본 구현 1. 공통기능 제공 객체 정보 제공, 타 객체와의 비교, 인스턴스의 설계도(class) 확인 등은 모든 클래스에 필요한 기능이다. 이런 기능을 클래스를 마다 계속해서 만드는 것은 굉장히 비효율적인 행위이다. 따라서, 하나의 클래스(Object Class)에 모든 클래스가 필요로하는 기능을 구현하고, 다른 클래스들이 하나의 클래스(Object Class)의 기능을 상속하여 사용하도록하면 효율적인 사용이 가능하기 때문이다. 이를 통해 프로그래밍이 단순화되고 일관성을 갖게 된다. 2. 다형성 기본 구현 장점 Object ..
2024.04.05