문제에서 요구하는 요소는
- 여러 생성자 메서드를 다룰수 있는가?
- 가변인자에 대해 이해하고 있는가?
- String 메서드 split(), contains()를 실습에서 사용할 수 있는가?
- getter, setter를 직접 만들 수 있는가?
- equals() 메서드를 직접 만들어 볼 수 있는가?
- toString() 메서드를 재정의 할 수 있는가?
package Ch06_Ex;
import java.util.Objects; class Profile{ //속성 String name; String addr; String job; String major; //생성자 //1)디폴트생성자 삽입 //2)모든 인자 받는 생성자 삽입 -> 각멤버에 대입 //3)모든 인자 받는 생성자 삽입(가변인자사용할것) -> , 를기준으로 잘라내어 각속성에 저장 //ex, "홍길동,대구,프로그래머,컴퓨터공학" ->[홍길동,대구,프로그래머,컴퓨터공학] // 1) default constructor public Profile() { super(); } // 2) AllArgsConstructor public Profile(String name, String addr, String job, String major) { super(); this.name = name; this.addr = addr; this.job = job; this.major = major; } // 3) 가변인자 Constructor public Profile(String ...args) { String[] subargs = args[0].split(","); name = subargs[0]; addr = subargs[1]; job = subargs[2]; major = subargs[3]; } //기능 //1) getter and setter 삽입 //2) toString 재정의 //3) boolean isContain(String compare) 함수 완성하기 // 1) getter and setter public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } public String getJob() { return job; } public void setJob(String job) { this.job = job; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } // 2) toString 재정의 @Override public String toString() { return "Profile [name=" + name + ", addr=" + addr + ", job=" + job + ", major=" + major + "]"; } // 3) 밑의 함수 완성하기 boolean isContain(String findstr) { //findstr의 문자열이 각멤버인 name,addr,job,major 중 하나라도 포함되어 있으면 true 리턴 //아니면 false 리턴 String allStr = name + addr + job + major; return allStr.contains(findstr); } // 4) public boolean equals(String str) { //all로 받은 문자열을 , 단위로 잘라내어(split(",")) 각각 나눠진 문자열이 //name,addr,job,major 와 일치 하면 true //아니면 false 를 리턴 String[] subStr = str.split(","); return Objects.equals(name, subStr[0]) && Objects.equals(addr, subStr[1]) && Objects.equals(job, subStr[2]) && Objects.equals(major, subStr[3]); } } public class Test { public static void main(String[] args) { Profile hong = new Profile("홍길동,대구,프로그래머,컴퓨터공학"); System.out.println(hong.toString()); System.out.println("길동 포함여부 : " + hong.isContain("길동")); //true System.out.println("컴퓨터 포함여부 : " + hong.isContain("컴퓨터")); //true System.out.println("프로필 일치여부 : " + hong.equals("홍길동,대구,프로그래머,컴퓨터공학"));//false System.out.println("프로필 일치여부 : " + hong.equals("홍길동,울산,프로그래머,컴퓨터공학"));//false } } |
'Java > 문제풀이' 카테고리의 다른 글
Java 문제 풀이 Class (0) | 2024.03.12 |
---|---|
Java Up/Down Casting 문제 1 (0) | 2024.03.11 |
Java 상속 문제풀이 1 (0) | 2024.03.08 |
Java 문제 풀이 1 (0) | 2024.03.06 |
0. 변수 문제풀이 (0) | 2024.02.28 |