겉바속촉
class 호출하기 본문
안녕하세요~ 겉바속촉입니다!^^!
이번에는 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); //인자값 전달은 순서대로
'IT일기(하반기) > 블록체인' 카테고리의 다른 글
class호출-창 2개 (0) | 2020.06.01 |
---|---|
여러가지버전으로 호출 (0) | 2020.06.01 |
클래스 연습하기 (0) | 2020.06.01 |
클래스와 인스턴스 (0) | 2020.06.01 |
2차원 배열 (0) | 2020.05.29 |