반응형
1. 생성자(Contructor)
자바는 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화할 수 있는 생성자 메소드를 제공한다.
또한, 생성자는 객체를 생성할 때 자동으로 실행되며 객체를 초기화하기 위해 가장 먼저 실행되는 메소드이다.
1-1. 생성자의 특징
▶ 생성자의 이름은 해당 클래스의 이름과 같아야 한다.
▶ 생성자는 반환값이 없지만, 반환 타입을 void형으로 선언하지 않는다.(=반환형이 아니다.)
▶ 생성자는 초기화를 위한 데이터를 인수로 전달받을 수 있다.
▶ 하나의 클래스가 여러 개의 생성자를 가질 수 있고, 메서드 오버로딩이 가능하다.
▶ 생성자의 주요역할은 멤버변수의 초기화이다.
▶ 생성자의 형태는 아래와 같다.
class User{
String userName;
public User(){
userName = 'Jinny';
}
}
1-2. 생성자와 void메서드
생성자와 void 메서드는 둘 다 return값이 없다는 점에서 같지만, 이름과 역할에서 차이점이 있다.
생성자는 클래스와 이름이 같아야 하고 멤버변수의 초기화를 담당하지만 void 메서드는 클래스와 이름이 달라야 하고,
생성자보다 조금 더 다양한 기능을 담당한다.
2. 생성자의 New 키워드
- 생성자를 만들지 않았을 때 컴파일러에 의해 자동으로 생성자가 만들어지며 이를 기본생성자라고 한다.
- 기본생성자는 파라미터를 전달받지 않기 때문에 빈 객체를 생성한다.
생성자를 만들지않았지만 new 키워드를 통해 ( new DefaultConstructor() ) 자동으로 기본 연산자가 생성된다
public class DefaultConstructor {
String name;
int age;
//public DefaultConstructor() {} //생략된 기본 생성자
public static void main(String[] args) {
//new연산자가 DefaultConstructor()를 호출하면 컴파일러가 기본생성자를 만든다
DefaultConstructor user = new DefaultConstructor();
//기본생성자는 외부에서 객체의 멤버변수를 설정해줘야한다
user.name ="Jinny";
user.age =28;
}
}
class User {
String userName;
int userAge;
public User(String userName, int userAge) {
this.userName = userName;
this.userAge = userAge;
}
public String userInfo() {
return "Name : " + userName + ", Age : " + userAge;
}
}
public class Example {
public static void main(String[] args) {
User user1 = new User("Jinny", 28);
System.out.println(user1.userInfo());
}
}
// Name : "Jinny", Age : 28
# 참고 사이트
http://tcpschool.com/java/java_methodConstructor_constructor
반응형
'Backend > Java (Spring)' 카테고리의 다른 글
[SPRING] ava.lang.IllegalArgumentException: AJP 연결자는 secretRequired="true"로 구성되었으나 보안 속성이 널 또는 ""입니다. (0) | 2022.03.04 |
---|---|
[Spring] 스프링 jsp에 css, js 적용하기 (0) | 2022.01.12 |
[JAVA] 래퍼 클래스와 박싱, 언박싱 (0) | 2021.09.18 |
[JAVA] Enum 클래스 선언 및 사용방법 (1) | 2021.09.18 |
[JAVA] 객체지향의 5가지 원칙 (SOLID 원칙) (0) | 2021.09.16 |
최근댓글