회원정보를 받는 기본 코드를 짜보자
1. getter, setter method를 이용하기
전체코드
class Member {
private String userid;
private String username;
private int age;
//getter method
public String getUserid() { //getter1
return this.userid;
}
public String getUsername() { //getter2
return this.username;
}
public int getAge() { //getter3
return this.age;
}
//setter method
public void setUserid(String userid) { //setter1
this.userid = userid;
}
public void setUsername(String username) { //setter2
this.username = username;
}
public void setAge(int age) { //setter3
this.age = age;
}
}
public class MemberManagement {
public static void main(String[] args) {
Member member = new Member(); //객체
member.setUserid("havavtistory"); //실행1
member.setUsername("hanav"); //실행2
member.setAge(24); //실행3
System.out.println("user ID = " + member.getUserid()); //출력1
System.out.println("user Name = " + member.getUsername()); //출력2
System.out.println("user Age = " + member.getAge()); //출력3
}
}
실행 순서
1. 실행1: setUserid method에 변수 hanavtistory를 입력하라
2. setter1 : userid에 hanavtistory가 입력됨
3. 실행2: setUsername method에 변수 hanav를 입력하라
4. setter2: username에 hanav가 입력됨
5. 실행3: setAge method에 정수 24를 입력하라
6. setter3: age에 24가 입력됨
7. 출력1: member.getUserid() >> getUserid method에 입력된 정보 hanavtistory 입력
8. 출력2: member.getUsername() >> getUsername method에 입력된 정보 hanav 입력
9. 출력3: member.getAge() >> getAge 함method에 입력된 정보 24 입력
console
user ID = havavtistory
user Name = hanav
user Age = 24
2. 생성자 사용하기
전체코드
class Member2 {
private String userid;
private String username;
private int age;
public Member2(){} //기본생성자
public Member2(String userid, String username, int age) { //생성자
this.userid = userid;
this.username = username;
this.age = age;
}
//getter method
public String getUserid() { //getter1
return this.userid;
}
public String getUsername() { //getter2
return this.username;
}
public int getAge() { //getter3
return this.age;
}
}
public class MemberManagement2 {
public static void main(String[] args) {
Member2 member = new Member2("hanavtistory", "hanav", 24); //객체
System.out.println("user ID = " + member.getUserid()); //출력1
System.out.println("user Name = " + member.getUsername()); //출력2
System.out.println("user Age = " + member.getAge()); //출력3
}
}
실행 순서
1.객체: 변수 3개에 대한 정보가 입력됨 >> 변수가 3개인 생성자로 이동
2. 생성자: 각각의 변수에 정보가 입력됨 (userid - hanavtistory, username - hanav, age - 24)
3. 출력1: member.getUserid() >> getUserid method에 입력된 정보 hanavtistory 입력
4. 출력2: member.getUsername() >> getUsername method에 입력된 정보 hanav 입력
5. 출력3: member.getAge() >> getAge 함method에 입력된 정보 24 입력
console
user ID = hanavtistory
user Name = hanav
user Age = 24
3. list 사용하기
전체 코드
import java.util.ArrayList;
import java.util.List;
class Member3 {
private String userid;
private String username;
private int age;
public Member3(){} //기본생성자
public Member3(String userid, String username, int age) { //생성자
this.userid = userid;
this.username = username;
this.age = age;
}
//getter method
public String getUserid() { //getter1
return this.userid;
}
public String getUsername() { //getter2
return this.username;
}
public int getAge() { //getter3
return this.age;
}
}
public class MemberManagement3 {
public static void main(String[] args) {
List<Member3> list = new ArrayList<>(); //list
list.add(new Member3("myname", "hanav", 24)); //정보1
list.add(new Member3("myname2", "hanav2", 24)); //정보2
list.add(new Member3("myname3", "hanav3", 24)); //정보3
list.add(new Member3("mydog", "bori", 8)); //정보4
for(Member3 member: list) { //for문
System.out.println("user ID = " + member.getUserid()); //츨력1
System.out.println("user Name = " + member.getUsername()); //출력2
System.out.println("user Age = " + member.getAge() + "\n"); //출력3
}
}
}
실행 순서
1. list: 리턴 타입이 Member3 객체인 리스트 생성
2. 정보1: list에 정보 입력
3. 정보2: list에 정보 입력
4. 정보3: list에 정보 입력
5. 정보4: list에 정보 입력
6. for문: for(Member3 member: list) 는 배열이름이 list인 배열을 순차적으로 나타내고, book은 Book에 있는 클래스를 가져옴
7. 출력1: member.getUserid() >> getUserid method에 입력된 첫번째 정보 hanavtistory 입력
8. 출력2: member.getUsername() >> getUsername method에 입력된 첫번째 정보 hanav 입력
9. 출력3: member.getAge() >> getAge 함method에 입력된 정보 24 입력
10. 첫번째 배열이 끝나면 두 번째 정보 입력, 두 번째 배영ㄹ이 끝나면 세번째 정보 입력 ...
console
user ID = myname
user Name = hanav
user Age = 24
user ID = myname2
user Name = hanav2
user Age = 24
user ID = myname3
user Name = hanav
user Age = 24
user ID = mydog
user Name = bori
user Age = 8
4. Builder 패턴 사용하기: 내부 클래스를 만들어서 사용
전체 코드
import java.util.ArrayList;
import java.util.List;
class Member {
private String userid;
private String username;
private int age;
public Member(){}//기본생성자
public Member(String userid, String username, int age) {
this.userid = userid;
this.username = username;
this.age = age;
}
//getter method
public String getUserid() {
return this.userid;
}
public String getUsername() {
return this.username;
}
public int getAge() {
return this.age;
}
// Builder 패턴 사용
static class Builder { //내부 클래스
private String userid;
private String username;
private int age;
public Builder userid(String userid) { //method 생성
this.userid = userid;
return this;
}
public Builder username(String username) {
this.username = username;
return this;
}
public Builder age(int age) {
this.age = age;
return this;
}
public Member build() { //method
if(userid == null || username == null || age == 0)
throw new IllegalStateException("Cannot create Member"); //예외처리
return new Member(userid, username, age); //생성자를 리턴해줌
}
}
}
public class MemberManagement {
public static void main(String[] args) {
List<Member> list = new ArrayList<>();
//Builder 패턴
list.add(new Member.Builder()
.userid("hanavtistory")
.username("hanav")
.age(24)
.build()
);
list.add(new Member.Builder()
.userid("mydog")
.username("bori")
.age(8)
.build()
);
for(Member member: list) {
System.out.println("user ID = " + member.getUserid());
System.out.println("user Name = " + member.getUsername());
System.out.println("user Age = " + member.getAge() + "\n");
}
}
}
console
user ID = hanavtistory
user Name = hanav
user Age = 24
user ID = mydog
user Name = bori
user Age = 8
5. Stream을 이용해서 username을 오름차순으로 출력하기
import java.util.ArrayList;
import java.util.List;
public class MemberManagement {
public static void main(String[] args) {
List<Member> list = new ArrayList<>();
//Builder 패턴
list.add(new Member.Builder()
.userid("hanavtistory")
.username("hanav")
.age(24)
.build()
);
list.add(new Member.Builder()
.userid("mydog")
.username("bori")
.age(8)
.build()
);
for(Member member: list) {
System.out.println("user ID = " + member.getUserid());
System.out.println("user Name = " + member.getUsername());
System.out.println("user Age = " + member.getAge() + "\n");
}
list.stream()
.map(n -> n.getUsername())
.sorted()
.forEach(s -> System.out.println(s));
}
}
'🖥️ > Java' 카테고리의 다른 글
[Java] Stream API: stream의 다양한 연산과 예시 코드 (0) | 2023.03.21 |
---|---|
[Java] 람다(Lambda) 표기법 (0) | 2023.03.21 |
[Java] 배열: 예시 코드로 배열 생성, 배열 원소 객체 생성, 배열 출력하는 법 배우기 (0) | 2023.03.19 |
[Java] 생성자(Constructor)의 특징 (0) | 2023.03.19 |
[Java] this(): 코드로 this() 메소드 이해하기 (0) | 2023.03.19 |