Contents
+Q ) this 붙이는 가/안 붙이는 것의 차이+Q ) this 붙이는 가/안 붙이는 것의 차이
우리가 읽는 가독성의 차이. 코드상 동일한 동작 수행.


클래스의 생성자를 호출할 때, 매개변수를 전달하려면 다음과 같은 방법을 사용할 수 있습니다:
생성자 오버로딩: 클래스 내에 매개변수를 받는 생성자를 추가하여 다양한 매개변수를 전달할 수 있도록 합니다.
인스턴스 생성 후 메서드를 호출하여 매개변수를 설정합니다.
생성자 내에서 사용자로부터 매개변수를 입력받도록 합니다.
아래는 각 방법에 대한 예시입니다:
1. 생성자 오버로딩:
java
public class MyClass {
private int id;
private String name;
public MyClass() {
id = 0;
name = "이름 없음";
}
public MyClass(int id, String name) {
this.id = id;
this.name = name;
}
public static void main(String[] args) {
MyClass obj1 = new MyClass(); // 매개변수를 전달하지 않는 생성자 호출
System.out.println(obj1.id); // 출력: 0
System.out.println(obj1.name); // 출력: "이름 없음"
MyClass obj2 = new MyClass(1, "뤼튼"); // 매개변수를 전달하는 생성자 호출
System.out.println(obj2.id); // 출력: 1
System.out.println(obj2.name); // 출력: "뤼튼"
}
}
2. 인스턴스 생성 후 메서드를 호출하여 매개변수 설정:
java
public class MyClass {
private int id;
private String name;
public MyClass() {
id = 0;
name = "이름 없음";
}
public void setInfo(int id, String name) {
this.id = id;
this.name = name;
}
public static void main(String[] args) {
MyClass obj = new MyClass(); // 생성자 호출
obj.setInfo(1, "뤼튼"); // 메서드 호출하여 매개변수 설정
System.out.println(obj.id); // 출력: 1
System.out.println(obj.name); // 출력: "뤼튼"
}
}
3. 생성자 내에서 사용자로부터 매개변수 입력 받기:
java
import java.util.Scanner;
public class MyClass {
private int id;
private String name;
public MyClass() {
Scanner scanner = new Scanner(System.in);
System.out.print("ID 입력: ");
id = scanner.nextInt();
System.out.print("이름 입력: ");
name = scanner.next();
}
public static void main(String[] args) {
MyClass obj = new MyClass(); // 생성자 호출
System.out.println(obj.id); // 입력한 ID 출력
System.out.println(obj.name); // 입력한 이름 출력
}
}
위의 예시에서 첫 번째 방법은 생성자 오버로딩을 사용하여 매개변수를 전달하는 생성자를 추가하는 방법입니다. 두 번째 방법은 인스턴스를 생성한 후에 메서드를 호출하여 매개변수를 설정하는 방법입니다. 세 번째 방법은 생성자 내에서 사용자로부터 매개변수를 입력받는 방법입니다.
어떤 방법을 선택할지는 상황에 따라 다를 수 있습니다. 매개변수를 필수적으로 전달해야 하는 경우에는 생성자 오버로딩 또는 인스턴스 생성 후 메서드 호출 방법을 사용할 수 있습니다. 사용자로부터 입력을 받아야 하는 경우에는 생성자 내에서 입력을 받는 방법을 사용할 수 있습니다.
더 자세한 예시나 질문이 있으시면 언제든지 말씀해주세요!
첫 번째 방법은 생성자 오버로딩을 사용하는 방법입니다. 생성자 오버로딩은 같은 이름의 생성자를 여러 개 정의하여 매개변수의 개수나 타입을 다르게 처리할 수 있도록 합니다. 즉, 클래스 내에 여러 개의 생성자를 만들어서 각각 다른 매개변수를 받을 수 있도록 하는 것이죠. 이렇게 생성자를 오버로딩하면 객체를 생성할 때 필요한 매개변수를 전달하여 객체를 초기화할 수 있습니다.
두 번째 방법은 인스턴스를 생성한 후에 메서드를 호출하여 매개변수를 설정하는 방법입니다. 이 방법은 객체를 생성한 후에 별도의 메서드를 호출하여 필요한 매개변수를 전달하는 방식입니다. 예를 들어, 생성자를 호출해서 객체를 초기화한 후에 setInfo()라는 메서드를 호출하여 객체의 매개변수를 설정하는 것입니다.
간단하게 말하자면, 첫 번째 방법은 객체 생성과 동시에 매개변수를 전달하여 초기화하는 방법이고, 두 번째 방법은 객체를 생성한 후에 별도의 메서드를 호출하여 매개변수를 설정하는 방법입니다.
어떤 방법을 선택할지는 상황과 개발자의 선호에 따라 다를 수 있습니다. 첫 번째 방법은 객체 생성 시 매개변수를 바로 전달하여 초기화하기 때문에 간편하고 명확한 초기화가 가능합니다. 두 번째 방법은 객체 생성 후에 메서드를 호출하여 매개변수를 설정하기 때문에 유연한 초기화가 가능합니다.
더 궁금한 점이 있으시면 언제든지 물어보세요!
생성자의 매개변수 중 하나를 필수로 두고, 다른 하나를 기본값으로 지정할 수 있습니다. 이를 가능하게 하는 방법은 다음과 같습니다.
java
public class MyClass {
private int id;
private String name;
public MyClass(int id) {
this.id = id;
this.name = "기본 이름";
}
public MyClass(int id, String name) {
this.id = id;
this.name = name;
}
public static void main(String[] args) {
MyClass obj1 = new MyClass(1); // 필수 매개변수만 전달하는 생성자 호출
System.out.println(obj1.id); // 출력: 1
System.out.println(obj1.name); // 출력: "기본 이름"
MyClass obj2 = new MyClass(2, "뤼튼"); // 필수 매개변수와 선택적 매개변수를 전달하는 생성자 호출
System.out.println(obj2.id); // 출력: 2
System.out.println(obj2.name); // 출력: "뤼튼"
}
}
위의 예시에서 MyClass 클래스는 생성자를 두 개 가지고 있습니다. 첫 번째 생성자는 id라는 필수 매개변수를 받으며, name은 기본값인 "기본 이름"으로 설정됩니다. 두 번째 생성자는 id와 name 두 개의 매개변수를 받아서 해당 값을 설정합니다.
따라서, 객체를 생성할 때 id는 필수로 전달해야 하지만, name은 선택적으로 전달할 수 있습니다. name을 전달하지 않을 경우에는 기본값인 "기본 이름"이 설정됩니다.
이와 같이 생성자를 오버로딩하여 매개변수를 다르게 받는 방식을 사용하면, 필수 매개변수와 선택적 매개변수를 조합하여 객체를 초기화할 수 있습니다.
주의) 생성자(메소드)를 1개라도 선언하면, 컴파일러는 기본 생성자(메서드) 추가 X
ex) 헬스장 수건
그렇지만 이렇게는 해줌. (기본생성자)



매개변수 1개 설정하고 내가 원하는 값 넣고 한 개는 비어두면, 기본 값으로 설정됨.

매개변수를 이름만 주고 id가 없을 때는 3으로 나오게 내가 지정
생성자의 매개변수 중 하나를 필수로 두고, 다른 하나를 기본값으로 지정할 수 있습니다. 이를 가능하게 하는 방법은 다음과 같습니다.
java
public class MyClass {
private int id;
private String name;
public MyClass(int id) {
this.id = id;
this.name = "기본 이름";
}
public MyClass(int id, String name) {
this.id = id;
this.name = name;
}
public static void main(String[] args) {
MyClass obj1 = new MyClass(1); // 필수 매개변수만 전달하는 생성자 호출
System.out.println(obj1.id); // 출력: 1
System.out.println(obj1.name); // 출력: "기본 이름"
MyClass obj2 = new MyClass(2, "뤼튼"); // 필수 매개변수와 선택적 매개변수를 전달하는 생성자 호출
System.out.println(obj2.id); // 출력: 2
System.out.println(obj2.name); // 출력: "뤼튼"
}
}
위의 예시에서 MyClass 클래스는 생성자를 두 개 가지고 있습니다. 첫 번째 생성자는 id라는 필수 매개변수를 받으며, name은 기본값인 "기본 이름"으로 설정됩니다. 두 번째 생성자는 id와 name 두 개의 매개변수를 받아서 해당 값을 설정합니다.
따라서, 객체를 생성할 때 id는 필수로 전달해야 하지만, name은 선택적으로 전달할 수 있습니다. name을 전달하지 않을 경우에는 기본값인 "기본 이름"이 설정됩니다.
이와 같이 생성자를 오버로딩하여 매개변수를 다르게 받는 방식을 사용하면, 필수 매개변수와 선택적 매개변수를 조합하여 객체를 초기화할 수 있습니다.
추가적인 질문이 있으시면 언제든지 물어보세요!
8번.


Share article