JAVA - 생성자
⇒ 객체가 생성될 때 (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
'내장형 하드웨어 > JAVA' 카테고리의 다른 글
JAVA - 윈도우 생성 2번째 (0) | 2011.08.09 |
---|---|
JAVA - 배열 (0) | 2011.07.26 |
JAVA - 기본 문제풀이(짝수, 구구단), 클래스, 메소드 (0) | 2011.07.22 |
JAVA - 변수사용, printf / println, Scanner (0) | 2011.07.19 |
java 첫시간 - 설치과정, 기본지식 (0) | 2011.07.18 |