본문 바로가기
CLASS/JAVA

#7-2 / getter,setter

by eungSe__ 2024. 5. 9.

DAO - Data Access Object : 데이터에 접근하기 위한 객체 (삽입,삭제,조회)
DTO - Data Transfer Object : Getter,Setter를 이루는 메소드의 집합 
VO - Value of Object : Getter(상수 데이터)를 이용하여 값을 가져오는 메소드

https://dev-eunse.tistory.com/45

⚡ DTO

DTO에 있는 모든 변수를 활용할 필요는 없으며 
단,필요한 변수가 있을 경우 DTO에 생성 후 setter,getter메소드를 생성
package oop;

import java.util.ArrayList;

//Dto를 이용한 배열 생성하기
public class web3 {
//DTO에 있는 모든 변수를 활용할 필요는 없으며 
	//단,필요한 변수가 있을 경우 DTO에 생성 후 setter,getter메소드를 생성
	public static void main(String[] args) {
		dto dt = new dto(); //외부 dto 클래스 로드
		String user[][] = {
				{"홍길동","이순신"},
				{"25","33"},
				{"hong@nate.com","lee@naver.com"},
				{"hong","lee"}
		}; //{고객명,이메일,나이} 로
		
		ArrayList<ArrayList<String>> all = new ArrayList<ArrayList<String>>();
		
		int f;
		for(f=0; f<user[0].length; f++) { //2
			dt.setName(user[0][f]);
			dt.setEmail(user[2][f]);
			dt.setAge(user[1][f]);
			all.add(dt.make());
			
			//1차배열 return 받는 형태 - [홍길동, hong@nate.com, 25] [이순신, lee@naver.com, 33] 출력
			/*	
			 	ArrayList<String> userdata = new ArrayList<String>();
				userdata = dt.make();
				System.out.println(userdata);
			*/
			
		} 
		
		System.out.println(all); //[[홍길동, hong@nate.com, 25], [이순신, lee@naver.com, 33]] 출력
		

	}

}


- dto

package oop;

import java.util.ArrayList;

public class dto {
	String id,name,email,age;

	public String getId() { //getter (return 메소드)
		return id;
	}

	public void setId(String id) { //setter (필드에 있는 변수에 데이터 삽입)
		this.id = id;
	}

	public String getName() {
		return name;
	}

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

	public String getEmail() {
		return email;
	}

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

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}
	
	//1차배열
	public ArrayList<String> make(){
		ArrayList<String> arr = new ArrayList<String>();
		arr.add(getName());
		arr.add(getEmail());
		arr.add(getAge());
		
		return arr;
	}

}
2차배열 -> 2차배열 등록가능?
package oop;

import java.util.ArrayList;

//2차배열 -> 2차배열 등록가능?
public class arraylist1 {

	public static void main(String[] args) {
		//1차배열 값 추가
		ArrayList<String> a = new ArrayList<String>();
		a.add("홍길동");
		a.add("이순신");
		
		//2차배열에 1차 배열 값 추가
		ArrayList<ArrayList<String>> all = new ArrayList<ArrayList<String>>();
		all.add(a);
		System.out.println(all); //[[홍길동, 이순신]]
		
		//2차배열을 2차배열로 받아서 처리
		ArrayList<ArrayList<String>> all2 = all; 
		System.out.println(all2); //[[홍길동, 이순신]]
		
	}

}


가능 ^____^

⚡ web3.java(#7-2 맨위 예제) 응용편

- 해당 메소드 무조건 사용자명만 입력하는 사항은 없습니다.
(단,자료형이 틀릴경우 if,switch로 구분하여 메소드에 인자값을 보냄)
package oop;

import java.util.ArrayList;

//web3.java 에서 사용한 응용편
public class web4 {

	public static void main(String[] args) {
		dto dt = new dto(); //외부 dto 클래스 로드
		String user[][] = {
				{"홍길동","25","hong@nate.com","hong"},
				{"이순신","33","lee@naver.com","lee"}
		};
		
		//1. [[hong, 홍길동, hong@nate.com, 25], [lee, 이순신, lee@naver.com, 33]] 출력

		/*ArrayList<ArrayList<String>> data = new ArrayList<ArrayList<String>>();
		int w=0;
		while(w<user.length) { //2
			dt.setId(user[w][3]);
			dt.setName(user[w][0]);
			dt.setEmail(user[w][2]);
			dt.setAge(user[w][1]);
			
			data.add(dt.make());
			w++;
		}
		
		System.out.println(data);*/
		
		
		//2. [[홍길동, 이순신], [25, 33], [hong@nate.com, lee@naver.com], [hong, lee]] 로 출력...
		
		ArrayList<ArrayList<String>> data = new ArrayList<ArrayList<String>>();
		int w=0;
		while(w<user[0].length) { //4
			int ww=0;
			ArrayList<String> test = new ArrayList<String>();
			while(ww<user.length) { //2
				//if문 or switch문으로 분리해서 던질것!
				//사실 다 같은 타입이라 setId에 넣어도 되고 다른애들한테 넣어도 됨
				  //(단, 타입은 if로 구분할것)
				dt.setName(user[ww][w]); 
				test = dt.make2(); 
				//test.add(dt.make2()); x 1차배열 -> 1차배열로 이관하므로 = 사용
				
				//test.clear(); 여기서 초기화 하면 data 비어져버림 []
				
				System.out.println(test);
				ww++;
			}	
			data.add(test);
			dt.all_arr = new ArrayList<String>(); //외부 class의 전역변수 값 reset
			
			w++;			
		}
		System.out.println(data);
	}

}

 

package oop;

import java.util.ArrayList;

public class dto {
	String id,name,email,age;
	ArrayList<String> all_arr = new ArrayList<String>(); //전역 1차배열

	//...getter,setter 생략
    
	//1차배열
	public ArrayList<String> make(){
		ArrayList<String> arr = new ArrayList<String>();
		arr.add(getName());
		arr.add(getEmail());
		arr.add(getAge());
		
		return arr;
	}
	
	//전역 형태의 배열
	public ArrayList<String> make2(){
		this.all_arr.add(getName());
		
		return this.all_arr;
	}
	

}

 

'CLASS > JAVA' 카테고리의 다른 글

#7-4 / foreach,List배열  (0) 2024.05.09
#7-3 / LinkedList 클래스 배열  (0) 2024.05.09
#7-1 / 주의  (0) 2024.05.09
#6-3 / 2차 class 배열  (0) 2024.05.08
#6-2 / class배열(ArrayList)  (0) 2024.05.08