목록Java/복습 (8)
hrming

1. 오류 & 에러 오류(error)는 시스템 레벨에서 프로그램에 심각한 문제를 야기하여 실행 중인 프로그램을 종료시킨다. 이러한 오류는 개발자가 예측하여 처리할 수 없는 것이 대부분이므로, 오류에 대한 처리는 할 수 없다. 예외(exception)는 오류와 마찬가지로 실행 중인 프로그램을 비정상적으로 종료시키지만, 발생할 수 있는 상황을 미리 예측하여 처리할 수 있다. 따라서 개발자는 예외 처리(exception handling)를 통해 예외 상황을 처리할 수 있도록 코드의 흐름을 바꿀 필요가 있다. 2. 예외 처리 (exception handling) 2-1. try / catch / finally 문을 사용 try { 예외를 처리하길 원하는 실행 코드; } catch (e1) { e1 예외가 발생할..
1. 인터페이스 인터페이스(interface)란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미 - 자바는 다중 상속을 지원하지 않음 - 자바는 '인터페이스'를 통해서 다중 상속을 지원함 - 자바에서 추상 클래스는 추상 메서드뿐만 아니라, 생성자, 필드, 일반 메서드도 포함할 수 있다. 하지만, 인터페이스는 오로지 '추상 메서드'와 '상수'만을 포함할 수 있음. 1-1. 인터페이스 선언 접근제어자 interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메소드이름(매개변수목록); /* 인터페이스의 모든 필드는 public static final이어야 하며, ..

1. 추상 클래스 추상 메서드를 선언해 놓고 상속을 통해 자식 클래스에서 메서드를 완성하도록 유도하는 클래스 abstract class 클래스이름 { ... abstract 반환타입 메소드이름(); ... } : 미완성 설계도라고 표현하기도 한다. : 추상 클래스는 동작이 정의되어 있지 않은 추상 메소드를 포함하고 있으므로, 인스턴스를 생성할 수 없다. 추상 클래스는 먼저 상속을 통해 자식 클래스를 만들고, 만든 자식 클래스에서 추상 클래스의 모든 추상 메소드를 오버라이딩하고 나서야 비로소 자식 클래스의 인스턴스를 생성할 수 있게 된다. : 추상 클래스는 객체 지향 프로그래밍에서 중요한 특징인 다형성을 가지는 메소드의 집합을 정의할 수 있도록 해준다. ChatGPT 추상 클래스를 사용하여 다형성을 구현할..
1. 다형성 (polymorphism) 하나의 객체가 여러가지 타입을 가질 수 있는 것을 의미한다. : 객체지향개념에서 다형성이란 하나의 객체가 여러 형태를 가지는 것이다. : '여러 개'를 의미하는 poly와 '형태'를 의미하는 morphism을 합쳐 polymorphism, 다형성이라고 부른다. : 자바에서 다형성이란, 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 만드는 것이다. 좀 더 구체적으로 말하자면, 조상/상위 클래스 타입의 참조변수로 하위/자손 클래스의 인스턴스를 참조할 수 있도록 하는 것이다. 1-1. 참조 변수의 다형성 : 자바에서는 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현하고 있다. 이때, 참조 변수가 사용할 수 있는 멤버..

1. 제어자 (modifier) 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 1-1. 접근 제어자 : public, protected, default, private 1-2. 기타 제어자 : public, final, abstract, native, transient, synchronized, volatile, strictfp : 제어자는 클래스나 멤버변수와 메서드에 주로 사용되며, 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능하다. 단, 접근 제어자는 한 번에 네 가지 중 하나만 선택해서 사용할 수 있다. 1-1. 접근 제어자 (access modifier) 객체 지향에서 정보 은닉(data hiding)이란 사용자가 굳이 알 필요가 없는 정보는 사용..

1. Package 서로 관련된 클래스들의 묶음 ① 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리. ② 클래스의 실제 이름음 (full name)은 패키지명을 포함한 것이다. (String클래스의 실제 이름은 java.lang.String). ③ 클래스가 물리적으로 하나의 클래스파일(.class) 인 것과 같이 패키지는 물리적으로 하나의 디렉토리이다. (java.lang.String 클래스는 물리적으로 디렉토리 java의 서브 디렉토리인 lang에 속한 String.class 파일이다) - 하나의 소스파일에는 첫 번째 문장으로 단 한번의 패키지 선언만을 허용한다. - 모든 클래스는 반드시 하나의 패키지에 속해야 한다. - 패키지는 점(.)을 구분자로 하여, 계층구조로 구성..
1. 오버라이딩 조상 클래스로부터 상속받은 메서드의 내용을 자손 클래스에 맞게 변경하는 것 ① 상속받은 메서드를 그대로 사용하기도 하지만, 자손 클래스에 맞게 변경해야 하는경우 조상의 메서드를 오버라이딩 한다. (override 의 사전적 의미는 '~위에 덮어쓰다 (overwrite)' 이다) class Point { int x; int y; String getLocation() { // 선언부 return "x :" +x+ ", y:" +y; // 구현부 (구현부, 즉 내용만 수정 가능) } } class Point3D extends Point { int z; String getLocation() { return "x : " +x+ ", y : " +y+ ", z : " +z; } } 2. 오버라이딩의..
1. 상속 기존의 클래스를 재 사용하여 새로운 클래스를 작성하는 것 (코드의 재사용) ① 두 클래스를 부모와 자식으로 관계를 맺어주는 것. ② 자손 클래스는 조상 클래스의 모든 멤버를 상속받기 때문에, 자손 클래스는 부모 클래스의 멤버들을 포함한다. (생성자와 초기화 블럭은 상속되지 않음. 멤버만 상속됨. 명시적 초기화와 초기화 블럭 , 멤버변수 초기화 시기와 순서 ) → 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고, 코드를 공통적으로 관리할 수 있음. ③ 자손 멤버의 개수는 조상보다 적을 수 없다. (같거나 많다) ④ 자식 클래스 extends 부모 클래스. ⑤ 자손 클래스가 변경되는 것은 조상 클래스에 아무런 영향을 주지 못한다. - 조상 클래스 : Parent Class, Super Cl..