[Java] 멤버관리하는 어플리케이션을 만들어보자!

Date:     Updated:

카테고리:

태그:

java.png

memberVO (회원관리를 위한 맴버vo를 만들어보자)

  • 기본적으로 private, Constructor, get, set 등 활용하여 멤버목록 관리할 수 있도록 만들어보자
    먼저 memberVO 클래스를 정의하여 회원정보에 필요한 목록등을 만들어본다 맴버 클래스를 작성하는 유는 다음과 같다
    1. 데이터 저장 및 관리
  • 회원 정보를 프로그램 내에서 저장하고 관리하기 위해서 이다. 이클래스를 사용하여 회원 정보를 객체로 표현하고, 필요한 경우 데이터베이스에 저장하거나 파일로 저장할 수 있다
    1. 회원 관리 시스템 개발
  • 회원 관리 시스템은 사용자가 회원가입, 로그인, 정보수정, 탈퇴 등의 기능을 이용할 수 있는 시스템이다. 이를 위해서는 회원 정보를 객체로 표현하는 클래스가 필요하다

이 클래스는 주로 VO(Value Object)나 DTO(Data Transfer Object)라고 불리고, 데이터를 전달하거나 저장하기 위한 목적으로 사용된다. 데이터를 보다 구조화하고 캡슐화 하여 관리할 수 있도록 돕는 역할을 한다

  • memberVo
package com.greedy.level01.basic.member;

public class MemberVO {

    private String id;         // private에 대한 설명은 아래에 작성하겠다
    private String pwd;         // private 로 맴버변수를 선언해준다
    private String name;
    private int age;
    private char gender;
    private String phone;
    private String email;
    
    //그리고 constructor (생성자) 를 생성해준다
    public MemberVO(String id, String pwd, String name, int age, char gender, String phone, String email) {
        this.id = id;
        this.pwd = pwd;
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.phone = phone;
        this.email = email;
    }
// 그리고 겟터와 셋터를 작성해준다 
    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 int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

private

private 키워드는 클래스의 멤버 변수나 메서드를 선언할 때 사용된다. 이 키워드를 사용하면 해당 멤버는 클래스 외부에서 직접 접근할 수 없다.그렇기 때문에 private 키워드를 사용하는 이유는 다음과 같다

  1. 캡슐화(Encapsulation)
    • private 멤버는 클래스 외부에서 직접 접근할 수 없고, 클래스 내부의 상태를 보호할 수 있다. 이를 통해 객체의 데이터 무결성을 보장하고, 객체 지향 프로그래밍의 캡슐화 개념을 실현할 수 있다
  2. 접근 제어
    • private 멤버를 사용하면 해당 멤버에 대한 접근을 제한할 수 있다. 클래스를 사용하는 다른 코드에서 해당 멤버를 마음대로 변경하거나 접근하지 못하도록 할 수 있다. 그래서 잠재적인 버그를 줄이고 코드의 안정성을 높일 수 있다
  3. 정보 은닉(Information Hiding)
    • private 멤버는 클래스 외부로부터 숨겨져 있어서, 클래스를 사용하는 다른 코드에서는 해당 멤버의 구현에 의존하지 않고도 클래스를 사용할 수 있다. 클래스의 내부 구현을 변경해도 외부 코드에 영향을 최소화할 수 있다.

Constructor (생성자)

생성자(Constructor)는 객체를 초기화하고 인스턴스화 할 때 호출되는 특별한 종류의 메서드이다

  1. 객체 초기화
    • 생성자는 객체를 초기화하는 데 사용된다. 객체를 생성할 때 필요한 초기 상태를 설정하거나, 필요한 초기화 작업을 수행한다. 이를 통해 객체를 사용하기 전에 필요한 설정을 완료할 수 있다
  2. 인스턴스화
    • 생성자는 클래스로부터 객체를 생성하는 데 사용된다. 객체를 생성하기 위해 ‘new’ 키워드와 함께 호출된다. 생성자는 클래스의 인스턴스를 생성하여 메모리에 할당하고, 해당 객체를 사용할 수 있도록 준비한다
  3. 멤버 변수 초기화
    • 생성자는 클래스의 멤버 변수를 초기화하는 데 사용된다. 객체를 생성할 때 멤버 변수에 초기 값을 할당하거나, 기본 값으로 초기화한다
  4. 객체의 상태 설정
    • 생성자는 객체의 상태를 설정하는 데 사용된다. 객체의 상태를 변경하는 작업이 필요한 경우, 생성자를 사용하여 객체를 생성할 때 이런 작업을 수행할 수 있다
  5. 다형성 제공
    • 다양한 형태의 생성자를 정의함으로써 다형성을 제공할 수 있다. 다양한 매개벼수 형태를 가진 생성자를 정의하여 다양한 방법으로 객체를 초기화할 수 있다
  • 인텔리제이에서 생성자, setter, getter 를 불러오는 단축키는 Art + Insert 키로 편리하게 불러올 수 있다

  • Application
package com.greedy.level01.basic.member;

public class Application {
    public static void main(String[] args) {
        MemberVO member = new MemberVO(null, null, null, 0, ' ', null, null);

        printMemberInfo("", member); // 이부분에 그냥 프린트로 직접 기입 해보자

        member.setId("user01");
        member.setPwd("pass01");
        member.setName("홍길동");
        member.setAge(20);
        member.setGender('m');
        member.setPhone("010-1234-5678");
        member.setEmail("hong123@greedy.com");

        printMemberInfo("변경 후 : ", member); // 이부분도 제외하고 해보자
    }

    private static void printMemberInfo(String message, MemberVO member) {
        System.out.println(message + "id : " + member.getId());
        System.out.println(message + "pwd: " + member.getPwd());
        System.out.println(message + "name: " + member.getName());
        System.out.println(message + "age: " + member.getAge());
        System.out.println(message + "gender: " + member.getGender());
        System.out.println(message + "phone: " + member.getPhone());
        System.out.println(message + "email: " + member.getEmail());
        System.out.println();
    }
}
  • 출력값
id : null
pwd: null
name: null
age: 0
gender:  
phone: null
email: null

변경 후 : id : user01
변경 후 : pwd: pass01
변경 후 : name: 홍길동
변경 후 : age: 20
변경 후 : gender: m
변경 후 : phone: 010-1234-5678
변경 후 : email: hong123@greedy.com

지금은 한명분의 값을 출력하기때문에 궂이 이렇게 해야되나 싶을 수 도 있다 프린트 내용에 직접 다 기입을 해도 되겠지만 양이 많아지면 쓸모가 많다고 한다!!

아직은 잘 모르지만 유용하게 쓰일것이다 언젠간

Java 카테고리 내 다른 글 보러가기

댓글 남기기