티스토리 뷰

LANGUAGE/JAVA

[JAVA] 생성자

찰떡쿠키부스트 2017. 11. 15. 09:36

 

생성자

반환형(ex.void , int 등등)을 선언 할 수 없는 특수한 메서드

메서드명 = 클래스명

메서드 오버로딩을 지원한다.

주소생성할때 딱 한번 호출가능( 주소로 차후 호출불가능-다른메서드랑 다른점)

 

// ​클래스에 생성자가 선언되어 있지 않은경우

자동으로 기본생성자(매개변수가 없는)가 선언된다.
// 클래스에 생성자가 선언된경우
기본생성자(매개변수가 없는)는 추가되지 않는다.

this()

:생성자 호출하는 명령어

 * this()는 '생성자'(메소드안됨)의 '첫번째'줄에서만 호출가능! (여백은 상관없음)

class A{
 A(int a){
  this("aaa"); // A("aaa");
  System.out.println(1);
 }
 A(String a){
  this(200,"bbb"); // A(200,"bbb");
  System.out.println(2);
 }
 A(int a, String b){
  System.out.println(3);
 }
}


class B{
 public static void main(String[] args){ 
     A o1=new A(100);
 }
}

 

객체지향프로그램 3단계

 객체란 속성과 기능을 가진것.
 객체란 유무형의 모든것을 의미
ex) 자동차객체, 학사시스템객체

자동차
속성(멤버변수): 바퀴,엔진, 색상,브랜드,소유주...
기능(메서드): 달린다,.멈춘다, 기름을 더 넣는다 ...

class 자동차{
 int 바퀴수;
 String 색상, 브랜드;
 사람 소유주;

 void 달린다(){}
 void 멈춘다(){}
}

class 사람{
 String 지역,이름;....
}

 자동차 변수1=new 자동차();
 변수1.바퀴수=4;
 변수1.달린다();
 자동차 변수2=new 자동차();
 변수2.바퀴수=6; 


생성자를 선언하는 이유는? 객체의 필드값 세팅!!


 

 

맴버변수의 초기값

변수의 초기화 --> 변수에 최초의 값을 할당하는 것.

1.로컬변수는 초기화하지 않고 이용하려면 오류발생!

 ex)class A{

 public static void main(String[] args){

  int a;

  int b=a; // 컴파일에러

 }

}

2. 멤버변수는 초기값을 지정하지 않아도 기본값이 있음

  ex) 정수-->0 실수-->0.0  문자-->(공백)  논리-->false

  참조형(배열,클래스,enum,인터페이스) --> null

  ## null 이란? -주소가 없다는 의미

 - 배열의 초기값은 멤버변수의 초기값과 같다.

 

 

'LANGUAGE > JAVA' 카테고리의 다른 글

[JAVA] 접근제어자  (0) 2017.11.15
[JAVA] 상속  (0) 2017.11.15
[JAVA] 배열  (0) 2017.11.15
[JAVA] 메서드(Method)  (0) 2017.11.15
[JAVA] 조건문과 반복문  (0) 2017.11.14
댓글