겉바속촉

class 호출하기 본문

IT일기(하반기)/블록체인

class 호출하기

겉바속촉 2020. 6. 1. 11:54
728x90
반응형

안녕하세요~ 겉바속촉입니다!^^!

이번에는 class를 호출하는 방법들을 살펴보려고 합니다:)

 

다음과 같은 코드를 먼저 작성해주세요!!

 

package day0601;

class Number{
	
	int num = 0; 
	
	//인자 없는 생성자
	public Number() {
		
		num = 10; //초기값을 따로 생성해줌
		System.out.println("디폴트 생성자 호출");
		
	}
	
	//인자있는 생성자
	public Number(int num) {
		
		this.num = num; //이름이 같은경우 인스턴스 자기자신을 의미하여 구분
		System.out.println("생성자 호출");
		
	}
}
////////////////////////////
public class ConstTest_04 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//메인메서드에서는 인스턴스가 생성될때마다 생성자 자동호출
		Number num1 = new Number();
		System.out.println(num1.num);
		
		Number num2 = new Number(50); //초기화하면서 그냥 넣어버림 초기값을
		System.out.println(num2.num);
				
		
	}

}

 

코드 구조를 살펴보시면

Number라는 클래스 안에 변수선언 후 public이 붙어있는 생성자가 2가지 있습니다.

1. 인자 없는 생성자

2. 인자 있는 생성자

 

그리고 main에서 살펴보시면

Number num1 = new Number(); --->객체를 생성해주고 있습니다.

동시에 어떤 생성자가 실행이 될지 생각해보세요:)

형태를 살펴보시면 1번이 실행될 것으로 보이네요

 

그리고 println(num1.num) --->num1에 접근해서 num을 출력해내려고 합니다:)

여기까지가 출력이 되면

디폴트 생성자 호출

10

 

 

인자 있는 생성자 부분에서는 this가 등장하고 있쥬?

요 this의 용도는 구분을 지어주기 위해 써줍니다:)

this num = num;

 

좌변 num ---> 이것!!! 지금 생성자가 들어있는 클래스 이것!!!!!의 변수 num

우변 num ---> public Number(int num)에서 num

 

콘솔창이랑 함께 확인해주세요:)

 

메소드를 더 추가해볼게요:)

생성자도 메소드의 일종입니다!

 

아까 했던 부분의 인자 있는 생성자는 클래스명과 동일합니다.

Number --> 이때는 생성자라고 하구요;

 

public int getNumber() ---> 이때는 메소드라고 합니다;

 

다음 코드블럭에 있는 코드를 추가해볼게요:)

getNumber()함수에 num을 100이라고 넣어준 후에 return 해줍니다!!

//메소드
	public int getNumber()
	{
		num = 100;
		return num;
		
	}

 

다음 코드들은 추가로 연습해볼게요:)

 

예제1

 

package day0601;

class Member {
	
	String name = "이주현";
	
	//인자값 전달받는 생성자
	public Member(String name) {
		//인스턴스와 매개변수(인자)가 다를 경우엔 this 생략 가능
		//그러나 가급적 맞춰준다
		//public Member(String n){
		// name = n;
		// System.out.println("내 이름은 "+ name + "입니다.");
		//}
		this.name = name;
		System.out.println("내 이름은 "+ name + "입니다.");
	
	}
}

public class ConstTest_05 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//생성자호출---> 1줄만 쓰기
		Member mem1 = new Member("보라돌이");
		Member mem2 = new Member("뚜비");
		Member mem3 = new Member("겉바속촉");
		

	}

}

 

예제2

 

package day0601;

class Apple{
	//디폴트 생성자
	public Apple() {
		System.out.println("디폴트생성자 호출_apple");
	}
	
}
//////////////////////////
class Banana{
	
	Banana(String str){
		System.out.println("생성자호출: " + str);
	}
}
//////////////////////////
class Orange{
	
}
//////////////////////////

public class ConstOver_06 {
	
	public static void main(String[] args) {
		
		//apple생성자
		Apple fru1 = new Apple();
		
		//banana인자1 생성자
		Banana fru2 = new Banana("바나나");
		
		
		
	}

}

 

예제2 class생성 orange 추가 

 

class Orange{
	
	public Orange() {
		System.out.println("오렌지 디폴트 생성자 호출");
	}
	
	public Orange(String str) {
		System.out.println("오렌지 두번째 생성자: "+str);
	}
	
	public Orange(int n) {
		System.out.println("오렌지 3번째 생성자: "+n);
	}
	
	public Orange(String str, int n) {
		System.out.println("오렌지 4번째 생성자: " + str + ","+n);
	}
	

public class에다가 오렌지 4가지 생성자 호출 추가

	//오렌지 4가지 생성자 호출
		Orange fru31 = new Orange();
		
		Orange fru32 = new Orange("맛있다");
		
		Orange fru33 = new Orange("45");
		
		Orange int34 = new Orange("Happy", 55); //인자값 전달은 순서대로
		
		

추가한 코드에 대한 출력문

 

728x90
반응형

'IT일기(하반기) > 블록체인' 카테고리의 다른 글

class호출-창 2개  (0) 2020.06.01
여러가지버전으로 호출  (0) 2020.06.01
클래스 연습하기  (0) 2020.06.01
클래스와 인스턴스  (0) 2020.06.01
2차원 배열  (0) 2020.05.29