1. abstract 제한자 : 미완성의 추상클래스 , 추상메소드 에 설정 가능한 제한자 1) 추상클래스(Abstract Class) - 무조건 상속 abstract 제한자를 사용하여 선언된 클래스 상속을 목적으로 만든 상속전용클래스 형식 public abstract class 클래스명 { //필드 //생성자 //메소드 } 추상클래스는 언제 만들까? 상속해주는 것만이 목적(부모역할)인 클래스에 작성 권장객체생성 목적은 NO 특징 only 부모역할 only 상속 전용 클래스 생성자가 있어도 부모클래스(추상클래스)는 객체 생성 불가능 But, 부모클래스(추상클래스)는 참조변수 생성 가능 예시(부모 - Employee클래스) //사원정보(사원번호, 사원이름)를 저장하기 위한 클래스 //=> 모든 사원 관련 클..
분류 전체보기
1. object 클래스의 개념 모든 Java 클래스의 최선조 클래스 모든 Java 클래스는 무조건 Object 클래스를 상속받아 사용 가능 직접상속도 가능 간접상속도 가능 2. 클래스 선언 시 상속받은 부모클래스가 없는 경우는? //부모를 상속받지 않으면 기본적으로 Object클래스를 자동으로 상속받음 public class Car /* extends Object */{ } 3. object 클래스 객체는 왜 중요할까? 기본적으로 부모클래스의 참조변수에는 자식클래스의 객체를 저장할 수 있다. 즉, Object클래스의 참조변수에는 모든클래스의 객체를 저장할 수 있다!!! 매개변수가 (Object obj) 이다 = 어떤 객체든 매개변수로 전달받을 수 있다! 반환형이 Object 이다 = 어떤 객체든 반환받..
(부모) inheritance > AcademyPerson.java package inheritance; //사람정보(번호, 이름)를 저장하기 위한 클래스 - VO클래스 //=> 학생, 강사, 직원에 대한 공통적인 속성과 행위를 정의하기 위한 클래스 //=> 학원인적자원 관련 클래스가 상속받아야 되는 클래스 //=> 코드의 중복성을 최소화하여 프로그램의 생산성 및 유지보수의 효율성 증가 public class AcademyPerson { //필드 private int num; private String name; //생성자 public AcademyPerson() {} public AcademyPerson(int num, String name) { //super(); //생략가능 this.num = nu..
1. 메소드 오버라이드(Method override)의 개념 부모에게 상속을 받아도 필요하지 않는다면 부모 메소드를 사용하지 않는다. 그렇다면 자식클래스에서 부모클래스가 가진 메소드를 다시 재선언할 수 있다. 이것을 메소드오버라이드라고 부른다. 상속관계에서 부모클래스의 메소드를 자식클래스에서 재선언하는 기능 부모클래스의 메소드를 사용하기 부적절한 경우 → 부모클래스의 메소드를 자식클래스에서 재선언하여 사용 부모클래스의 메소드는 숨겨지고 자식클래스의 메소드에만 접근 가능 2. 메소드오버라이드 작성 규칙 부모클래스의 메소드와 같은 머릿부로 작성해야함 즉, 같은 접근제한자 , 같은 반환형 , 같은 메소드명 , 같은 매개변수 , 같은 예외전달로 작성해야함 3. 메소드오버라이드가 처리하게 된다면? 부모클래스의 메..
1. @ Java 어노테이션 @ Java Source 작성에 필요한 특별한 기능을 제공 위해 제공되는 어노테이션 Java Source 작성에 필요한 특별한 기능을 제공 위해 제공되는 어노테이션 @Override @Deprecated @SuppressWarnings 2. 어노테이션(Annotation)이란? 원래는 API문서에서 특별한 설명을 제공하기 위한 기능을 구현하는 것이것지만, 나중에는 Java Source 작성에 필요한 특별한 기능을 제공하기 위해 사용하고 있다 어노테이션을 안써도 프로그램은 잘 진행되지만, 써주는 것이 효율적임 3. @Override 오버라이드 선언된 메소드를 표현하기 위한 어노테이션 메소드 오버라이드 작성 규칙을 위반한 경우 에러 발생 4. @Deprecated 메소드 사용을 ..
1. super키워드란? 자식클래스의 메소드에서 부모클래스의 객체를 저장하기 위한 숨겨진 매개변수 this키워드 = 자신의 객체 super키워드 = 부모의 객체 super 키워드로 자식클래스의 메소드에서 부모클래스의 객체필드 또는 메소드에 접근이 가능 하지만 super 키워드를 사용하지 않아도 자식클래스의 메소드에서는 부모 클래스 객체의 필드 또는 메소드를 사용할 수 있음 2. 뭐?? this를 썼는데, 자동으로 super로 변환이 된다구?? 자식클래스의 메소드 내부에서 this 키워드로 자식클래스 객체의 필드 또는 메소드를 참조하고, 만약 참조할 필드 또는 메소드가 없는 경우, 자동으로 super 키워드로 부모클래스 객체의 필드 또는 메소드를 참조 3. super 사용 예시 //자식클래스에서 작성됨 p..
[VO] inheritance > Member.java - (부모) package inheritance; //회원정보(아이디, 이름)를 저장하기 위한 클래스 public class Member { private String id; private String name; public Member() { // TODO Auto-generated constructor stub } public Member(String id, String name) { super(); this.id = id; this.name = name; } public String getId() {return id;} public void setId(String id) {this.id = id;} public String getName() {..
1. 포함관계(direct Association) - has A관계 포함관계를 맺고 있다 = 포함되어 있는 객체의 메소드를 호출할 수 있다 step1. A클래스를 저장하기 위한 그릇 클래스 안에 참조필드로 생성하기! 필드에 객체가 저장되어야지만 명확히 객체를 호출할 수 있다! step2. Setter메소드 또는 생성자를 이용하여 참조필드에 객체가 저장되도록 설정하기! 관계를 맺어서 참조필드로 호출할 수 있는 것이 중요! Car & Engine의 포함관계가 성립되기 위해서는? 반드시 Setter메소드 또는 생성자를 이용하여 참조필드에 객체가 저장되도록 설정하기 만약 참조필드에 객체가 저장되지 않으면 이 관계가 성립되지 않음 [VO] 🚓association > Engine.java package associ..