728x90
생성자 메서드
- 객체화(인스턴스화)될 때 실행되는 메서드
- 기본적으로 생략되어있으며, 메서드명은 클래스명과 동일하다.
- 기본값
class 클래스명 {
접근지정자 클래스명(){
}
}
package kr.or.ksmart;
class User2{
private String name;
public User2(){
System.out.println("생성자 메서드 호출");
}
}
public class JavaBasic02 {
public static void main(String[] args) {
User2 user2 = new User2();
}
}
생성자 메서스의 위치
class 클래스명{
필드
생성자 메서드
일반 메서드
}
생성자 메서드의 인수값
생성자 메서드에 인수값이 있을 경우 인스턴스화 할 때 일치하는 데이터 타입을 인수 삽입하고 인스턴스화 해야 한다.
package kr.or.ksmart;
class User3{
public User3(String name){
System.out.println("인수 있는 생성자 메서드 호출");
}
}
public class JavaBasic02 {
public static void main(String[] args) {
User3 user3 = new User3("이순신");
}
}
생성자 메서드의 오버 로딩
일반 메서드와 마찬가지로 오버 로딩이 가능하다.
package kr.or.ksmart;
class User2{
private String name;
public User2(){
System.out.println("생성자 메서드 호출");
}
public User2(String name) {
this.name = name;
System.out.println("생성자 메서드 오버로딩 호출 -> " + this.name);
}
}
public class JavaBasic02 {
public static void main(String[] args) {
User2 user2 = new User2();
User2 user3 = new User2("홍길동");
}
}
생성자 메서드의 접근 지정자
package kr.or.ksmart;
class User4{
private User4() {
System.out.println("생성자 메서드 호출");
}
}
public class JavaBasic02 {
public static void main(String[] args) {
User4 user4 = new User4();
}
}
접근 지정자가 private 이기 때문에 인스턴스화가 되지 않음 오류 코드
다른 방법으로 사용할 수 있지만 오늘은 모름 ㅋㅋㅋ
생성자 메서드의 인수값에 객체화 하기
package kr.or.ksmart;
class Car{
private int num;
private int gas;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public int getGas() {
return gas;
}
public void setGas(int gas) {
this.gas = gas;
}
}
class CreateCar{
private Car car;
public CreateCar(Car car) {
this.car = car;
}
public void setNum(int num) {
car.setNum(num);
}
public void setGas(int gas) {
car.setGas(gas);
}
public Car getCar() {
return car;
}
}
public class JavaBasic03 {
public static void main(String[] args) {
CreateCar cc = new CreateCar(new Car()); //객체화 된것을 넘김
cc.setGas(100);
cc.setNum(1000);
Car car = cc.getCar();
System.out.println(car.getGas());
System.out.println(car.getNum());
}
}
실습
1. Sum 클래스를 인스턴스화 할 때 int형 데이터 인수 2개를 넘겨 인스턴스화 하고 getSum() 메서드로 합산 경과를 받아와 출력하여라.
package kr.or.ksmart;
class Sum{
private int sum;
public Sum(int n1, int n2) {
this.sum = n1+ n2;
}
int getSum() {
return sum;
}
}
public class JavaBasicEx02 {
public static void main(String[] args) {
Sum sum = new Sum(78,69);
System.out.println(sum.getSum());
}
}
반응형
'Backend > JAVA' 카테고리의 다른 글
JAVA 다형성 (0) | 2020.04.22 |
---|---|
JAVA 상속 (0) | 2020.04.22 |
JAVA 메서드 오버로딩 (0) | 2020.04.22 |
JAVA 실습. 클래스 (0) | 2020.04.21 |
JAVA 형 변환 (0) | 2020.04.21 |
댓글