본문 바로가기

IT/자바

생성자1

mymain.zip



mymain 패키지 내용

package mymain;


import myutil.MyDate3;


public class MyMain_생성자 {

public static void main(String[] args) {

//객체

MyDate3 md1 = new MyDate3();

MyDate3 md2 = new MyDate3(2018);

MyDate3 md3 = new MyDate3(2018,4);

MyDate3 md4 = new MyDate3(2018,4,26);

md1.dsplay();

md2.dsplay();

md3.dsplay();

md4.dsplay();


//private 생성자이기 때문에 객체생성 못함

Math mt = new Math();

}

}



=================================
myutil 패키지

package myutil;
/*
생성자 메소드(Constructor
1. 객체의 초기화 목적으로 사용(멤버변수 초기화)
2. 형식) 클래스명과 동일함
3. 반환형 없음 (void 쓰면 안됨) 
4. 객체생성시 자동호출
5. Overload(중복)가 가능
6. 생략가능함=>JVM이 기본생성자를 자동생성해서 처리해준다
(단, Overload된 생성자 있을시 무조건 기본생성자는 생성해야 됨)
 */
public class MyDate3 {
/*
이건 일반 메소드 생성자 아님
public void MyDate3() {}
*/
int year, month, day;
//setter 함수는 중간중간 수정할 때 값 세팅
//생성자(멤버변수 초기화 목적)
//default 생성자(기본생성자: 파라메터가 없는 생성자)
public MyDate3() {
System.out.println("--MyDate3()--");
//멤버변수 초기화
year = month = day = 1;
}
//생성자, 오버로드(인자1개 생성자)
public MyDate3(int y) {
System.out.println("--MyDate3(y)--");
year = y;
month = day = 1;
}
//생성자, 오버로드(인자2개 생성자)
public MyDate3(int y, int m) {
System.out.println("--MyDate3(y,m)--");
year = y;
month = m;
day = 1;
}
//생성자, 오버로드(인자3개 생성자)
public MyDate3(int y, int m, int d) {
System.out.println("--MyDate3(y,m,d)--");
year = y;
month = m;
day = d;
}
//메소드
public void dsplay () {
System.out.printf("%d년 %d월 %d일\n",year,month,day);
}

}












'IT > 자바' 카테고리의 다른 글

this 설명  (0) 2018.04.26
생성자2  (0) 2018.04.26
패키지, 생성자, 멤버필드 생성  (0) 2018.04.25
한글 체크  (0) 2018.04.25
키보드 단축키  (0) 2018.04.25