블로그 이미지
하루, 글. 그림. 영상매체. 표현을 도와주는 기기들. 도전 중. 동화다아아
    동화다아아

    카테고리

    분류 전체보기 (176)
    잡담 (1)
    IT 기기-리뷰&뉴스 (7)
    리뷰 - 도서 (1)
    리뷰 - 영상 (0)
    리뷰 - 그림/음악 (1)
    내장형 하드웨어 (163)
    Total
    Today
    Yesterday

    - 생성자(Constrouctor)

    ⇒ 객체가 생성될 때 (instance영역에 올라갈 때) 그 객체가 기본적으로 가지고 있어야 할 값이나 처리한 코드를 넣어주는 method의 일종

    ⇒ 반환형이 없고, 클래스의 이름과 동일하게 작성

            

    class Test{

            public Test(){

     

            }

    }

    ⇒ 객체화 할 때, 자동으로 호출됨

    method를 호출하듯이 호출 가능함

    ⇒ 개발자가 생성자를 하나도 정의하지 않으면, compiler가 컴파일시 자동으로 parameter 없는 기본생성자 생성

    ⇒ 생성자는 상속되지 않음

    this super로 내 class의 생성자나 부모클래스의 생성자 호출

    overloading 지원됨

     

    ⇒ 접근지정자 클래스명();

    1. public : 외부 class에서 객체화 가능

    2. protected : 동일 package에서는 객체화 가능, 외부 package에서는 상속받은자식 클래스만 객체화 가능

    3. private : class안에서만 객체화 가능 (single ton pattern 적용시)

    4. default : 동일 package에서만 객체화 가능

     

    <조건>

    1. 생성자의 이름은 클래스의 이름과 같아야 한다.

    2. 생성자는 리턴값이 없다 (But, void를 사용X)

    <기본생성자 default constructor>

    ⇒ 매개변수가 없는 생성자

    ⇒ 클래스에 생성자가 없으면 컴파일러가 기본생성자 추가

     

    <생성자에서 다른 생성자 호출 this()>

    ⇒ 생성자의 이름으로 클래스 이름 대신 this를 사용

    ⇒ 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄ㅇ서만 호출 가능

     

    <참조변수 this>

    ⇒ 인스턴스 자신을 가리키는 참조변수.

    ⇒ 인스턴스의 주소가 저장되어 있음

    ⇒ 모든 인스턴스 method에 지역변수로 숨겨진 채로 존재

     

     

    - 은행 입출금 예제

    package kr.ac.busanit;

     

    //Account.java

    public class Account {

     

           String accountNo;

           String ownerName;

           int balance =1000000;

           void deposit(int amount)

           {

                 balance = balance + amount;

           }

           int withdraw(int amount)

           {

                 if(balance < amount)

                 {

                        return 0;

                 }

                 balance = balance - amount;

                 return amount;

           }

           public void setAccountNo(String accountNo)

           {

                 this.accountNo = accountNo;

           }

           public String getAccountNo()

           {

                 return accountNo;

           }

           public void setOwnerName(String ownerName)

           {

                 this.ownerName = ownerName;

           }

           public String getOwnerName()

           {

                 return ownerName;

           }

           public void setBalance(int balance)

           {

                 this.balance = balance;

           }

           public int getBalance()

           {

                 return balance;

           }

          

           public static void main(String[] args) {

                 // TODO Auto-generated method stub

     

           }

     

    }

     

     

     

    package kr.ac.busanit;

     

    //AccountTest.java

    public class AccountTest {

     

           public static void main(String[] args) {

                 // TODO Auto-generated method stub

                 Account myAccount = new Account();

                

                 myAccount.withdraw(100000);

                 System.out.println("통장의 잔액은 : " + myAccount.getBalance());

                 myAccount.deposit(500000);

                 System.out.println("통장의 잔액은 : " + myAccount.getBalance());

     

           }

     

    }

    ⇒ 출력 결과

            통장의 잔액은 : 900000

            통장의 잔액은 : 1400000 

     

     

     

    Posted by 동화다아아
    , |

    최근에 달린 댓글

    최근에 받은 트랙백

    글 보관함