본문 바로가기

JAVA55

[JAVA] 싱글톤 패턴(만드는 방법, 사용하는 이유, 장단점) 싱글톤 정의 특정 클래스에 대해 단 1개의 인스턴스(객체)만 생성하여, 이를 공유하여 사용하기 위한 패턴 싱글톤을 사용하는 경우 프로그램에서 1개의 클래스 인스턴스(객체)만 존재해야 하는 경우 필요할 때마다 객체를 생성하는 것이 아니고 1개의 인스턴스(객체)만 메모리에 생성하여, 전역에서 이를 공유하여 사용할 수 있게 함 싱글톤 클래스를 만드는 방법 싱글톤 패턴을 적용할 경우, 2개 이상의 인스턴스가 존재할 수 없기 때문에 제약 조건이 있음 1. 인스턴스를 생성할 클래스의 생성자와 멤버변수(필드)는 private로 선언 싱글톤으로 사용될 클래스의 생성자는 private(접근 제한자)로 선언이 돼 있어서 외부 클래스에서 객체를 생성할 수 없음 즉, 외부 클래스에서 new 연산자를 통한 인스턴스 생성이 불가.. 2024. 4. 22.
[JAVA] 메서드 오버라이딩, 오버로딩과 오버라이딩 메서드 오버라이딩(method overriding)개념상속 관계에 있어서부모 클래스에 정의되어 있는 메서드를 자식 클래스에서 상속 받아서, 메서드의 선언부는 같고, 구현부의 내용만 다르게 재정의하여 사용하는 것즉, 상속 받은 부모 클래스의 메서드를 재정의하여 사용하는 것  특징자식 클래스는 부모 클래스의 private 멤버를 제외한 모든 메서드를 상속 받아서 사용할 수 있음상속받은 메서드는 그대로 사용해도 되고,필요한 동작을 위해서 재정의하여 사용할 수도 있음기존의 메서드를 재정의해서 사용하는 것이 메서드 오버라이딩  오버라이딩의 조건오버라이딩은 메서드의 동작만을 재정의 하므로, 메서드의 선언부는 부모 클래스의 메서드와 완전히 같아야 하고기존 메서드의 구현부만 재정의하여 사용부모 클래스의 메서드보다 접근.. 2024. 4. 21.
[JAVA] super와 super(), this와 this() super와 super() 자식 클래스에서 속받은 부모 클래스의 인스턴스(객체)를 가리키는 키워드 사용 부모 클래스로부터 상속을 받았기 때문에, 부모의 멤버변수와 메서드를 사용할 수 있는데 이 때에 자식 클래스에서 부모 클래스의 멤버들을 구분하기 위해서 사용 super와 super()의 차이 super super( ) 부모 클래스의 멤버변수(필드)를 지정 부모의 생성자를 호출하는 메서드 예제 1 super( ) 1. main 메서드 : 실행의 시작 public class StudentTest { public static void main(String[] args) { Colleage c = new Colleage();// 객체 생성(생성자 호출) } } 2. Colleage(자식 클래스) 는 Studen.. 2024. 4. 21.
[JAVA] 다형성, 참조변수의 형변환(업캐스팅, 다운캐스팅) 다형성개념하나의 객체가 여러 타입의 객체를 가질 수 있음 즉, 클래스의 상속 관계에서 부모 클래스 타입의 참조 변수로 자식 클래스의 인스턴스(객체)를 참조할 수 있음1. 부모 클래스의 참조변수가 부모 클래스 본인의 객체뿐만 아니라, 자식 클래스의 인스턴스(객체)도 참조할 수 있음2. 자식 클래스의 인스턴스(객체)를 자식 클래스 타입의 참조 변수 뿐만 아니라, 부모 클래스 타입의 참조 변수로 참조할 수 있음  참조변수의 다형성클래스들 사이에서 반드시 상속 관계가 전제할 것다형성을 위하여 부모 클래스 타입의 참조변수로 자식 클래스 타입의 인스턴스(객체)를 참조할 수 있도록 함 반대의 경우, 자식 클래스 타입의 참조 변수로는 부모 클래스 타입의 인스턴스를 참조할 수 없음그 이유는, 참조 변수가 사용할 수 있는.. 2024. 4. 19.
[JAVA] JAVA 메모리 영역(method, stack, heap 영역) Runtime Data Area 정의 JVM이 프로그램을 수행하기 위해 OS(운영체제)로부터 할당받은 메모리 영역 JVM의 메모리 영역으로 프로그램 실행 시에 사용되는 데이터들을 적재(저장)하는 영역 Runtime Data Area의 5개의 영역 Method Area Heap Area Stack Area PC Register Native Method Stack ✔ Method Area(Static Area, Class Area) 정의 클래스에 대한 정보가 저장되는 영역 특징 1. 클래스와 인터페이스의 메타데이터(메서드, 멤버변수 정보 등)를 Method Area에 저장 프로그램 실행 중에 클래스나 인터페이스를 사용하게 되면 JVM은 ClassLoader(클래스 로더)에게 요청하여 클래스와 인터페이스의 메.. 2024. 4. 19.
[JAVA] 접근 제한자(public < protected < default < private) 접근제한자 클래스나 클래스의 멤버(멤버변수, 메서드, 생성자)에 대한 접근을 제한하는 용도로 사용 접근제한자를 사용하는 곳 클래스 멤버변수(필드) 메서드 생성자 접근 제한자의 종류 public protected defalut(package) private 설명 public < protected < default < privete 오른쪽으로 갈수록 접근 제한이 강화 1. public 모든 외부 클래스에서 접근이 가능 2. protected 같은 패키지에 있는 클래스 다른 패키지라도 상속관계에 있는 클래스는 접근 가능 3. defalut(package) 같은 패키지에 있는 클래스만 접근 가능 4. private 같은 클래스 내에서만 접근 가능 2024. 4. 18.