본문 바로가기

분류 전체보기82

다형성과 메서드 오버라이딩 다형성과 메서드 오버라이딩public class Parent { public String value = "parent"; public void method() { System.out.println("Parent.method"); } }public class Child extends Parent { public String value = "child"; @Override public void method() { System.out.println("Child.method"); } }멤버 변수는 오버라이딩 되지 않으며 메서드만 오버라이딩중요한 것은 오버라이딩 된 메서드가 항상 우선권을 가짐상세 과정child는 Child 타입이므로 value.. 2024. 12. 31.
instanceof instanceof다형성에서는 참조형 변수는 이름 그대로 다양한 자식을 대상으로 참조 가능하기에 어떤 인스턴스를 참조하는 지 확인이 필요한 경우 존재인스턴스의 타입을 확인하는 키워드"객체 instanceof 클래스" 형식으로 사용사용 예시new Parent() instanceof ParentParent p = new Parent() //같은 타입 truenew Child() instanceof ParentParent p = new Child() //부모는 자식을 담을 수 있다. truenew Parent() instanceof ChildChild c = new Parent() //자식은 부모를 담을 수 없다. falsenew Child() instanceof ChildChild c = new Child(.. 2024. 12. 31.
다형성과 캐스팅 다형적 참조public class Parent { public void parentMethod() { System.out.println("Parent.parentMethod"); } }public class Child extends Parent { public void childMethod() { System.out.println("Child.childMethod"); } } public class PolyMain { public static void main(String[] args) { Parent poly = new Child(); // 다형적 참조 poly.parentMethod(); }}부모 타.. 2024. 12. 30.
상속 상속관계public class Child extends Parents { ...}상속은 객체 지향 프로그래밍의 핵심 요소 중 하나로, 기존 클래스의 필드와 메서드를 새로운 클래스에서 재사용하게 해주는 기능상속을 사용하려면 extends 키워드를 사용상속의 대상은 오직 하나부모 클래스(슈퍼 클래스) : 상속을 통해 자신의 필드와 메서드를 다른 클래스에 제공하는 클래스자식 클래스(서브 클래스) : 부모 클래스로부터 필드와 메서드를 상속받는 클래스상속과 메모리 구조객체 생성 시 ElectricCar 뿐만 아니라 상속 관계에 있는 Car까지 함께 포함해서 인스턴스를 생성참조값은 x001로 하나이지만 실제로 그 안에서는 Car, ElectricCar라는 두가지 클래스 정보가 공존상속 관계를 사용하면 부모의 필드와.. 2024. 12. 12.
static 멤버 변수(필드)의 종류public class TempData { public String name; // 인스턴스 변수 public static int count; // 클래스 변수 = static 변수 = 정적 변수}인스턴스 변수 : static이 붙지 않은 멤버 변수 static이 붙지 않은 멤버 변수는 인스턴스를 생성해야 사용 가능인스턴스 변수는 인스턴스를 만들 때 마다 새로 만들어짐클래스 변수 : static이 붙은 멤버 변수클래스 변수, 정적 변수, static 변수등으로 부름static이 붙은 멤버 변수는 인스턴스와 무관하게 클래스에 바로 접근하여 사용 가능인스턴스 영역에 생성되지 않으며 메서드 영역에서 관리클래스 변수는 자바 프로그램을 시작할 때 딱 1개만 생성인스턴스와는.. 2024. 12. 8.
메모리 구조 자바 메모리 구조메서드 영역 : 프로그램을 실행하는데 필요한 공통 데이터를 관리. 이 영역은 프로그램의 모든 영역에서 공유클래스 정보 : 클래스의 실행 코드, 필드, 메서드, 생성자 등 모든 실행 코드가 존재static 영역 : static 변수들을 보관런타임 상수 풀 : 프로그램을 실행하는데 필요한 공통 리터럴 상수를 보관메서드는 공통된 코드를 공유하므로 객체 생성 시 메서드에 대한 새로운 메모리 할당은 없음스택 영역 : 자바 실행 시 하나의 실행 스택이 생성. 각 스택 프레임은 지역 변수, 중간 연산 결과, 메서드 호출 정보 등을 포함스택 프레임 : 스택 영역에 쌓이는 네모 박스가 하나의 스택 프레임각 쓰레드별로 하나의 실행 스택이 생성힙 영역 : 객체(인스턴스)와 배열이 생성되는 영역. 가바지 컬렉.. 2024. 12. 8.