JAVA

[JAVA] 객체지향 - 회원가입 만들기

해니01_15 2023. 3. 2. 19:20

입력값을 받아 회원 가입을 할 수 있게 하고 ID를 검색 할 수 있게 해라. 

 

 

① VO 객체 클래스를 정의한다

package 회원가입;

public class member5 {

	private String id;
	private String pwd;
	private String name;
	private String emai;

	// source -> Generate Constructor using Fields
	public member5(String id, String pwd, String name, String emai) {
		super();
		this.id = id;
		this.pwd = pwd;
		this.name = name;
		this.emai = emai;
	}

	// source -> Generate Getters and Setters
	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getPwd() {
		return pwd;
	}

	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getEmai() {
		return emai;
	}

	public void setEmai(String emai) {
		this.emai = emai;
	}

	// source -> override/implement method
	@Override
	public String toString() { // 손으로 고치기 가능
		return "member5 [id=" + id + ", pwd=" + pwd + ", name=" + name + ", emai=" + emai + "]";
	}
}

 

 

② 원하는 프로그램 사용자정의 클래스로 구현한다 

package 회원가입;

import java.util.Scanner;

//사용자 기능 제공 -> 원하는 값들만 개발자가 설정해서 구현 할 수 있음  
public class memberservice {

	private member5[] members; // member5를 배열로 만들고 그 배열 이름은 members로 한다.
	private int cnt = 0; // 배열이 다 찼는지 확인 하기 위해 cnt; 변수 선언

	public memberservice() { // 배열이 30개인 생성자로 초기화
		members = new member5[30];
	}

	// 입력 값 받을 질문들
	public void print1(Scanner sc) {

		System.out.println("ID를 입력하시오");
		String id = sc.next();

		System.out.println("pwd를 입력하시오");
		String pwd = sc.next();

		System.out.println("이름을 입력하시오");
		String name = sc.next();

		System.out.println("이메일을 입력하시오");
		String email = sc.next();

		members[cnt] = new member5(id, pwd, name, email);
		// cnt만큼의 배열을 다시 지정 해주는데 인자값으로 사용자가 입력한 값을 받는다
		cnt++; // 배열이 다 찼는지 확인 하기 위해 cnt ++로 바꿔준다
	}

	public void printall() {
		for (int i = 0; i < cnt; i++) { // cnt만큼 for문을 돌면서 members[i] 배열을 프린트
			// members.length 는 왜 안되냐면 어디에는 데이터가 없을 수도 있으니가.
			System.out.println(members[i]);
		}
	}

	// 아이디 찾기 메서드 생성
	public int FindId(Scanner sc) {

		System.out.println("찾을 id를 입력하시오");
		String input = sc.next();

		for (int i = 0; i < cnt; i++) {
			if (input.equals(members[i].getId())) {
				// 입력받은 input과 members[i]를 equals 문자열 비교
				// members[i]가 private 이라 getId 가 필요하다
				System.out.println((i + 1) + "방에 있습니다");
				// 왜 1을 더해 줬냐면 배열은 0번방 부터 시작하는데 사람들은 모르니까.
				System.out.println(members[i]); // 이건 앞에서 정의한 toString()이 프린트 됨
				return i;
			}

		}
		System.out.println("찾는 값이 없습니다.");
		// 못찾으면 상기 문구를 프린트 하고 값을 -1로 전환. 프로그램 종료.
		return -1;

	}

}

 

③ Main 클래스에 모든 것을 구현한다. 

Main 에는 간단해 진 코드를 확인 할 수 있다. 

package 회원가입;

import java.util.Scanner;

public class VO {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner sc = new Scanner(System.in); 
		//입력 값을 받을 스캐너를 생성

		memberservice ms = new memberservice(); 
		//사용자정의를 객체화 시킨다. 
		
		ms.print1(sc); //(sc)는 Scanner sc 의 그 sc임 
		ms.print1(sc);
		ms.print1(sc);

		ms.printall();

		ms.FindId(sc);

	}

}