Link
09-20 09:33
Tags
- 자바 1대다관계
- 프로그래머스 자바
- Java switch
- JAVA ObjArray
- JAVA 데이터타입
- 자바 메서드 매개변수
- java 변수
- 자바 필드값 초기화
- JAVA 메소드
- 자바 NullPointer
- 리액트 네이티브
- 개발 로드맵
- Java
- eclipse
- 자바 1대1 관계클래스
- 자바 다차원 배열
- JAVA Parameter
- JAVA MultiParam
- 자바 1대1
- ChatGPT 번역
- JAVA Aray
- 자바 생성자
- 자바 연산자
- JAVA 연습예제
- JAVA 메소드 리턴
- JAVA 자동판매기
- java 연산자
- JAVA 클래스 구성
- 자바 객체형 배열처리
- JAVA NULL
Archives
- Today
- Total
보기보기 개발 블로그
eclipse / 생성자 본문
안녕하세요 지난 포스팅에서는 자바 상속에 대하여 알아보았고
이번엔 생성자에 대해 알아보겠습니다.
eclipse / 자바 상속
안녕하세요 바빠서 간만에 포스팅 올려봅니다 지난 포스팅에선 자바 패키지 에 대하여 알아보았고 이번에는 자바의 상속에 대하여 알아보겠습니다. eclipse / 자바 패키지 안녕하세요 지난 포스
stackbok.tistory.com
package javaexp.a09_inheriy;
public class A02_Constructor {
public static void main(String[] args) {
/*
# 부모 생성자 호출 : super() cf) super(상속의 상위지칭), this(현재클래스 지칭)
->z.03_vo 패키지 ->person
1.상속하는 클래스는 부모의 생성자를 반드시 호출하여야 한다.
1)default 생성자는 기본적으로 default 생성자를 호출하기 때문에
선언하지 않더라도 에러가 없다.(파라미터 값이 없거나)
-자바의 모든 클래스는 보이지않지만 extends Object로 상속을 받아서 처리한다.
그래서 default이기에 선언하지 않는다.
class Father extends Object{} //부모또한 최상위 클래스 오브젝트에게 상속받음
class Son extends Father{
public Son(){
super();
}
}
2) (어려움 주의) 상위 클래스에 매개변수가 있는
생성자를 선언했을때..
class Mother{
String name;
Mother(String name){
this.name = name;
}
}
class Daught extends Mother{
Daughter(String name){
super(name); //
ㄴ>반드시 상위에 있는 생성자 호출..
}
}
# 부모없는 자식이 없듯이
부모의 생성자가 선언되면 반드시 해당 생성자를 호출하여야 한다.
# 명시적 부모 생성자 호출
1. 부모객체 생성할 때 , 부모 생성자 선택해 호출
자식 클래스(매개변수선언..){
super(매개변수..)
}
2. super(매개변수..)
- 매개값과 동일한 타입, 갯수, 순서 맞는 부모 생성자 호출
3. 부모 생성자 없다면 컴파일 오류 발생
4.반드시 자식 생성자의 첫 줄에 위치
5.부모 클래스에 기본(매개변수 없는) 생성자가 없다면 필수 작성
*/
Daughter01 d1 = new Daughter01("김희선");
d1.call();
//ex) Worker 직종을 할당하는 생성자 선언..
//Developer로 Worker를 상속받아서
//해당 직종을 처리하고 showMyjob() 기능메서드를 통해
//출력
//필드값 직종
Developer d =new Developer("노가다꾼.");
d.call();
d.showjob("개발자");
}
}
class Worker{
private String job;
Worker(String job){
this.job = job;
}
void call() {
System.out.println("나의직종은: "+job);
}
public String getjob() {
return job;
}
}
class Developer extends Worker{
Developer(String job){
super(job); //job에 값을 미리 할당해도된다.
//따로 출력하고 싶다면 get메서드를 public으로 두고 하면됨
}
public void showjob(String job) {
System.out.println("직업은"+job);
}
}
class Mother01{
private String name;
Mother01(String name){
this.name = name;
}
void call() {
System.out.println("이름:"+name);
}
}
class Daughter01 extends Mother01{
/*
* Daughter01(){ super()}
*/
Daughter01(){
super("하위매개값(이름)");
//super 규칙
//생성자 첫라인에 반드시 상위 클래스가 선언한 생성자의
//매개변수에 맞는 super()로 상위 클래스의 생성자를
//호출하여야 한다 | 안할시 컴파일에러
}
Daughter01(String name){
super(name);//이렇게 하면 private로 선언된
// 상위필드도 접근을 하여 할당한다.
}
}
이상 생성자에 대하여 알아보았습니다.
'Java' 카테고리의 다른 글
eclipse / 자바 오버라이딩 (0) | 2023.04.20 |
---|---|
eclipse / 자바 상속 (0) | 2023.04.18 |
eclipse / 자바 패키지 (0) | 2023.03.25 |
eclipse / 자바 1대다 관계 클래스 (0) | 2023.03.25 |
eclipse / 자바 1대1 관계 클래스 (0) | 2023.03.25 |