JAVA 기초

JAVA 9-1

Vanillwa 2023. 8. 23. 19:35

Overloading

package ex1_overload;

public class OverloadTest {
	//메서드 오버로드 : 메서드의 중복정의
	//하나의 클래스 내에서 같은 이름을 가진 메서드가 여러개 정의된 것
	//1. 메서드의 이름이 같아야 한다
	//2. 파라미터의 개수가 달라야 한다
	//3. 파라미터의 개수가 같다면 타입이 달라야 한다
	//4. 파라미터의 개수가 같다면(2개 이상) 순서가 달라야 한다
	
	public void result() {
		System.out.println("인자가 없는 메서드");
	}
	
	public void result(int a) {
		System.out.println("정수 인자가 한개인 메서드");
	}
	
	public void result(char c) {
		System.out.println("문자 인자가 한개인 메서드");
	}
	
	public void result(int a,int b) {
		System.out.println("정수 인자가 두개인 메서드");
	}
	
	public void result(int a, char c) {
		System.out.println("정수, 문자 인자가 한개씩인 메서드");
	}
	
	public void result(char c, int a) {
		System.out.println("문자, 정수 인자 한개씩인 메서드");
	}
	
	public void result(String s, int n) {
		System.out.println("문자열, 정수 인자 한개씩인 메서드");
	}
}
package ex1_overload;

public class OverloadMain {
	public static void main(String[] args) {
		OverloadTest ot = new OverloadTest();
		
		ot.result();
		ot.result(1);
		ot.result('a');
		ot.result(1,2);
		ot.result(1,'a');
		ot.result('a',1);
		ot.result("홍",100);
	}
}

실행 결과


Overloading 예제

package ex2_bread;

public class BreadTest {
	public void makeBread() {
		System.out.println("빵을 만들었습니다.");
	}
	
	public void makeBread(int n) {
		for(int i=0;i<n;i++) {
			System.out.printf("빵을 만들었습니다.\n");
		}
		System.out.printf("요청하신 빵을 %d개 만들었습니다\n",n);
	}
	
	public void makeBread(String b,int n) {
		for(int i=0;i<n;i++) {
			System.out.printf("%s빵을 만들었습니다.\n",b);
		}
		System.out.printf("요청하신 %s빵을 %d개 만들었습니다\n",b,n);
	}
}
package ex2_bread;

public class BreadMain {
	public static void main(String[] args) {
		BreadTest bt = new BreadTest();
		
		bt.makeBread();
		System.out.println();
		bt.makeBread(3);
		System.out.println();
		bt.makeBread("소금",2);
	}
}

실행 결과


Constructor (생성자)

package ex4_person;

public class Person {
	//생성자 : 객체가 생성 될 때 메모리 할당을 해주거나
		//각 객체에 속해있는 변수들의 값을 초기화 할 때 사용
		//생성자 특징
		//1. 클래스와 이름이 완전히 동일
		//2. 반환형이 없다
		//3. 객체가 생설될 때 딱 한번만 자동으로 호출됨
	
	String name;
	int age;
	String tel;
	
	public Person(String name, int age, String tel) {
		this.name = name;
		this.age = age;
		this.tel = tel;
	}
	
	public void pInfo() {
		System.out.println("이름 : "+name);
		System.out.println("나이 : "+age);
		System.out.println("번호 : "+tel);
	}
}
package ex4_person;

public class PersonMain {
	public static void main(String[] args) {
		Person p1 = new Person("홍길동",20,"010-1111-1111");
		Person p2 = new Person("홍길순",38,"010-1234-1234");
		
		p1.pInfo();
		p2.pInfo();
	}
}

실행 결과


생성자 오버로딩

package ex5_car;

public class Car {
	//생성자 오버로딩
	int price;
	String color;
	String brand;
	
	public Car(String color, String brand, int price){
		this.color = color;
		this.brand = brand;
		this.price = price;
	}
	
	public Car(String brand,int price) {
		this.brand = brand;
		this.price = price;
	}
	//this()를 통해 같은 클래스에 있는 생성자를 호출할 수 있다
	public Car() {
		this("white","kia",4000);
	}
}
package ex5_car;

public class CarMain {
	public static void main(String[] args) {
		Car car1 = new Car("white", "현대", 3000);
		Car car2 = new Car("현대",3000);
		Car car3 = new Car();
		
		System.out.printf("색상 : %s / 브랜드 : %s / 가격 : %d\n",car1.color,car1.brand,car1.price);
		System.out.printf("색상 : %s / 브랜드 : %s / 가격 : %d\n",car2.color,car2.brand,car2.price);
		System.out.printf("색상 : %s / 브랜드 : %s / 가격 : %d\n",car3.color,car3.brand,car3.price);
	}
}

실행 결과

 

'JAVA 기초' 카테고리의 다른 글

JAVA 10-1  (0) 2023.08.24
JAVA 9-2  (0) 2023.08.23
JAVA 8  (0) 2023.08.23
JAVA 7-2  (0) 2023.08.22
JAVA 7-1  (0) 2023.08.22