: 원칙적으로 하나의 클래스 안에서는 동일한 이름의 메서드가 두 개 이상 존재할 수 없지만. 이를 가능하게 하는 예외적인 처리 기법
package overload;
public class Character {
private String job;
private int age;
public void setProperty(String job) {
this.job = job;
}
public void setProperty(int age) {
this.age = age;
}
public void setProperty(String job, int age) {
this.job = job;
this.age = age;
}
public void setProperty(int age, String job) {
this.age = age;
this.job = job;
}
@Override // source - generate - generate toString 누르기
public String toString() {
return "Character [job=" + job + ", age=" + age + "]";
}
}
package overload;
public class Main01 {
public static void main(String[] args) {
Character c = new Character();
System.out.println(c.toString());
c.setProperty(30);
System.out.println(c.toString());
c.setProperty("개발자");
System.out.println(c.toString());
c.setProperty(20, "자영업자");
System.out.println(c.toString());
c.setProperty("교수", 40);
System.out.println(c.toString());
}
}
package overload;
public class Member {
private String job;
private int age;
public Member() {}
public Member(int age) {
this.age = age;
}
public Member(String job) {
this.job = job;
}
public Member(String job, int age) {
this.job = job;
this.age = age;
}
@Override
public String toString() {
return "Member [job=" + job + ", age=" + age + "]";
}
}
package overload;
public class Main02 {
public static void main(String[] args) {
Member m1 = new Member();
System.out.println(m1.toString());
Member m2 = new Member(19);
System.out.println(m2.toString());
Member m3 = new Member("학생");
System.out.println(m3.toString());
Member m4 = new Member("개발자", 30);
System.out.println(m4.toString());
}
}
package overload;
public class Article {
private int seq;
private String subject;
private String writer;
public Article(int seq, String subject, String writer) {
super();
this.seq = seq;
this.subject = subject;
this.writer = writer;
}
public Article(int seq) {
this(seq, "제목 없음", "익명");
// this.seq = seq;
// this.subject = "제목 없음";
// this.writer = "익명";
}
public Article(int seq, String subject) {
this(seq, subject, "익명");
// this.seq = seq;
// this.subject = subject;
// this.writer = "익명";
}
@Override
public String toString() {
return "Article [seq=" + seq + ", subject=" + subject + ", writer=" + writer + "]";
}
}
package overload;
public class Main03 {
public static void main(String[] args) {
Article a1 = new Article(1);
System.out.println(a1.toString());
Article a2 = new Article(2, "자바 질문1");
System.out.println(a2.toString());
Article a3 = new Article(3, "게시물 작성", "자바 학생");
System.out.println(a3.toString());
}
}