복습
https://shins99.tistory.com/12
[자바 기초] 함수와 메서드
복습 https://shins99.tistory.com/11 [자바 기초] 객체 지향 언어란? 복습 https://shins99.tistory.com/9 [자바 기초] 참조 자료형 - Scanner, Random 복습 https://shins99.tistory.com/8 [자바 기초] for, while 복습 https://shins99.ti
shins99.tistory.com
생성자
💡 학습 목표
1. 생성자가 뭘까?
2. 생성자를 사용하는 방법(문법
3. 생성자에는 기본생성자와 사용자정의 생성자가 있다
4. 생성자 오버로딩이란 무엇일까?
5. 생성자는 인스턴스화(객체화) 될 때 가장 먼저 수행되는 코드이다★★
생성자
- 객체를 생성할 때 new 키워드와 함께 사용 - new Student();
- 생성자는 일반 함수처럼 기능을 호출하는 것이 아니고 객체를 생성하기 위해 new 와 함께 호출 됨
- 객체가 생성될 때 변수나 상수를 초기화 하거나 다른 초기화 기능을 수행하는 메서드를 호출 함
- 생성자는 반환 값이 없고, 클래스의 이름과 동일
- 대부분의 생성자는 외부에서 접근 가능하지만, 필요에 의해 private 으로 선언되는 경우도 있음
- 객체를 생성할 때, 객체의 형태에 대한 강제성을 부여하는 것.
- 반환값이 없음. 선언부에 반환 자료형이 없음
- 생성자 이름 == 클래스 이름
기본 생성자 (default constructor)
● 클래스에는 반드시 적어도 하나 이상의 생성자가 존재한다.
● 클래스에 생성자를 구현하지 않아도 new 키워드와 함께 생성자를 호출할 수 있음
● 클래스에 생성자가 하나도 없는 경우 컴파일러가 생성자 코드를 넣어 줌
● public Student(){}
● 매개변수가 없는 생성자
생성자 만들기
● 컴파일러가 제공해 주는 기본 생성자외에 필요에 의해 생성자를 직접 구현 할 수 있음
생성자 만들어보기
public class Bus {
// 속성(상태)
int busNumber;
int count;
int money;
// 생성자 만들어보기
// 함수와 메서드와 생성자의 차이 생성자는 리턴 타입 없음.
// 반드시 클래스 이름과 동일 해야 한다.
// 객체화 시키기 위해서 적어도 하나의 생성자가 있어야 함.
// 생성자가 없으면 메모리에 올릴 수 없다.
// 1. 기본 생성자는 컴파일러가 자동으로 만들어 준다.
// 단! (사용자가 정의한 생성자가 없을 경우)
// 2.
public Bus() {
}
// 개발자가 직접 생성자를 명시하는 거을
// 사용자 정의 생성자라고 부른다.
public Bus(int busNumber) {
this.busNumber = busNumber;
// this = 자기 자신.
// this를 안쓰고 싶다면 변수 이름을 바꿔야 함.
}
public Bus(int busNumber, int count) {
this.busNumber = busNumber;
this.count = count;
}
public Bus(int busNumber, int count, int money) {
this.busNumber = busNumber;
this.count = count;
this.money = money;
}
// 행위(기능)
public void take(int m) {
money += m;
count++;
}
public void showInfo() {
System.out.println("버스 번호 : " + busNumber);
System.out.println("승객 수 : " + count);
System.out.println("금액 : " + money);
System.out.println("======================");
}
} // end of class
생성자 사용해보기
public class BusMainTset1 {
// 메인 함수
public static void main(String[] args) {
// 참조변수 = bus100 <-- stack
// 객체 <-- heap 메모리 영역에 올라간다.
Bus bus100 = new Bus();
bus100.busNumber = 100;
bus100.count = 0;
bus100.money = 0;
System.out.println();
// 생성자 사용해보기 (사용자 정의 생성자)
Bus bus200 = new Bus(200);
bus200.showInfo();
// 매개변수 순서대로 값을 입력 해주어야 한다.(포지셔닝)
Bus bus300 = new Bus(300, 1);
bus300.showInfo();
Bus bus400 = new Bus(400, 1, 1300);
bus400.showInfo();
} // end of main
} // end of class
생성자를 사용하는이유
- 사용자에게 편의성을 제공하기 위해
생성자 오버로딩
- 자바언어에서 굉장히 중요한 단어
- 매개변수에 따라서 구분이 가능하다 (적재하다 라고 함)
- 단, 매개 변수의 개수가 같더라도 데이터 타입이 다르면 구분이 가능
- 생성자를 여러가지 정의할 수 있는 기능 = 생성자 오버로딩
// 생성자 안에 쓰는 변수 = 매개변수 - 생성자는 인스턴스화 될 때 가장 먼저 수행되는 코드이다.
기타
- 객체 자기 자신의 메모리를 가르키는 this
- this를 이용하면 멤버변수와 매개변수의 이름이 동일해도 구분가능
'[JAVA] > [자바 기초]' 카테고리의 다른 글
[자바 기초] 접근 제어 지시자, get(), set() 메서드 (0) | 2023.08.01 |
---|---|
[자바 기초] 객체와 객체 간 상호작용 (0) | 2023.07.31 |
[자바 기초] 조건문 & 반복문 복습해보기 (0) | 2023.07.30 |
[자바 기초] 함수와 메서드 (0) | 2023.07.28 |
[자바 기초] 객체 지향 언어란? (0) | 2023.07.28 |