본문 바로가기
java/공부

java 생성자

by sungin95 2023. 8. 4.

오늘도 역시 강의 따라 치다가 에러가 나서 개념을 정리해 봅니다. 

참 자바는 정리할것들이 많네요.

 

생성자란

자바 클래스를 보다가 보면 클래스 이름과 메소드의 이름이 동일한 것을 볼 수 있습니다. 

public class Article {
    // 기본 생성자
    public Article() {
        // 생성자의 내용을 필요에 맞게 초기화하거나 빈 상태로 둘 수 있습니다.
    }
    
    // 기타 멤버 변수와 메서드들...
}

이게 생성자입니다. 

특징

  • 클래스명과 메서드명이 같다.
  • 리턴 타입을 정의하지 않는다(void도 사용하지 않는다.).

 

인스턴스를 생성할때 new 클래스명 으로 만들잖아요. 이때 호출 되는 것이 생성자 입니다. 

Article article = new Article();

 

초기화

객체 생성 후 객체의 초기화를 하는 역할 수행 - 객체를 생성함과 동시에 기억공간이 만들어졌으니 데이터를 저장할수있다. 저장하는 행위를 초기화(initialize)라고 한다.

public class BookVO {
	private String title;
	private int price;
	private String company;
	private int page;
	
	//초기화
	public BookVO(String title, int price, String company, int page){
		this.title = title;
		this.price = price;
		this.company = company;
		this.page = page
	}
}

BookVO b = new BookVO("자바", 17000, "Kyu", 530); // 초기값

 

기타

생성자는 평소에는 작성을 안해도 문제가 없지만

@Entity // public or protected 생성자가 반드시 필요하다
public class Article {

    protected Article() {
    }

}

@Entity 애노테이션처럼 특정 상황에서는 public or protected 생성자가 있어야 한다. 

에러: Class 'Article' should have [public, protected] no-arg constructor  

 

Reference

https://velog.io/@kyukim/constructor

https://wikidocs.net/281

'java > 공부' 카테고리의 다른 글

java Pattern Matching  (0) 2023.08.03
Java Map이란(Hash Map)  (0) 2023.07.27
[java/자바] Set - HashSet  (0) 2023.07.26
java에서 List와 ArrayList 차이점  (0) 2023.07.19
java void란?  (0) 2023.07.16