본문 바로가기
인천일보아카데미/- 학습일지

[학습일지]JAVA교육일지 28일차

by w1z 2022. 6. 8.

1. 생성자(Constructor)

  • 정의
  • 생성자 vs Setter
  • 형식
  • 생성자 오버로딩

2. 상속(Inheritance)


1. 생성자(Constructor)

  (1) 정의

   - 특수한 목적을 가지는 메소드

   - 객체를 초기화하는 역할(객체 멤버 변수 초기화 및 기타 초기화 작업)

 

  (2) 생성자 vs Setter

  공통점 차이점
생성자 객체 변수의 값을 대입 할 수 있다. 1. 객체가 처음 만들어 질 때 자동호출
2. 객체가 태어날 때 딱 1번만 실행되고, 그 이후에 호출이 불가능하다. 
3. 초기화 역할(***)
Setter 1. 개발자가 원하는 시점에 호출
2. 여러번 호출이 가능하다.
3. 수정자 역할(***)

  (3) 형식

class Person {
	private String name;
    private int age; //객체-> 개인 
    private static int weight; //정적 -> 공용
    
    public Person() {
    	this.name = "홍길동";
        this.age = 27;
    }
    
    static {
    	Person.weight =  70;
    }
}

/*

 1. 메소드명이 클래스명과 반드시 동일해야한다.
 2. 반환형을 명시하지 않는다. 
 3. 멤버 초기화를 구현한다.
 4. 기본 생성자는 개발자가 만들지 않으면 Java가 자동으로 만든다.
 5. 만약 개발자가 인자값이 있는 생성자를 만들면 기본 생성자는 더이상 자동으로 만들어 지지 않는다.
 6. 정적 생성자(static)은 main() 실행전에 호출 된다.
 
 */

   

  (4) 생성자 오버로딩

class Person {
	private String name;
    private int age;
    
    public Person() {
    	this.name = "홍길동";
        this.age = 27;
    }
    
    public Person(String name, int age) {
    	this.name = name;
        this.age = age;
    }
    
    public Person(String name) {
    	this.name = name;
    }
    
    public Person(int age) {
    	this.age = age;
	}
}

// 맨 위부터 Person 메소드 이름이 동일하지만, 인자값이 다르므로 오버로딩이 가능하다.

 

2. 상속(Inheritance)

  - 클래스 상속이라고한다. (A클래스 <--> B클래스간에 구현 가능한 기술)
  - 클래스 --> (멤버(변수,메소드))  --> 클래스
  - 부모    --> (재산)                  --> 자식
  - 상속은 자신이 부모의 멤버(재산)을 거부할 권한이 없다. (모든 멤버를 물려받음)
  - 사용이유는 여러가지가 있지만 가장 중요한 이유는 코드의 재사용 때문이다.


MEMO >

 

# 귀찮더라도 생성자를 만들자

 

# 기본 생성자는 되도록 생성해주는 편이 좋다.

 

# 생성자를 써야 할 때와 getter, setter 쓸 때를 구분해보자.

 

# 난수 만드는 법은 Math.random() 메소드와 Random() 클래스가 있다.

 

# 상속의 일부만 배웠지만 상속을 잘 이용하면 효율적이고 좋은 코드를 짤 수 있다. but 굉장히 어렵다.