Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 예외처리
- interface상속
- Stack
- 동기화블럭
- cocos2d-x
- 상수변수
- Class함수
- 데이터타입
- singleton
- 문자열
- c#
- c++게임엔진
- 프로그래밍
- Exception
- 반복문
- 예외던지기
- Thread
- java
- 입출력
- 스레드
- Interface
- unity
- c++
- 게임엔진
- db
- oracle
- C/C++
- cocos2d
- 데이터베이스
- cocos2dx
Archives
- Today
- Total
초보 프로그램 개발자
[ 3주차 ] Java - 생성자 본문
생성자
생성자는 메모리 할당을 받을 때 사용하며 변수를 초기화하는것이 목적이고,
class 이름과 동일해야 하며 return값이 없기 때문에 property(void,int...) 가 붙지 않는다.
생성자는 오버로딩(중복정의)가 가능하며 생성자에서 생성자를 호출할 수 있다.
단, 생성자에서 생성자를 호출할 경우 맨 위에 선두에서만 가능 하다.
- 기본적인 클래스 객체 생성 방법
package com.day9;
class TestClass1{
private int x, y;
public void set(int x, int y) {
this.x = x;
this.y = y;
}
}
public class Test8 {
public static void main(String[] args) {
TestClass1 ob = new TestClass1(); // new 뒤의 TestClass1() 이 생성자
ob.set(10, 20); // set 함수로 x와 y의 값을 초기화 해주어야 한다
}
}
위의 코드에 생성자는 없지만 프로그램에서 자동으로 아무것도 없는 생성자를 만들어 준것이다.
(TestClass1 코드만 보면)
class TestClass1{
private int x, y;
public TestClass1() {
}
public void set(int x, int y) {
this.x = x;
this.y = y;
}
}
TestClass1 메소드 안에 아무것도 없지만 메모리에 할당하겠다는 의미로 사용된다.
TestClass1 도 메소드로 인자값을 받을 수 있다.
package com.day9;
class TestClass1{
private int x, y;
public TestClass1() {
}
// 메소드 오버로딩
public TestClass1(int x, int y) {
this.x = x;
this.y = y;
}
public void set(int x, int y) {
this.x = x;
this.y = y;
}
}
public class Test8 {
public static void main(String[] args) {
TestClass1 ob = new TestClass1();
ob.set(10, 20);
TestClass1 ob2 = new TestClass1(10, 20);// set 함수 없이 생성시 초기화
}
}
인자를 받는 생성자를 만들 경우 위의 빈 생성자도 꼭 만들어 주어야 하며,
개발자의 의도에 따라 빈 생성자 없이 무조건 인자를 받게 만들려면 빈 생성자를 지워주면 된다.
'교육 일지 > java' 카테고리의 다른 글
[ 3주차 ] Java - 상수변수 (final) (0) | 2023.05.16 |
---|---|
[ 3주차 ] Java - 오버로딩(Overloading) (0) | 2023.05.16 |
[ 3주차 ] Java - Static (0) | 2023.05.15 |
[ 2주차 ] Java - 전역변수 / 지역변수 (0) | 2023.05.12 |
[ 2주차 ] Java - Class (0) | 2023.05.12 |