본문 바로가기
각종 언어 기본 문법/Java 이것이 자바다 확인 문제 풀이

이것이 자바다 확인 문제 풀이 6장 (13번~20번), 챕터6, Chapter6

by 혀니쌤1 2021. 8. 8.

목차

    ■ 문제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;
    }

    △ 이프문을 보다 간편하게 짜보았을 때.