-
[자바기초] 생성자를 만드는 이유 정리노트º Language º/Java 2023. 4. 2. 18:00
* 생성자를 만드는 이유는 무엇입니까?
- 기본적으로 객체가 인스턴스로 생성하기 위함입니다.
(+ 인스턴스란 : 설계도(클래스)를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
즉, 객체를 소프트웨어에 실체화 하면 그것을 ‘인스턴스’라고 부릅니다.)* 생성자 생성 방법 (2가지)
1. 기본생성자
class Person { int age; int height; public Person() {} // 기본생성자, 생략 가능 } Person p = new Person();
> 생성자 안에 아무런 값도 없는 것이 기본 생성자 입니다.
생성자를 아예 쓰지 않는 경우에도 자바에서 자동적으로 기본생성자가 제공되기 때문에 생성자를 만들지 않더라도 기본생성자가 제공되어 객체 생성이 가능합니다.
> 기본 생성자만 생성하는 경우는 맴버변수에 값을 넣어주거나, 사용자에게 Scanner로 값을 받아서 사용하거나, 클래스 안에 메소드만을 넣어 사용할 경우 사용합니다.
2. 변수에 값을 주며 생성하기 위한 생성자
class Person { int age; int height; public Person(int age, int height) { this.age = age; this.height = height; } } Person p = new Person(20, 160);
> 생성자 안에 맴버변수에 값을 받을 매개변수와 함께 생성됩니다.
this.안에 포함된 것이 맴버변수입니다.
> Person p 는 생성과 동시에 나이 20, 키는 160을 갖습니다.
- 생성자는 결국 함수의 일종입니다.
객체를 새로 생성할 때 최초로 한번 실행되며 그 이후엔 사용자가 임의로 호출할 수 없다는 규칙이 있습니다.
그리고 모든 클래스는 반드시 하나 이상의 생성자를 가져야 합니다.
그래서 개발자가 별도의 생성자를 작성하지 않을 경우 컴파일러가 빈 생성자(파라미터로 아무것도 받지 않는 생성자)를 추가하도록 설정되어 있기도 합니다.
'º Language º > Java' 카테고리의 다른 글
[자바기초] 멀티쓰레드(MultiThread), 임계영역(Critical section) 정리노트 (0) 2023.04.10 [자바기초] 예외 처리(Exception) 정리노트 (0) 2023.04.06 [자바기초] 날짜 클래스 GregorianCalender 정리노트 (0) 2023.04.01 [자바기초] 컬렉션 프레임워크의 종류 (3가지), 제네릭 정리노트 (0) 2023.03.29 [자바기초] String, StringBuffer, String Builder 정리노트 (0) 2023.03.29