목차
■ 문제13 답:
public class Member{
//field
String name;
String id;
String password;
int age;
}
(문제 에서 생성자,메소드 없이 필드만 작성하라고 했고, 실제로 생성자 코드 작성은 필수가 아님)
■ 문제 14 답: (13번 코드에서 생성자 추가하기)
public class Member{
//field
String name;
String id;
String password;
int age;
Member(String name, String id){
this.name = name;
this.id = id;
}
}
△this를 쓰면 이렇게 해도 되고.
public class Member {
String name;
String id;
String password;
int age;
Member(String inputname, String inputid) {
name = inputname;
id = inputid;
}
}
△this를 안쓰면 이렇게 해야한다.
public class Member {
String name;
String id;
String password;
int age;
Member(String name, String id) {
name = name;
id = id;
}
}
public class Test {
public static void main(String[] args) {
Member m = new Member("Justin","id123");
System.out.println(m.name+" "+m.id); //null null 출력
}
}
△단 이럴 경우 Member 생성자의 매개 변수인 name과 필드의 name이 혼동되므로, 실제 name과 id엔 null이 들어간다.
■ 문제 15 (위 코드에서 메소드 추가하기)
public class Test {
public static void main(String[] args) {
MemberService memberService = new MemberService();
boolean result = memberService.login("hong", "12345");
if(result) {
System.out.println("로그인 되었습니다.");
memberService.logout("hong");
} else {
System.out.println("id 또는 password가 올바르지 않습니다.");
}
}
}
class MemberService {
String name;
String id;
String password;
int age;
boolean login(String id, String password) {
if ((id=="hong")&&(password=="12345")) {
return true;
}
else {
return false;
}
}
void logout(String id) {
System.out.println("로그아웃 되었습니다.");
}
}
△ 원래 클래스 한 개당 파일 하나 씩 만드는 것이 권장되나. 문제 풀이라서 한 코드 안에서 짜보았다.
boolean login(String id, String password) {
boolean ans = ((id=="hong")&&(password=="12345")) ? true : false;
return ans;
}
△ 이프문을 보다 간편하게 짜보았을 때.