[Java] 멤버관리하는 어플리케이션을 만들어보자!
카테고리: Java
태그: coding Programming Java

memberVO (회원관리를 위한 맴버vo를 만들어보자)
- 기본적으로 private, Constructor, get, set 등 활용하여 멤버목록 관리할 수 있도록 만들어보자
먼저 memberVO 클래스를 정의하여 회원정보에 필요한 목록등을 만들어본다 맴버 클래스를 작성하는 유는 다음과 같다- 데이터 저장 및 관리
- 회원 정보를 프로그램 내에서 저장하고 관리하기 위해서 이다. 이클래스를 사용하여 회원 정보를 객체로 표현하고, 필요한 경우 데이터베이스에 저장하거나 파일로 저장할 수 있다
- 회원 관리 시스템 개발
- 회원 관리 시스템은 사용자가 회원가입, 로그인, 정보수정, 탈퇴 등의 기능을 이용할 수 있는 시스템이다. 이를 위해서는 회원 정보를 객체로 표현하는 클래스가 필요하다
이 클래스는 주로 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 키워드를 사용하는 이유는 다음과 같다
- 캡슐화(Encapsulation)
- private 멤버는 클래스 외부에서 직접 접근할 수 없고, 클래스 내부의 상태를 보호할 수 있다. 이를 통해 객체의 데이터 무결성을 보장하고, 객체 지향 프로그래밍의 캡슐화 개념을 실현할 수 있다
- 접근 제어
- private 멤버를 사용하면 해당 멤버에 대한 접근을 제한할 수 있다. 클래스를 사용하는 다른 코드에서 해당 멤버를 마음대로 변경하거나 접근하지 못하도록 할 수 있다. 그래서 잠재적인 버그를 줄이고 코드의 안정성을 높일 수 있다
- 정보 은닉(Information Hiding)
- private 멤버는 클래스 외부로부터 숨겨져 있어서, 클래스를 사용하는 다른 코드에서는 해당 멤버의 구현에 의존하지 않고도 클래스를 사용할 수 있다. 클래스의 내부 구현을 변경해도 외부 코드에 영향을 최소화할 수 있다.
Constructor (생성자)
생성자(Constructor)는 객체를 초기화하고 인스턴스화 할 때 호출되는 특별한 종류의 메서드이다
- 객체 초기화
- 생성자는 객체를 초기화하는 데 사용된다. 객체를 생성할 때 필요한 초기 상태를 설정하거나, 필요한 초기화 작업을 수행한다. 이를 통해 객체를 사용하기 전에 필요한 설정을 완료할 수 있다
- 인스턴스화
- 생성자는 클래스로부터 객체를 생성하는 데 사용된다. 객체를 생성하기 위해 ‘new’ 키워드와 함께 호출된다. 생성자는 클래스의 인스턴스를 생성하여 메모리에 할당하고, 해당 객체를 사용할 수 있도록 준비한다
- 멤버 변수 초기화
- 생성자는 클래스의 멤버 변수를 초기화하는 데 사용된다. 객체를 생성할 때 멤버 변수에 초기 값을 할당하거나, 기본 값으로 초기화한다
- 객체의 상태 설정
- 생성자는 객체의 상태를 설정하는 데 사용된다. 객체의 상태를 변경하는 작업이 필요한 경우, 생성자를 사용하여 객체를 생성할 때 이런 작업을 수행할 수 있다
- 다형성 제공
- 다양한 형태의 생성자를 정의함으로써 다형성을 제공할 수 있다. 다양한 매개벼수 형태를 가진 생성자를 정의하여 다양한 방법으로 객체를 초기화할 수 있다
-
인텔리제이에서 생성자, 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
지금은 한명분의 값을 출력하기때문에 궂이 이렇게 해야되나 싶을 수 도 있다 프린트 내용에 직접 다 기입을 해도 되겠지만 양이 많아지면 쓸모가 많다고 한다!!
아직은 잘 모르지만 유용하게 쓰일것이다 언젠간
댓글 남기기