본문 바로가기

코딩 공부/Java

생성자

생성자

*기본 생성자 : 따로 만들지 않아도 자동으로 만들어져 있다. 그 안에 기능을 넣고 싶을 때 만들면 된다. 만약 호출을 하고 싶다면 기본 생성자를 입력(명시) 해야 한다

package constructor;
public class EvenOddMain {
	public static void main(String[] args) {
		EvenOdd eo =  new EvenOdd();
		
		eo.setData(10);
		if(eo.result())
			System.out.println(eo.getData()+"는"+"짝수입니다");
		else {
			System.out.println(eo.getData()+"는"+"홀수입니다");
		}
		EvenOdd eo2 =  new EvenOdd(12);
		
		if(eo2.result())
			System.out.println(eo2.getData()+"는"+"짝수입니다");
		else {
			System.out.println(eo2.getData()+"는"+"홀수입니다");
		}
	}
}
package constructor;
public class EvenOdd {
//private : 현재 인스턴스 안에서만 접근 가능
	private int data;
	public EvenOdd() {	
//매개변수가 있는 생성자가 있다면 기본 생성자는 만들어 지지 않는다
//그러므로 쓰려면 써줘야한다.
	}
	public EvenOdd(int data2) {
	setData(data2);	
	this.data = data2;
	}
	public void setData(int data) {
		this.data = data;
	}
	public int getData() {
		return data;
	}
	public boolean result() {
		if(this.data % 2==0)
			return true;
		return false;
		/*
		 * return
		 * 데이터를 메서드 호출한 위치로 반환
		 * 메서드 종료
		 * */
	}
}

예) 정수를 입력받아 거꾸로 만들기

package constructor;
import java.util.*;
public class Reversemain {
	public static void main(String[] args) {
	
	Scanner sc = new Scanner(System.in);
		Reverse rev1 = new Reverse();
		
	System.out.println("정수를 입력하세요");
		rev1.setData(sc.nextInt());
		System.out.println(rev1.getData()+"의반대정수"+rev1.getResult());
System.out.println("정수를 입력하세요");
Reverse rev2 = new  Reverse(sc.nextInt());
	System.out.println(rev2.getData()+"의반대정수"+rev2.getResult());		
	}
}
package constructor;
public class Reverse {
	
	private int data;
	private int result;
	
	public Reverse() {
		
	}
	public Reverse(int data) {
		this.data = data;
		
	}
	public void setData(int data) {
		this.data = data;
	}
	private void setResult() {
		int tmp = data;
		while(true) {
			result = result +tmp%10;
			tmp = tmp/10;
			if(tmp==0)break;
			result = result*10;
		}
	}
	public int getData() {
		return data;
	}
	public int getResult() {
		setResult();
		return result;
	}
}

인스턴스 생성

new : 클래스를 인스턴스로 만든다.

실제 코드는 text영역에 있다.

*text : code영역

class car{
	String outColor;
    void setOutColor(String outColor){....}
}
public class EX01{
	public static void main(String args[]){
    car mayCar = new car();
    }
}

this

class 자체를 의미

class내에서 생성자를 호출할 때 사용

class내에서 멤버 필드를 지정할 경우 사용

'코딩 공부 > Java' 카테고리의 다른 글

MVC Pattern  (0) 2022.08.25
상속  (0) 2022.08.24
클래스  (0) 2022.08.22
HashMap  (0) 2022.08.21
Hash Set  (0) 2022.08.20