Cute Happy Ghost
본문 바로가기
JAVA/Java

20201008_13 메소드오버로딩

by JENN_tech7 2020. 10. 8.
728x90
SMALL
  • Static이 없다면?

 

 

 

  • 메소드 오버로딩

 

 

  • Pro02클래스
package Project01;

public class Pro02 {
	String name; // 이름
	int age; 	// 나이

	// 생성자 메소드
	// 이름만 초기화하면서 새로운 Pro02 객체를 생성한다
	public Pro02(String NewName)
	{
		name = NewName;
	}

	// 나이만 초기화하면서 새로운 Pro02 객체를 생성한다
	public Pro02(int NewAge)
	{
		age = NewAge ;
	}

	// 이름과 나이를 초기화하면서 새로운 Pro02 객체를 생성한다
	public Pro02 (String NewName, int NewAge)
	{
		name = NewName;
		age = NewAge ;
	}
}

 

 

  • Pro02Driver
package Project01;

public class Pro02Driver {
	public static void main(String[] args)
	{
		// 이름이 ‘홍길동’인 Pro02 객체를 생성하고 p1이 가리키게 한다(생성자 오버로딩)
		Pro02 p1 = new Pro02("홍길동");
		// p1의 나이를 27로 변경한다
		p1.age= 27;

		// p1의 이름과 나이를 출력한다
		System.out.println(p1.age + p1.name);

		// 나이가 18인 Pro02 객체를 생성하고 p2가 가리키게 한다(생성자 오버로딩)
		Pro03 p2 = new Pro03(18);

		// p2의 이름을 '손오공'으로 변경한다
		p2.name = "손오공";

		// p2의 이름과 나이를 출력한다 <-- 요건 생각을 많이 해야함
		System.out.println(p2.age + p2.name);

		// 이름이 ‘이도령’이고 나이가 20인 Pro02 객체를 생성하고 p3이 가리키게 한다(생성자 오버로딩)
		Pro03 p3 = new Pro03("이도령", 20);

		// p3의 이름과 나이를 출력한다 <-- 요건 생각을 많이 해야함
		System.out.println(p3.age + p3.name);

	}
}

 

 

  • Pro03클래스
package Project01;

public class Pro03 {
	private String name; // 이름
	private int age; 	// 나이

	// 생성자 메소드 - 이름만 초기화한다
	public Pro03(String NewName)
	{
		this(NewName, 0);
	}

	// 생성자 메소드 - 나이만 초기화한다
	public Pro03(int NewAge)
	{
		this(null, NewAge);
	}

	// 생성자 메소드 - 이름과 나이를 초기화한다
	public Pro03(String NewName, int NewAge)
	{
		setName(NewName);
		setAge(NewAge);
	}

	// 사람의 이름을 반환한다
	public String getName()
	{
		return name;
	}

	// 사람의 나이를 반환한다
	public int getAge()
	{
		return age;
	}

	// 현 Pro03 객체의 정보에 대한 문자열을 반환한다
	public String toString ()
	{
		return (name + "\t\t" + age);
	}

	// 사람의 이름을 주어진 값으로 변경한다
	public void setName(String NewName)
	{
		name = NewName;
	}

	// 사람의 나이를 주어진 값으로 변경한다
	public void setAge(int NewAge)
	{
		age = NewAge;
	}
}

 

 

 

  • Pro03Driver클래스
package Project01;

public class Pro03Driver {
	public static void main(String[] args)
	{
		// 이름이 ‘홍길동’인 Pro03 객체를 생성하고 p1이 가리키게 한다
		Pro03 p1 = new Pro03("홍길동");

		// p1의 나이를 27로 변경한다
		p1.setAge(27);

		// p1의 이름과 나이를 출력한다
		System.out.println(p1.toString( ));

		// 나이가 18인 Pro03 객체를 생성하고 p2가 가리키게 한다
		Pro03 p2 = new Pro03(18);

		// p2의 이름을 '손오공'으로 변경한다
		p2.setName("손오공");

		// p2의 이름과 나이를 출력한다
		System.out.println(p2.toString( ));

		// 이름이 ‘이도령’이고 나이가 20인 Pro03 객체를 생성하고 p3이 가리키게 한다
		Pro03 p3 = new Pro03("이도령", 20);

		// p3의 이름과 나이를 출력한다
		System.out.println(p3.toString( ));
	}
}

 


 

 

  • student 클래스
package sample;

public class Student {
	

	@Override
	public String toString() {
		return "Student [name=" + name + ", number=" + number + "]";
	}
	private String name; //이름
	private int number; //번호
	   // 이름만 초기화하면서 새로운 Student 객체를 생성한다
	public Student(String NewName) {
		setName(NewName);
	}
	   // 번호만 초기화하면서 새로운 Student 객체를 생성한다
	public Student(int NewNumber) {
		setNumber(NewNumber);
	}
	 // 이름과 번호를 초기화하면서 새로운 Student 객체를 생성한다
	public Student(int NewNumber, String NewName){
		setNumber(NewNumber);
		setName(NewName);
	}
	   // 이름을 주어진 값으로 변경한다
	public void setName(String NewName) {
		name = NewName;
	}
	   // 번호를 주어진 값으로 변경한다
	public void setNumber(int NewNumber) {
		number = NewNumber;
	}
	   // 이름을 반환한다
	public String getName() {
		return name;
	}
	   // 번호를 반환한다
	public int getNumber() {
		return number;
	}
	
	

}

 

 

 

 

 

 

  • ProcessStudentArray클래스
package sample;
import java.util.Scanner;
class ProcessStudentArray {

	public static void main(String[] args) {
		Student[] stdArray;
		String name;
		int number;
		int i;
		
		Scanner in = new Scanner(System.in);
		stdArray = new Student[4];

		for (i = 0; i < stdArray.length; i++) {
			System.out.println("학생의 이름을 입력하세요");
			name = in.next();
			System.out.println("학생의 학번을 입력하세요");
			number = in.nextInt();

			stdArray[i] = new Student(number, name);

		}
		//stdArray배열내용 출력
		System.out.println();
		System.out.println("학번 \t 이름");
		
		for ( i = 0; i < stdArray.length; i++) {
			System.out.println(stdArray[i].getNumber( ) + " \t" + stdArray[i].getName( ));
		}
	}
}

 

 

 

부모를 배열로 만들고 밑에 미니카랑플레인 객체생성가능

 

 

 

 

 

 

 

728x90
LIST

댓글