목록 전체 글 (198)
이롭게 현명하게

목차 추상 클래스 추상 클래스 상속 public abstract class 클래스명{ // 필드 // 생성자 // 메소드 } [추상 클래스] 추상(abstract) : 실체 간에 공통되는 특성을 추출한 것 추상 클래스(abstract class) : abstract로 선언된 클래스로 클래스들의 공통적인 특성을 추출해서 선언한 클래스 - 추상 클래스와 실체 클래스는 상속의 관계를 가지고 있다. 추상 클래스 : 부모, 실체 클래스 : 자식 으로 실체 클래스는 추상 클래스의 모든 특성을 물려받고 추가적인 특성을 가질 수 있다. - 추상 메소드, 일반 메소드 둘 다 가질 수 있다. 추상 메소드(abstract method) : 선언 되어 있으나 구현되어 있지 않은 메소드, abstract로 선언, 추상 메소드는..

목차 자동 타입 변환 하나의 배열로 객체 관리 매개 변수의 다형성 강제 타입 변환 객체 타입 확인 업/다운캐스팅 [자동 타입 변환] 다형성 : 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말한다. 즉 부모 타입에 모든 자식 객체가 대입될 수 있다. 이것을 이용하면 객체는 부품화가 가능하다. 타입 변환 : 데이터 타입을 다른 데이터 타입으로 변환하는 행위 클래스 타입 변환은 상속 관계에 있는 클래스 사이에서 발생한다. 자식 타입은 부모타입으로 자동 타입 변환이 가능하다. 자동 타입 변환 : 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것 자식은 부모의 특징과 기능을 상속받기 때문에 부모와 동일하게 취급될 수 있다. a와 b,bb 변수는 타입만 다를 뿐 동일한 A 객체를 참조한..

목차 부모 생성자 호출 메소드 재정의 final 클래스와 final 메소드 class 자식클래스 extends 부모클래스{ } 다중 상속이 불가능하다. [부모 생성자 호출] extends 뒤에 부모 클래스를 기술한다. 이때 여러 개의 부모 클래스를 상속할 수 없다. 그러므로 extends 뒤에는 단 하나의 부모 클래스만 와야 한다. class 자식클래스 extends 부모클래스{ } 상속 관계에서의 생성자 : 슈퍼 클래스와 서브 클래스 각각 각 여러 생성자 작성 가능 서브 클래스 생성자 작성 원칙 : 서브 클래스 생성자에서 슈퍼 클래스 생성자 하나 선택 서브 클래스에서 슈퍼 클래스의 생성자를 선택하지 않는 경우 : 컴파일러가 자동으로 슈퍼 클래스의 기본 생성자 선택 서브 클래스에서 슈퍼 클래스의 생성자를..

[상속 개념] 상속 (Inheritance) : 부모가 자식에게 물려주는 행위. 즉 , 부모 클래스의 멤버를 자식 클래스에 물려줄 수 있다. 부모클래스 = 상위클래스 자식 클래스 = 하위 클래스 or 파생 클래스 상속은 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만들어 코드의 중복을 줄여준다. 상속을 해도 부모 클래스의 모든 필드와 메소드를 물려받는 것은 아니다. 부모 클래스에서 private 접근 제한을 갖는 필드와 메소드는 상속 대상에서 제외된다. 부모 클래스와 자식 클래스가 다른 패키지에 존재한다면 default 접근 제한을 갖는 필드와 메서드도 상속 대상에서 제외된다. 클래스 수정을 최소화 할 수 있다. 중복된 코드를 줄일 수 있다. 유지보수 시간을 최소화시켜준다. 객체 다형성 구현 가능..

목차 접근 제한자 클래스의 접근 제한 생성자의 접근 제한 필드와 메소드의 접근 제한 접근 지정자의 종류 : private, protected, public, 디폴트(접근 지정자 생략) 클래스나 일부 멤버를 공개하여 다른 클래스에서 접근하도록 허용 객체 지향 언어의 캡슐화 정책은 멤버를 보호하는 것 접근 지정은 캡슐화에 묶인 보호를 일부 해제할 목적 public : 패키지에 관계없이 모든 클래스에게 접근 허용 private : 동일 클래스 내에만 접근 허용, 상속받은 서브 클래스에서 접근 불가 protected : 같은 패키지 내의 다른 모든 클래스에게 접근 허용, 상속받은 서브 클래스는 다른 패키지에 있어도 접근 가능 default : 같은 패키지 내의 다른 클래스에게 접근 허용 [접근 제한자] main..

패키지 (package) : 자바에서 클래스를 체계적으로 관리하기 위해 사용 프로젝트를 진행하다 보면 수십 개의 클래스를 작성하게 된다. 클래스를 체계적으로 관리하지 않으면 클래스 간의 관계가 뒤엉켜서 복잡하고 난해한 프로그램이 되어 유지보수가 어려워진다. 우리가 폴더를 만들어 파일을 저장 관리하듯이 자바에서는 패키지를 만들어 클래스를 저장관리한다. 파일을 저장 관리하듯이 사용한다고 해서 패키지가 폴더기능만 하는 것이 아니라 클래스의 일부분이다. 패키지는 클래스를 유일하게 만들어주는 식별자 역할을 한다. 클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식한다. 상위패키지.하위패키지.클래스 package 상위패키지.하위패키지; import ; public class ClassName{ ... }..