JAVA_07_생성자 & 오버로딩

hyeong taek jo·2023년 7월 4일

JAVA

목록 보기
7/39

📌1. 생성자

생성자의 조건

  • 생성자의 이름은 클래스의 이름과 같아야 한다.
  • 생성자는 리턴값이 없다. (하지만 void를 쓰지 않는다.)
  • 클래스명과 이름이 같아야 한다.

📌2. 기본 생성자

기본 생성자란

  • 매개변수가 없는 생성자
  • 클래스에 생성자가 하나도 없으면 컴파일러가 기본 생성자를 추가.
  • (생성자가 하나라도 있으면 컴파일러는 기본 생성자를 추가하지 않는다.)

📌2. 메소드 오버로딩

오버로딩 조건

  • 메소드의 이름이 같아야 한다.
  • 매개변수의 개수 또는 타입이 달라야 한다.
  • 매개변수는 같고 리턴타입이 다른 경우는 오버로딩 성립 않된다.
    (리턴타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다.)
  • 하나의 class안에 여러개의 동일이름의 Method 존재
  • 생성자 또는 일반 메소드 오버로딩이 있다.

메소드 또는 생성자 오버로딩이란?

  • 하나의 클래스에 같은 이름의 메소드 또는 생성자를 여러 개 정의하는 것을 오버로딩

오버로딩 예시

class Subscribe {
	String name;
	String telnum;
	int    age;
	
	// 기본 생성자 overLoading
	Subscribe () {
	}
	
	Subscribe (String name, String t) {  //매개변수 생성자
		this.name    = name;   // this는 나의 멤버변수를 가르킨다
		this.telnum  = t;     // 생성자는 void와 return을 쓰지 않는다.
	}
	
	void chgTelNum(String t) {
		telnum = t;
	}
	
	void chgAge(int age1) {    //제약조건
		if (age1 < 0) {
			System.out.println("당신은 - 나이를 넣고 있네요");
		}
		age = age1;
	}
	
	void print() {
		System.out.printf("이름 : %s 전화번호 : %s 나이 : %d \n", name, telnum, age);
	}
}

public class SubscribeEx {
	
	public static void main(String[] args) {
		Subscribe s1 = new Subscribe("이성계","010-2223-567");  //파라미터 생성자 사용
		s1.print();
		
		Subscribe s2 = new Subscribe(); //기본생성자를 사용하므로 값을 직접 할당해줘야함
		s2.name = "김유신";
		
		s2.chgAge(-10); //제약조건을 걸어논게 출력된다.
		
		s2.chgTelNum("010-2267-6789"); //메서도에 파라미터를 보내는것
		// 위와 같은것 s2.telnum = "010-2267-6789";
		s2.print();
	}

}

이름 : 이성계 전화번호 : 010-2223-5672 나이 : 0
당신은 - 나이를 넣고 있네요
이름 : 김유신 전화번호 : 010-2267-6789 나이 : -10


profile
마포구 주민

0개의 댓글