public static void main(String[] args) {
A.b.print(); }
consloe : 출력
class A {
static B b = new B(); //B도 데이터 타입
}
class B {
void print() {
System.out.println("출력");
}
}
public class classMehtod {
public static void main(String[] args) {
A.b.print();
}
}
package example1;
class B {
void print() {
System.out.println("클래스 B입니다.");
}
}
class A {
void print() {
System.out.println("A클래스 입니다.");
}
}
public class ABTest {
public static void main(String[] args) {
A a = new A();
a.print();
B b = new B();
b.print();
}
}
⚠main가진 클래스명 = 파일 이름 !그래야 실행 가능
✔호출된 메소드를 찾을 때 참조하게 되는 두 가지 정보
기본으로는 같은 클래스에 동일한 이름의 함수는 2개이상 올 수 없지만, 함수 오버로딩은 함수의 파라미터 자료형 or 개수를 다르게 설정하여 같은 이름 함수를 사용 가능하게 만든다.
class A{
//함수 오버로딩:같은 함수이름으로 파라미터 개수 또는 타입을 달리 하는 것
void print() {
System.out.println("A클래스 입니다.");
}
void print(int num) {
System.out.println("A클래스 입니다." + num);
}
void print(int num, int num1) {
System.out.println("A클래스 입니다." + num);
}
void print(double num) {
System.out.println("A클래스 입니다." + num);
}
int print(double num) {
System.out.println("A클래스 입니다" + num);
return 0;
public static void main(String[] args) {
System.out.println("A클래스 입니다"); // 문자열
System.out.println('A'); // char
System.out.println(10); // int
System.out.println(3.14); //double
System.out.println(true); //boolean
}
함수 오버로딩 사용해 100, A, Hello 출력 하시오.
class OverLoadEx {
public void print(int input) {
System.out.println(input);
}
public void print(char ch) {
System.out.println(ch);
}
public void print(String arg) {
System.out.println(arg);
}
}
public class OverLoad {
public static void main(String[] args) {
OverLoadEx ex = new OverLoadEx();
ex.print(100);
ex.print('A');
ex.print("Hello");
}
}
생성자도 함수.
생성자의 오버로딩을 통해 생성되는 인스턴스의 유형을 구분할 수 있다.
ex) 여권이 있는 사람 / 없는 사람
ex) 운전 면허증이 있는 사람 / 없는 사람
생성자 오버로딩을 이용해 여권이 있는 사람과 없는 사람을 구분
class Person {
private int regiNum; //주민등록 번호
private int passNum; //여권 번호
Person(int rnum, int pnum) {
regiNum = rnum;
passNum = pnum;
}
Person(int rnum) {
regiNum = rnum;
passNum = 0;
}
void showPersonalInfo() {
System.out.println("주민등록 번호: " + regiNum + " " + "여권 번호: " + passNum);
}
}
public class PersonTest {
public static void main(String[] args) {
// 여권 있는 사람의 정보를 담은 인스턴스 생성
Person jung = new Person(335577, 112233);
// 여권 없는 사람의 정보를 담은 인스턴스 생성
Person hong = new Person(775544);
jung.showPersonalInfo();
hong.showPersonalInfo();
}
/*
* 주민등록 번호 와 여권 번호 둘다 없는 사람도 구분해달라
* = person(){ regiNum = 0; passNum = 0; }
* 디폴트 생성자를 만들어서 구분
*/
}
Question 1 : 생성자는 클래스를 통해 객체를 생성하고 객체의 필드 값을 초기화 할 수 있다?
⭕ 클래스를 통해 할 수 있다.
Question 2 : 생성자는 메소드이기 때문에 반환 타입을 적어야 한다?
❌ 생성자는 값을 반환하지 않는다.
Question 3 : 클래스에 생성자가 없는 경우에는 객체를 생성할 수 없다?
❌ static을 이용하면 된다.