Java 20221101

신래은·2022년 12월 15일

JAVA

목록 보기
11/22

DAY 12

각각의 class 만들때
1. class 안에 변수 정의
2. class 정의 (parameter) {변수 정의 또는 method}
3. method
3. class 출력

각각의 클래스를 모아놓은 다른 클래스 생성해도 됨

Main class 에서
1. 각각의 class 정의
2. class에서 필요한 배열이 있다면 먼저 생성
3. class class 이름 = new class (변수 값 입력);
4. 큰 class. 큰 class 안의 이름 = class 이름;

출력 시 큰 class 만 출력해도 됨.

Wrapper Class -> refernce type (4byte)
타입이름이 다른 것 뿐 비슷하다.
Null 표시 가능, 추가적 기능을 제공함
class 타입이기때문에 method 가 제공됨.
primitive 타입은 null 불가
collection frame work 에서도 타입 결정, primitive 타입 제공안함. -> wrapper class 필요

Code

CollectionEx

import java.util.LinkedList;
import java.util.List;

public class CollectionEx {
    public static void main(String[] args) {
        Integer [] arr = {10, 20, 30} ; // 배열 데이터 길이 정해져 있음. 추가 불가.
        List < Integer > /*리스트에 넣을 데이터 타입*/ list = new LinkedList<Integer>();
        list.add(10);
        list.add(20);
        list.add(30);
        for (int i=0; i<list.size(); i++) {
            System.out.println(list.get(i)); // 배열 첨자 대신 get 사용
        }
        System.out.println("----------------------------------------------------");
        list.add(40); // add를 통해 계속해서 추가가능
        for (int i=0; i<list.size(); i++) {
            System.out.println(list.get(i)); // 배열 첨자 대신 get 사용
        }
        System.out.println("----------------------------------------------------");
        // 30번째 데이터 삭제 - 범위 넘어섬 error발생
        list.remove(2);
        for (int i=0; i<list.size(); i++) {
            System.out.println(list.get(i));
        }
        Integer target = 30;
        // 현재 list에 Integer 값 30이 있는가?
        System.out.println(list.contains(target));
        List<Integer> list2 = new LinkedList<Integer>();
        list2.add(10);
        list2.add(40);
        list.removeAll(list2); // list 차집합 list2
        System.out.println(list); 
    }
}

CollectionEx-Method-memberInfo

public class MemberInfo {
    String id;
    private String pwd;
    private String name;

    public MemberInfo(){}
    public MemberInfo (String id, String pwd, String name) {
        setId(id);setPwd(pwd);setName(name);
    }
    void setId (String id) {
        if (id.length() < 6) {
            System.out.println("아이디는 6자 이상");
        }
        else this.id = id;  
    }
    void setPwd (String pwd) {
        if (id.length() < 6) {
            System.out.println("비밀번호는 6자 이상");
        }
        else this.pwd = pwd;  
    }
    void setName(String name) {
        if(name.length() ==0 ) {
            System.out.println("이름을 올바르게 입력하세요.");
        }
        else this.name = name;
    }
    Boolean pwdCheck (String pwd) {
        return this.pwd.equals(pwd);
    }
    public String toString (){
        return "아이디 : " + id + " / 이름 :" + name;
    }
}

CollectionEx-Main-memberInfo

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class MemberMain {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        List<MemberInfo> memberList = new LinkedList<MemberInfo>();
        
        while (true) {
            System.out.print("1. 회원추가, 2. 회원삭제, 3. 회원수정, 4. 회원목록, 0.종료 : ");
        int sel = s.nextInt();
        s.nextLine();
        if (sel == 0) {
            System.out.println("종료합니다.");
            break;
        }
        else if (sel == 1) {
            System.out.println("======== 회원추가 ========");
            System.out.print("아이디 : ");
            String id = s.nextLine();
            System.out.print("비밀번호 : ");
            String pwd = s.nextLine();
            System.out.print("이름 : ");
            String name = s.nextLine();

            MemberInfo m = new MemberInfo(id, pwd, name);
            memberList.add(m);
            System.out.println("회원가입 되었습니다.");
        }
        else if (sel == 2) { 
            for(int i=0; i<memberList.size(); i++) {
                System.out.println(i + ". " + memberList.get(i));
            }
            System.out.print("삭제할 회원의 번호 : ");
            int idx = s.nextInt();
            s.nextLine();
            memberList.remove(idx);
            System.out.println("삭제했습니다.");
        }
        else if (sel == 3) {
            for(int i=0; i<memberList.size(); i++) {
                System.out.println(i + ". " + memberList.get(i));
            }
            System.out.print("수정할 회원의 번호 : ");
            int idx = s.nextInt();
            s.nextLine();
            MemberInfo m = memberList.get(idx);
            System.out.print("비밀번호 : ");
            String pwd = s.nextLine();
            if (m.pwdCheck(pwd)) {
                System.out.println(m);
                System.out.print("변경 할 아이디 : ");
                String id = s.nextLine();
                m.setId(id);  // 기존 데이터를 유지 시키면서 값만 변경

                System.out.print("변경 할 비밀번호 : ");
                pwd = s.nextLine();
                m.setPwd(pwd); // 기존 데이터를 유지 시키면서 값만 변경

                System.out.print("변경 할 이름 : ");
                String name = s.nextLine();
                m.setName(name); // 기존 데이터를 유지 시키면서 값만 변경
            }
            else {
                System.out.println("비밀번호가 일치하지 않습니다.");
            }            
        }
        else if (sel == 4) {
            for(int i=0; i<memberList.size(); i++) {
                System.out.println(i + ". " + memberList.get(i));
            }
        }
        }
        s.close();
    }
}

CollectionEx-Test-memberInfo

import java.util.LinkedList;
import java.util.List;

public class MemberTestMain {
    public static void main(String[] args) {
        List<MemberInfo> mList = new LinkedList<MemberInfo>();
        for (int i=0; i <10; i++) {
        mList.add(new MemberInfo("user0" +i, "123456", "사용자" + i));
        }
        System.out.println(mList);
        System.out.println(mList.get(5));
        MemberInfo m = mList.get(5);
        System.out.println(m);
        mList.get(5).setId("aaaaaaaaaa"); // 아래와 동일한 의미
        m.setId("aaaaaaaa");
        System.out.println(m);
        System.out.println(mList.get(5));
    }
}

0개의 댓글