[22.12.21] 42일차 [백엔드] 다차원 배열, 클래스에 배열적용

W·2022년 12월 21일
0

국비

목록 보기
60/119

다차원 배열 2차원 배열

		int[] korjum=new int[3];
		korjum[0]=100;
		korjum[1]=80;
		korjum[2]=95;
		
		int[] mathjum=new int[3];
		mathjum[0]=75;
		mathjum[1]=70;
		mathjum[2]=65;

		int[][] arr = new int[2][3]; // 과목수/점수갯수
		arr[0][0]=100;
		arr[0][1]=80;
		arr[0][2]=95;
		
		arr[1][0]=75;
		arr[1][1]=70;
		arr[1][2]=65;

		int[][] arr2= {{100,80,95},{75,70,65}};
		for(int r=0;r<2;r++) {
			System.out.print(r + "과목 : ");
			for(int i=0;i<3;i++) {
//				System.out.print(i+ " ");
				System.out.print(arr[r][i]+" ");
			}
            // 다음줄로 내리기
			System.out.println();
		}
	}
[출력]
0과목 : 100 80 95 
1과목 : 75 70 65 

예제)

		// java과목 85 88 82 89 87 
		// web과목 95 92 96 99 91
		// db과목 77 75 73 72 79
		
		int[][] arr3 = {{85, 88, 82, 89, 87},{95, 92, 96, 99, 91},{77, 75, 73, 72, 79}};
		System.out.println("과목개수 : " + arr3.length); // 행의 개수
		System.out.println("과목별 점수 개수 : " + arr3[0].length ); // 열의 개수
			for(int r=0;r<arr3.length;r++) {
			if(r==0) {
				System.out.print("java과목 : ");
			}else if(r==1) {
				System.out.print("web과목 : ");
			}else {
				System.out.print("db과목 : ");
			}
		for(int i=0;i<arr3[0].length;i++) {
			System.out.print(arr3[r][i] + " ");
		}
		System.out.println();
		}
  • 클래스를 배열에 담기
package test;

public class Book {
		// 클래스 Book
		// 멤버변수 private bookName, author
		// 기본 생성자
		// 모든 값을 받는 생성자
		// set get 메서드
		// prn() 출력 책이름, 저자
		private String bookName;
		private String author;
		
		public Book() {
		}
		
		public Book(String bookName, String author) {
			this.bookName = bookName;
			this.author = author;
		}

		public String getBookName() {
			return bookName;
		}

		public void setBookName(String bookName) {
			this.bookName = bookName;
		}

		public String getAuthor() {
			return author;
		}

		public void setAuthor(String author) {
			this.author = author;
		}
		
		public void prn() {
			System.out.println(bookName+", " +author);

		}
		
}
package test;

public class Test1 {

	public static void main(String[] args) {
				
		Book b1 = new Book();
		b1.setBookName("노인과바다");
		b1.setAuthor("헤밍웨이");
		b1.prn();
		
		Book b2 = new Book("데미안","헤르만헤세");
		b2.prn();
		Book b3 = new Book("어린왕자", "생텍쥐페리");
		b3.prn();
		
		Book[] bbb = new Book[3];
		System.out.println("배열주소 : " + bbb);
		System.out.println("책1 : " + bbb[0]); // 초기값
		System.out.println("책2 : " + bbb[1]);
		System.out.println("책3 : " + bbb[2]);
		
		bbb[0]=b1;
		bbb[1]=b2;
		bbb[2]=b3;
		System.out.println("책1 : " + bbb[0]); // 0번 배열주소
		System.out.println("책2 : " + bbb[1]);
		System.out.println("책3 : " + bbb[2]);
		
		System.out.print("책1 : "); bbb[0].prn();
		System.out.print("책2 : "); bbb[1].prn();
		System.out.print("책3 : "); bbb[2].prn();
		
		
		for(int i=0;i<bbb.length;i++) {
			System.out.print("책" +(i+1)+" : ");
			bbb[i].prn();
		}
		

		
	}

}
[출력]
노인과바다, 헤밍웨이
데미안, 헤르만헤세
어린왕자, 생텍쥐페리
배열주소 : [Ltest.Book;@7c30a502
책1 : null
책2 : null
책3 : null
책1 : test.Book@49e4cb85
책2 : test.Book@2133c8f8
책3 : test.Book@43a25848
책1 : 노인과바다, 헤밍웨이
책2 : 데미안, 헤르만헤세
책3 : 어린왕자, 생텍쥐페리
책1 : 노인과바다, 헤밍웨이
책2 : 데미안, 헤르만헤세
책3 : 어린왕자, 생텍쥐페리

예제)

  • Board 클래스
package test;

public class Board {
	
	private int num;
	
	private String name;
	private String subject;
	private String content;
	
	// 기본생성자
	public Board() {
		
	}
	
	
	// 모든 값을 받는 생성자 alt shift s + o
	public Board(int num, String name, String subject, String content) {
		this.num = num;
		this.name = name;
		this.subject = subject;
		this.content = content;
	}



	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSubject() {
		return subject;
	}
	public void setSubject(String subject) {
		this.subject = subject;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}

	
}
  • Member 클래스
package test;

public class Member {
	private String id;
	private String pass;
	private String name;
	
	
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPass() {
		return pass;
	}
	public void setPass(String pass) {
		this.pass = pass; 
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	
}
package test;

public class Test2 {

	public static void main(String[] args) {
		// Member 객체생성 3명
		// 배열선언 Member 3명을 저장하는 기억장소 여러개 생성
		// Member 객체생성 한 주소 저장
		// for 출력
		

		Member m1 = new Member();
		m1.setId("id1");
		m1.setName("홍길동");
		m1.setPass("pass1");
		
		Member m2 = new Member();
		m2.setId("id2");
		m2.setName("김길동");
		m2.setPass("pass2");
		
		Member m3 = new Member();
		m3.setId("id3");
		m3.setName("이길동");
		m3.setPass("pass3");
		
		Member[] m = new Member[3];
		m[0]=m1;
		m[1]=m2;
		m[2]=m3;
		
		for(int i=0;i<m.length;i++) {
			System.out.println("아이디 : " + m[i].getId());
			System.out.println("패스워드 : " + m[i].getPass());
			System.out.println("이름 : " + m[i].getName());
			System.out.println("---------------");
		}
		
		// Board 객체생성 5개
		// 배열선언 Board 5명을 저장하는 기억장소 여러개 생성
		// Board 객체생성 한 주소 저장
		// for 출력
		

		Board b1 = new Board(1, "김길동", "제목1", "내용1");
		Board b2 = new Board(2, "이길동", "제목2", "내용2");
		Board b3 = new Board(3, "박길동", "제목3", "내용3");
		Board b4 = new Board(4, "최길동", "제목4", "내용4");
		Board b5 = new Board(5, "홍길동", "제목5", "내용5");
		
		Board[] b = new Board[5];
		b[0]=b1;
		b[1]=b2;
		b[2]=b3;
		b[3]=b4;
		b[4]=b5;

		for(int i=0;i<b.length;i++) {
			System.out.println("글번호 : " + b[i].getNum());
			System.out.println("작성자 : " + b[i].getName());
			System.out.println("글제목 : " + b[i].getSubject());
			System.out.println("글내용 : " + b[i].getContent());
			System.out.println("--------------");
		}
		
	}

}
[출력]
아이디 : id1
패스워드 : pass1
이름 : 홍길동
---------------
아이디 : id2
패스워드 : pass2
이름 : 김길동
---------------
아이디 : id3
패스워드 : pass3
이름 : 이길동
---------------
글번호 : 1
작성자 : 김길동
글제목 : 제목1
글내용 : 내용1
--------------
글번호 : 2
작성자 : 이길동
글제목 : 제목2
글내용 : 내용2
--------------
글번호 : 3
작성자 : 박길동
글제목 : 제목3
글내용 : 내용3
--------------
글번호 : 4
작성자 : 최길동
글제목 : 제목4
글내용 : 내용4
--------------
글번호 : 5
작성자 : 홍길동
글제목 : 제목5
글내용 : 내용5
--------------
  • MemberDAO, BoardDAO class 추가하기
package test;

public class MemberDAO {
	
	public void insertMember3(Member[] m) {
		for(int i=0;i<m.length;i++) {

		System.out.println("아이디 : " + m[i].getId());
		System.out.println("비밀번호 : " + m[i].getPass());
		System.out.println("이름 : " + m[i].getName());
		System.out.println("--------------");
		}
		}
		
	}

package test;

public class BoardDAO {
	

	public void insertBoard5(Board[] b) {
		for(int i=0;i<b.length;i++) {
		System.out.println("번호 : "+ b[i].getNum());
		System.out.println("이름 : "+ b[i].getName());
		System.out.println("제목 : " + b[i].getSubject());
		System.out.println("내용 : " + b[i].getContent());
		System.out.println("-----------------");
		}
	}
	
}
package test;

public class Test2 {

	public static void main(String[] args) {
		// Member 객체생성 3명
		// 배열선언 Member 3명을 저장하는 기억장소 여러개 생성
		// Member 객체생성 한 주소 저장
		// for 출력
		

		Member m1 = new Member();
		m1.setId("id1");
		m1.setName("홍길동");
		m1.setPass("pass1");
		
		Member m2 = new Member();
		m2.setId("id2");
		m2.setName("김길동");
		m2.setPass("pass2");
		
		Member m3 = new Member();
		m3.setId("id3");
		m3.setName("이길동");
		m3.setPass("pass3");
		
		Member[] m = new Member[3];
		m[0]=m1;
		m[1]=m2;
		m[2]=m3;
        
		// MemberDAO 
		// Member 3개를 담은 배열 m을 전달
		MemberDAO mdao = new MemberDAO();
		mdao.insertMember3(m);
		
		// Board 객체생성 5개
		// 배열선언 Board 5명을 저장하는 기억장소 여러개 생성
		// Board 객체생성 한 주소 저장
		// for 출력
		

		Board b1 = new Board(1, "김길동", "제목1", "내용1");
		Board b2 = new Board(2, "이길동", "제목2", "내용2");
		Board b3 = new Board(3, "박길동", "제목3", "내용3");
		Board b4 = new Board(4, "최길동", "제목4", "내용4");
		Board b5 = new Board(5, "홍길동", "제목5", "내용5");
		
		Board[] b = {b1, b2, b3, b4, b5};

		
		// BoardDAO
		// Board 5개를 담은 배열 b를 전달
		BoardDAO bdao = new BoardDAO();
		bdao.insertBoard5(b);
		
	}

}
[출력]
아이디 : id1
비밀번호 : pass1
이름 : 홍길동
--------------
아이디 : id2
비밀번호 : pass2
이름 : 김길동
--------------
아이디 : id3
비밀번호 : pass3
이름 : 이길동
--------------
번호 : 1
이름 : 김길동
제목 : 제목1
내용 : 내용1
-----------------
번호 : 2
이름 : 이길동
제목 : 제목2
내용 : 내용2
-----------------
번호 : 3
이름 : 박길동
제목 : 제목3
내용 : 내용3
-----------------
번호 : 4
이름 : 최길동
제목 : 제목4
내용 : 내용4
-----------------
번호 : 5
이름 : 홍길동
제목 : 제목5
내용 : 내용5
-----------------

0개의 댓글