java(34)
-
Java : Abstract(추상)
// 추상(Abstract) // - 여러가지 사물, 개념 등에서 공통되는 특성이나 속성따위를 // 추출하여 파악하는 작용 // - 두루뭉실한 대상 // 추상적인 형태 // → 동물, 상품 ... // 구체적인 형태 // → 개, 고양이, 컴퓨터, ... // 추상적인 행동 // → 동물의 이동 // 고양이의 이동 // 비둘기의 이동 // 추상 클래스(Abstract Class) // 클래스 = 설계도 // 추상 클래스 = 미완성된 설계도 = 완성되지 못한 채 설계된 설계도 // = 개발이 덜 된 것이 아닌, 구체적으로 작성할 수 없는 // 기능(추상 메서드)들을 포함한 설계도 // = 그 외 생성자, 멤버를 기존 클래스처럼 가질 수 있다. // 추상 메서드(Abstract Method) // 메서드 =..
2023.03.20 -
Java : Method OverLoading, OverRiding(매서드 오버로딩, 오버라이딩)
// 메서드 오버로딩(Method Loading) // - 같은 이름의 메서드를 다양하게 정의 // - 메서드 복사 // - 상속 관계 상관 없이 가능 // 메서드 오버라이딩(Method Overriding) = 상속 관계에서만 가능 // - 상위 클래스에 정의되어있는 메서드를 // 서브 클래스에서 다시 정의하는 것을 의미 // → 기존의 메서드를 새롭게 재 정의 // - 오버라이딩된 메서드(하위 클래스의 메서드)가 // 우선 순위가 높기 때문에 상위 클래스의 메서드는 // 기본적으로 실행되지 않는다. // → 오버라이딩된 메서드를 호출하면 // 무조건 오버라이딩된 메서드가 호출 // → 참조 변수를 기준으로 하는 것이 아닌 // 참조하는 인스턴스를 기준으로 한다. // - 상위 클래스의 메서드를 호출하..
2023.03.20 -
Java : Casting(캐스팅)
class Setter { // 학생의 나이와 선생님의 나이를 설정하는 메서드 // - 캐스팅을 활용하지 않으면 // - 각 타입 별로 메서드를 정의해야한다. // - Person 을 상속받는 다른 클래스를 새롭게 정의하면 // 해당 클래스 또한 새로운 메서드를 정의 // void setAge(Student std, int age) { // std.setAge(age); // } // void setAge(Teacher tch, int age) { // tch.setAge(age); // } // Person 클래스의 타입 뿐만 아니라 // Person 클래스를 상속 받는 모든 클래스들의 객체를 // 매개변수로 받아서 참조할 수 있다. // → Person 을 상속 받는 새로운 클래스를 만들어도 // 해..
2023.03.20 -
Java : Constructor(생성자) 2
// 상속 관계에서의 생성자(Constructor) // - 상속 관계의 모든 클래스의 생성자는 실행 // - 서브 클래스, 슈퍼 클래스의 생성자가 실행 // - 상속 관계에서의 생성자 호출 // - 서브 클래스부터 호출이 되어지며 // 서브 클래스의 생성자가 슈퍼 클래스의 생성자를 바로 호출 // - 상속 관계에서의 생성자 실행 // - 슈퍼 클래스의 생성자가 실행하며 초기화가 끝난 다음 // 서브 클래스의 생성자가 실행된다. // - 서브 클래스의 생성자는 기본적으로 // 슈퍼 클래스의 기본 생성자를 호출한다. // → 만약 기본 생성자가 없으면 오류가 발생 // - 기본적인 원칙 // 필드가 선언된 클래스에서 설정/반환! // 초기화 역시 선언된 클래스에서 하자! // → 슈퍼클래스의 멤버는 슈퍼 ..
2023.03.20 -
Java : Inheritance(상속)
import package1009_other.OtherClass; // 상속(Inheritance) // - 새로운 클래스를 작성할 때 기존 클래스의 멤버를 // 그대로 사용하기 위한 특성 // - 새로운 클래스가 기존의 클래스만큼 '확장'되어지는 개념 // 상속 관계에서의 접근 제어자 // - private // : 선언/정의된 클래스 내에서만 접근이 가능하다. // - protected // : 같은 패키지에서는 접근 가능 // : 다른 패키지케서는 서브 클래스에서만 접근 가능 // 상속의 특징 // - 클래스의 다중 상속을 지원하지 않는다. // = 자식은 여러 부모를 둘 수 없다. // - 상속 횟수는 제한이 없다. // = 부모는 여러 자식을 둘 수 있다. // - Java 에서의 모든 클래스의..
2023.03.20 -
Java : Final
// final 제어자 // - 클래스, 메서드, 필드에 작성할 수 있다. // - "최종 형태로 유지시킨다." 라는 공통적인 특성을 가진다. // - final 변수 // : 값을 수정할 수 없는 변수 = 상수 // - final 메서드 // : 오버라이딩을 할 수 없는 메서드 = 동일한 메서드를 만들 수 없다. // - final 클래스 // : 상속할 수 없는 클래스 class SimpleB { // 상수 필드 // - 선언시 초기화 // - 생성자를 이용한 초기화 final int FINAL_DATA; SimpleB() { FINAL_DATA = 100; } SimpleB(int data) { FINAL_DATA = data; } } public class File02_final { public ..
2023.03.20