코딩이란 무엇일까

java/자바[11일차](1)객체 배열,메소드 오버로딩 본문

국비지원수업

java/자바[11일차](1)객체 배열,메소드 오버로딩

둥구는 지굴다 2022. 11. 3. 20:55

객체 배열이란?

객체 배열이란 이름처럼 같은 클래스로 만들어진 객체들의 나열된 집합입니다.

같은 클래스로 만들어진 객체이지만 각각 다른 객체 값을 저장하게 됩니다.

한마디로 객체를 배열로 관리할 수 있는 것이죠!

객체 배열 생성 방법

클래스명 객체배열명[]= new 클래스명[크기];

ex) Aclass ar [] = new Aclass [3]

객체 배열 사용해보기

클래스 부분

package A11_03;

public class TestClass {
private String name;
private int age;
private String gender;
//생성자
public TestClass(String name, int age, String gender) {
	this.name = name;
	this.age = age;
	this.gender = gender;
}
//Getter/Setter메서드
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public int getAge() {
	return age;
}
public void setAge(int age) {
	this.age = age;
}
public String getGender() {
	return gender;
}
public void setGender(String gender) {
	this.gender = gender;
}
//출력 메서드
public String print() {
	return "이름 : " +name+"나이 : "+ age+ "성별 : "+gender;
}
	
}

메인 메서드에서 객체 배열 사용해보기

public class TestMain {

	public static void main(String[] args) {
		//크기 5의 TestClass의 객체 배열 생성
		TestClass []tc= new TestClass[5];
		for(int i=0;i<tc.length;i++) {
			tc[i]=new TestClass();// 반복문을 통해 객체 생성
		}
		//1.setter메서드로 값 초기화 하는 방법
		tc[0].setName("홍길동");
		tc[0].setAge(320);
		tc[0].setGender("남");
		
		//2.매개변수가 있는 생성자로 값 초기화
		tc[1]=new TestClass("도라에몽",82,"남");
		
		//배열의 인덱스 번호로 pirnt메서드 사용해보기
		System.out.println(tc[0].print());
		System.out.println(tc[1].print());
	}

}

객체 배열은 위의 예시처럼 for문으로 반복문을 돌려

새로운 객체를 배열의 크기만큼 생성할 수 있습니다.

이렇게 되면 인스턴스. [인덱스 번호]로 원하는 객체에 접근이 가능하게 됩니다.

출력 결과

메서드 오버 로딩(OverLoading)

메서드 오버 로딩이란 매개변수의 개수와 타입은 다르지만 이름이 같은 메서드를 여러 개 정의하는 것을 뜻합니다.

메서드 오버 로딩은 왜 사용할까?

이해를 돕기 위해 간단한 예시를 들자면

계산을 하는 sum( ) 메서드가 있다고 생각해 봅시다.

그렇다면 매개변수가 정수형이 들어갈 수도 있고 실수형이 들어갈 수 있습니다.

그렇다면 어차피 메서드 기능은 같지만 매개변수의 자료형 때문에

원하는 값의 자료형이 바뀔 때마다 메서드를 값의 자료형 별로 만들어 주어야 할까요?

이럴 때 사용하는 게 바로 오버 로딩입니다!

위는 예시로 매개변수의 타입만 바꾸는 것이지만 매개변수의 개수, 순서에도 영향을 받습니다.

오버 로딩 예제_1

public class Method_Overloading1 {

	public static void main(String[] args) {
		sum(10,20);
		sum(1.23,3.12);
		sum(10,20,30);

	}
	//메서드의 이름은 같으나 매개변수의 타입이 다름
	static void sum(int x, int y) {
		System.out.println(x+y);
	}
	static void sum(double x, double y) {
		System.out.println(x+y);
	}
	//메서드의 매개변수 갯수에 변화
	static void sum(int x, int y, int z) {
		System.out.println(x+y+z);
	}
}

 


이상으로 글 마치겠습니다.

글 읽어주셔서 감사합니다.

Comments