
Language/Java 2024. 1. 24.
[Java] clone() / 공변 반환타입 / 복사의 깊이
자바의 메소드 clone()의 기능은 한마디로 복붙. 자신을 복제하여 새로운 인스턴스를 생성한다. 선언부는 protecetd Object clone() 이다. clone()을 쓰려면 몇 가지 조건이 걸린다. 1) 사용하려는 클래스에 Cloneable 인터페이스를 구현해주어야 한다. 2) 사용하려는 클래스 쪽에서 clone()을 오버라이딩하면서 접근 제어자를 public으로 바꿔주어야 한다. (이렇게 해야 상속관계가 없는 다른 클래스에서 clone()을 호출할 수 있다.) 3) 조상클래스의 clone()을 호출하는 코드 super.clone()과 필수 예외처리 CloneNotSupportedException이 포함된 try-catch 문을 작성한다. public class Pointt implements ..

Language/Java 2024. 1. 23.
Java 예외처리란 : "오류가 나기 전에 방어막 치는것"
자바는 오류를 에러와 예외로 구분한다. 에러는 코드로 수습될 수 없는 오류, 예외는 프로그래머가 미리 예측하여 코드(예외처리 코드)로 수습할 수 있는 오류를 말한다. 예외클래스 계층구조: 실행 시 발생할 수 있는 오류를 클래스로 정의한 것이다. 모든 예외의 조상은 Exception 클래스이며, 그 자손들은 크게 두 분류로 나눌 수 있다. RuntimeException클래스들 : 프로그래머의 실수로 발생한 예외, 컴파일러가 예외처리를 확인하지 않아 unchecked 예외라고도 한다. Exception클래스들(런타임예외를 제외한 나머지): 사용자의 실수(입력 데이터 형식이 잘못됨) 등의 외적 요인에 의해 발생한 예외. 컴파일러가 예외처리를 확인하므로 checked 예외라고도 한다. 자바의 예외처리 구문에 대..
Language/Java 2024. 1. 23.
Java 객체지향의 꽃, 다형성
다형성 여러 형태를 가질 수 있는 성질. 자바에서는 “한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있는 것”을 다형성이라고 한다. 특히 두 클래스가 서로 상속관계에 있을 경우, 조상 타입의 참조변수로 자손 클래스의 인스턴스를 참조하는 것이 가능하다. (자손타입으로 조상 인스턴스 참조는 안됨) Tv t = new Tv(); CaptionTv c = new CaptionTv(); //참조타입과 인스턴스 타입 일치 Tv tc = new CaptionTv(); //조상타입(Tv)의 참조변수로 자손 인스턴스(CaptionTv)를 참조 참조변수의 형변환 참조변수의 형변환은 서로 상속 관계에 있는 클래스에서만 가능하다. From 자손 to 조상(업캐스팅) : 형변환 생략가능 From 조상 to 자손(다운캐스팅..

Language/Java 2024. 1. 23.
Java 변수와 메소드의 종류
클래스와 객체(인스턴스) 책의 설명 중에 가장 맘에 든 비유 : 클래스는 붕어빵틀이고, 객체는 붕어빵이다. (오~) 클래스를 통해 객체를 만드는 과정을 인스턴스화라고 한다. 인스턴스는 객체와 같은 것을 말하는데, 둘은 상황에 따라 조~금 다르다. 인스턴스가 객체보다 더 좁은 의미이다. String cat1; String cat2 = new String("박민우"); cat1은 객체가 되긴 했지만 아직 아무 값도 할당받지 않은 상태이다. 이는 객체라고는 할 수 있지만, 인스턴스라고 할 수 없다. (인스턴스 연습생) cat2는 객체이기도 하고, 해당 객체를 위한 메모리가 할당되어 실제 값 ‘박민우’가 들어있는 상태이다. 이것은 인스턴스라고 할 수 있다.(인스턴스 데뷔 성공) 객체의 구성요소: 속성(prope..
