일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 오류역전파
- CNN
- 서열정렬
- SVM
- 블록체인
- 바이오인포매틱스
- BLaST
- ncbi
- 생명정보학
- 인공신경망
- 결정트리
- AP Computer Science A
- 생물정보학
- 인공지능 수학
- bioinformatics
- 딥러닝
- MERS
- 이항분포
- 알파폴드
- 바이오파이썬
- 파이썬
- 행렬
- COVID
- 시그모이드
- 캐글
- AP
- 자바
- 인공지능
- Java
- Kaggle
- Today
- Total
데이터 과학
생성자 (constructor) 본문
클래스는 데이터와 동작(Active)에 대한 것을 하나로 모아 놓은 것입니다.
이때 데이터를 필드라고 하며 동작을 메소드(method)라고 합니다.
객체지향 언어의 클래스 안에 있는 것을 메소드라고 하고, C언어 같은 구조적 언어에서는 함수(fuction)이라는 용어를 사용합니다.
필드와 메소드를 클래스의 멤버라고 합니다.
class class_name {
int pioneer;
int dream; // 멤버 필드
int add() { // 멤버 메소드
return pioneer* dream;
}
}
이 예제를 좀 더 확장을 하면 메소드에 여러 가지 기능을 부여할 수 있습니다.
이를 테면 클래스에 대한 객체를 초기화시켜주는 생성자(Constructor)와 데이터 값을 리턴만 해주는 지시 메소드 (accessor method), 인자(arguments) 값을 받아 값을 계산하여 돌려주는 리턴, 변환 메소드 (Mutators method)를 작성할 수 있습니다.
다음 예제는 정보 은닉과 생성자(Constructor)에 대한 예제입니다.
class Box {
private int width; // 접근한정자(접근지정자). 변수를 private로 선언하여 외부에서 접근을 막는다
private int height; // 변수 정보의 은닉 제공
private int depth;
private int vol;
public Box(int a, int b, int c) { // 클래스의 이름과 같은 이름으로 생성자 선언
width = a; // 초기화 작업 수행
height = b;
depth = c;
}
public int volume() { // 변환 메쏘드 (mutators method)
vol = width * height * depth;
return vol;
}
}
public class BoxTestDemo {
public static void main(String args[]) {
int vol; // BoxTestDemo 지역변수
Box mybox1 = new Box(10, 20, 30);
vol = mybox1.volume();
System.out.println("mybox1 객체의 부피 : " + vol);
}
}
결과:
mybox1 객체의 부피 : 6000
생성자는 클래스로부터 객체가 생성될 때 초기화하는 과정을 나타내는 메소드입니다.
생성자 이름은 클래스 이름과 같습니다.
생성자는 객체가 생성될 때 한 번만 수행이 되는 특징이 있으며 반환 값(return)이 없습니다.
생성자는 본문을 상속(inheritance) 하지 않습니다.
예제를 하나 더 봅시다.
class Box2 {
private int width; // 변수를 private로 선언하여 외부에서 접근을 막는다
private int height; // 변수 정보의 은닉 제공
private int depth;
private int vol;
public Box2(int a, int b, int c) {
width = a;
height = b;
depth = c;
}
public Box2(int a, int b) { // 생성자 오버로딩(overloading)
width = a;
height = b;
}
public int volume() { // 변환 메쏘드 (mutators method)
vol = width * height * depth;
return vol;
}
public int volume2() { // 변환 메쏘드 (mutators method)
vol = width * height;
return vol;
}
}
class BoxTestDemo {
public static void main(String args[]) {
int vol, vol2;
Box2 mybox1 = new Box2(10, 20, 30);
Box2 mybox2 = new Box2(100, 200);
vol = mybox1.volume();
vol2 = mybox2.volume();
System.out.println("mybox1 객체의 부피 : " + vol);
System.out.println("mybox1 객체의 가로*세로 : " + vol2);
}
}
결과:
mybox1 객체의 부피 : 6000
mybox1 객체의 가로*세로 : 20000
'프로그래밍 언어론 > JAVA 기초' 카테고리의 다른 글
상속(Inheritance) (10) | 2022.11.06 |
---|---|
메소드 오버로딩 (7) | 2022.11.05 |
배열 (array) (1) | 2022.10.23 |
return에 대하여 이해하기 (0) | 2022.09.10 |
자리배치 프로그램 -JAVA (0) | 2022.09.04 |