코딩/2-JAVA

C1203메서드클래스배열_개념 ~ C1208메서드클래스배열_암기5

tree0505 2025. 7. 4. 11:18
반응형
    • C1203메서드클래스배열_개념

  • C1203개념01클래스배열
package C1203메서드클래스배열_개념;

class Product{
	String name;
	int price;
	
	void init(String name , int price) {
		this.name = name;
		this.price = price;
	}
	
	void printData() {
		System.out.println(name + " " + price);
	}
}

public class C1203개념01클래스배열 {
	public static void main(String[] args) {
				
		// 클래스 = 사용자 정의 데이터 타입
		int[]     list   = new int[2];
		
		//                 Product 클래스 데이터타입을
		//				   저장할 방 2개를 생성해줘~
		//				   아직 Product 클래스가 생성된 것은 X
		Product[] prList = new Product[2];
		System.out.println(prList[0]);	// null
		System.out.println(prList[1]);	// null
		
		// 아래 두 줄의 코드를 잊지말고 꼭 작성하자!
		prList[0] = new Product();
		prList[1] = new Product();
		
		prList[0].name = "새우깡";
		prList[1].name = "고래밥";		
		prList[0].price = 1000;
		prList[1].price = 2000;		
			
		for(int i = 0; i < prList.length; i++) {
			prList[i].printData();
		}
		System.out.println("----------------------");
		
		Product[] prList2 = new Product[2];
		prList2[0] = new Product();
		prList2[1] = new Product();
		
		prList2[0].init("새우깡", 1000);
		prList2[1].init("고래밥", 2000);
		
		for(int i = 0; i < prList.length; i++) {
			prList2[i].printData();
		}
		
	}
}

  • C1203개념02클래스배열
package C1203메서드클래스배열_개념;

class User{
	String name;
	int score;
	
	void init(String name, int score) { 
		this.name = name; 
		this.score = score;
	}
	
	void printData() {
		System.out.println(name  + " : " + this.score);
	}
}


public class C1203개념02클래스배열 {
	public static void main(String[] args) {
		
		User[] list = new User[3];
		for(int i = 0; i < list.length; i++) {
			list[i] = new User();
		}
		list[0].init("김철수",100); 
		list[1].init("이만수",20);
		list[2].init("박영희",70);
		
		for(int i = 0 ; i < list.length; i++) {
			list[i].printData();
		}
		
	}
}

  • C1203개념03중복숫자
package C1203메서드클래스배열_개념;

import java.util.Random;

class RanNum{
	int num;
	boolean check;		// false
	
	void print() {
		System.out.println(num + " ");
	}
}
public class C1203개념03중복숫자 {
	public static void main(String[] args) {
		
		// 문제) RanNum 클래스를 활용해서 중복숫자금지 출력 
		//      num에 1~5사이숫자를 랜덤으로 저장한다. (조건 중복숫자금지)
		
		Random ran = new Random();
		
		RanNum[] ranList = new RanNum[5];
		
		for(int i=0; i<ranList.length; i++) {
			ranList[i] = new RanNum();
		}
		
		for(int i=0; i<ranList.length; i++) {
			int rNum = ran.nextInt(5);
			
			if(ranList[rNum].check == false) {
				ranList[rNum].num = i + 1;
				ranList[rNum].check = true;
			} else {
				i -= 1;
			}
		}
		
		for(int i=0; i<ranList.length; i++) {
			ranList[i].print();
		}
		
	}
}

  • C1203개념04예매
package C1203메서드클래스배열_개념;

import java.util.Scanner;

class Seat {
	int num;
	boolean check;
	
	void setData(int num , boolean check) {
		this.num = num;
		this.check = check;
	}
	
	void showNum() {
		System.out.print(num + " ");
	}
	
	void showData() {
		if(check == true) {
			System.out.print("■ ");
		} else {
			System.out.print("□ ");
		}
	}
}

public class C1203개념04예매 {
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		
		boolean run = true;
		Seat[] seatList = new Seat[8];
		
		for(int i = 0; i < seatList.length; i++) {
			seatList[i] = new Seat(); 
			seatList[i].setData(i + 1, false);
		}
		
		while(run) {
			for(int i = 0; i< seatList.length; i++) {
				seatList[i].showNum();
			}
			System.out.println();
			
			for(int i = 0; i< seatList.length; i++) {
				seatList[i].showData();
			}
			System.out.println();
			
			System.out.print("번호를 입력하세요 >>>");
			int sel = scan.nextInt();
			sel -= 1;
			
			if(seatList[sel].check == false) {
				seatList[sel].check = true;
			}
		}

		
	}
}

  • C1203개념05회원관리
package C1203메서드클래스배열_개념;

import java.util.Scanner;

class Member{
	String id;
	String name;
	
	void printMember() {
		System.out.println(id + " : " + name);
	}
}

public class C1203개념05회원관리 {
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		
		Member[] memberList = new Member[100];
		
		int memberCount = 0;
		
		while(true) {
			System.out.println("[1]추가 [2]삭제 [3]출력 [0]종료");
			int sel = scan.nextInt();
			
			if(sel == 1) {
				Member member = new Member();
				
				System.out.print("아이디 입력 : ");
				member.id = scan.next();
				
				System.out.print("이름 입력 : ");
				member.name = scan.next();
				
				memberList[memberCount] = member;
				memberCount += 1;
			} else if(sel == 2) {
				System.out.print("아이디 입력 : ");
				String id = scan.next();
				
				int index = -1;
				for(int i=0; i<memberCount; i++) {
					if(memberList[i].id.equals(id)) {
						index = i;
						break;
					}
				}
				if(index == -1) {
					System.out.println("아이디 입력 오류");
				} else {
					for(int i=index; i<memberCount - 1; i++) {
						memberList[i] = memberList[i + 1];
					}
					memberCount -= 1;
				}
				
			} else if(sel == 3) {
				for(int i=0; i<memberCount; i++) {
					memberList[i].printMember();
				}
			} else if(sel == 0) {
				break;
			} 
		}
		
		scan.close();
		
	}
}

  • C1205메서드클래스배열_암기3.copy

  • _MemberMain
package C1205메서드클래스배열_암기3.copy;

public class _MemberMain {
	public static void main(String[] args) {
		
		MemberController controller = new MemberController(); 
		controller.init(); 
		controller.run();
		
	}
}

  • Member
package C1205메서드클래스배열_암기3.copy;

public class Member {
	
	//여기다가 개별 저장? 
	String id; 
	String pw; 
	String name; 
	
	void printMember() {
		System.out.println(id+" : "+pw+" : "+name);
	}
	
}

  • MemberController
package C1205메서드클래스배열_암기3.copy;

import java.util.Scanner;

public class MemberController {
	
	Scanner scan; 
	MemberDAO memberDAO; 
	
	void init() { //dao 만들기 
		//new 시킨것 
		scan = new Scanner(System.in); // 스캐너
		memberDAO = new MemberDAO();  // 디에이오 
		memberDAO.init(100);  // 100 이들어가네
	}
	void run() {
		while(true) {
			System.out.println("[1]추가 [2]삭제 [3]수정 [4]출력  [0]종료");
			int sel = scan.nextInt();// 명령어 
			
			if(sel == 1) {
				memberDAO.join();
			}else if(sel == 2) {
				memberDAO.delete(); 
			}else if(sel == 3) {
				memberDAO.update(); 
			}else if(sel == 4) {
				memberDAO.printAll();
			}else if(sel == 0) {
				System.out.println("[종료]");
				break;
			}
		}
	}
	
}

  • MemberDAO
package C1205메서드클래스배열_암기3.copy;

import java.util.Scanner;

public class MemberDAO {
	
	//변수 설정? 
	Scanner scan; 
	int max; 
	int memberCount; 
	Member[] memberList; 
	
	void init(int size) { //배열 100칸 
		scan = new Scanner(System.in); 
		max = size; 
		memberList = new Member[max]; // 100개 생김 머리만 
		memberCount = 0; 
	}
	int checkMember(String id) {//아이디 검사 //아이디가 있으면 i 인덱스가 나온다. 
		int check = -1; 
		for(int i = 0; i<memberCount; i++) {
			if(id.equals(memberList[i].id)) {
				check = i; 
				break;
			}
		}
		return check; 
	}
	
	int checkMember(String id, String pw) {
		int check = -1; 
		for(int i = 0; i<memberCount; i++) {
			if(id.equals(memberList[i].id)&&pw.equals(memberList[i].pw)) {
				check = i; 
				break; 
			}
		}
		return check; 
	}
	//----------------------------------------------------------
	void join() {
		System.out.println("[추가] 아이디 입력 : ");
		String id = scan.next(); 
		
		if(checkMember(id) != -1) {
			System.out.println("[아이디가 중복됩니다.!]");
		}else {
			System.out.println("[추가] 비밀번호 입력 : ");
			String pw = scan.next(); 
			System.out.println("[추가] 이름 입력 : ");
			String name = scan.next();
			
			Member member = new Member(); 
			member.id = id; 
			member.pw = pw; 
			member.name = name; 
			
			memberList[memberCount] = member; 
			memberCount += 1; 
			System.out.println("[추가 성공!]");
		}
	}
	//----------------------------------------------------------
	void delete() {
		System.out.println("[삭제] 아이디 입력 : ");
		String id = scan.next();
		
		int index = checkMember(id); 
		if(index != -1) {
			for(int i = index; i<memberCount -1; i++) {
				memberList[i] = memberList[i+1]; 
			}
			memberCount -= 1; 
			System.out.println("[삭제성공!]");
		}else {
			System.out.println("[없는 아이디 입니다.]");
		}
	}
	//----------------------------------------------------------
	void update() {
		System.out.println("[수정]아이디 입력 : ");
		String id = scan.next(); 
		System.out.println("[수정]비밀번호 입력 : ");
		String pw = scan.next();
		
		int index = checkMember(id,pw); 
		
		if(index != -1) {
			System.out.println("[수정] 이름 입력 : ");
			String name = scan.next(); 
			
			memberList[index].name = name; 
			System.out.println("[수정 완료!]");
		}else {
			System.out.println("[아이디와 비밀번호를 확인해주세요]");
		}
	}
	//----------------------------------------------------------
	void printAll() {
		for(int i = 0; i<memberCount; i++) {
			memberList[i].printMember();
		}
	}
}

 

반응형

'코딩 > 2-JAVA' 카테고리의 다른 글

C14콜렉션 => C1401가변배열_개념  (0) 2025.07.07
C13파일입출력  (0) 2025.07.07
C1202메서드리턴_개념  (1) 2025.07.03
C1201메서드_개념  (0) 2025.07.03
C1103클래스배열_문자열 , C1104클래스배열_심화  (1) 2025.07.03