자바-14일차 이클립스

최성현·2023년 7월 4일
0

Java

목록 보기
41/46

13일차 복습

객체 삽입, 삭제할 수 있는 컨테이너 클래스 생성
한가지 유형만 담겠습니다 -> 제네릭 / 제네릭 안에 클래스타입이 자주 들어감

데이터 담기 //배열->클래스
for(String f:flowers)
list.add(f);//삽입 //배열갯수만큼 String f에 추가

public class ArrayList_01 {

	public static void main(String[] args) {
		
		String flowers[]= {"장미","프리지아","다알리아","수국"};
		
		//객체 삽입, 삭제할 수 있는 컨테이너 클래스 생성
		//한가지 유형만 담겠습니다 -> 제네릭 / 제네릭 안에 클래스타입이 들어감
		//List,Set,Map<> 전체유형이 컬렉션
		//ArrayList 와 List의 차이는 인터페이스와 그것을 구현하는 클래스
		ArrayList<String> list=new ArrayList<String>();
		
		//데이터 담기 //flowers->list
		for(String f:flowers)
			list.add(f);//삽입 //배열갯수만큼 String f에 추가
		
		System.out.println("size: "+list.size());
		
		System.out.println("#출력1_for");
		
		for(int i=0;i<list.size();i++)
		{
			String s=list.get(i);
			System.out.println(s);
		}
		
		System.out.println("#출력2_for~each");
		
		for(String fr:list)
			System.out.println(fr);

	}

}

컬렉션 another클래스

상위클래스

public class Board {
	
	private String writer; //글쓴이
	private String subject; //제목
	private String content; //내용
	
	
	public Board() {
		
	}
	
	
	public Board(String w, String s, String c) {
		this.writer=w;
		this.subject=s;
		this.content=c;
	}


	public String getWriter() {
		return writer;
	}


	public void setWriter(String writer) {
		this.writer = writer;
	}


	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;
	}
	
	
}

하위클래스

public class VectorBoard_02 {
	
	//Vector<Board> list=new Vector<Board>();
	//가변의 빈 컨테이너 생성
	List<Board> list=new Vector<Board>();
	//유형을 클래스 타입으로 지정했으므로 데이터를 꺼내고 받을 때도 클래스
	
	//입력
	public void inputBoard()
	{
		Scanner sc=new Scanner(System.in);
		String writer,subject,content;
		
		System.out.println("작성자명?");
		writer=sc.nextLine();
		System.out.println("제목?");
		subject=sc.nextLine();
		System.out.println("내용?");
		content=sc.nextLine();
		
		//값을 입력해야지 생성해서 받아올 수 있기 때문에 밑에 생성
		//==Board data=new Board(writer, subject, content);//클래스 생성
		Board data=new Board();
		data.setWriter(writer);
		data.setSubject(subject);
		data.setContent(content);
		
		list.add(data); //클래스로 생성된 것을 클래스에 담는다
		
		System.out.println("현재데이터 갯수: "+list.size());
	}
	
	//출력
	public void writeBoard()
	{
		System.out.println("****게시판****");
		System.out.println("======================================");
		
		for(int i=0;i<list.size();i++)
		{
			Board b=list.get(i); //클래스로 반환되기 때문에 클래스에 값 넣어줘야함
								 //리스트 내에 지정된 위치에 있는 요소 값을 돌려준다
			//위에 input으로 set에 값을 넣고 list에 넣었으니 클래스 생성해서 get으로 값 넣어주면 출력
			System.out.println("번호"+(i+1)+"\t작성자: "+b.getWriter());
			System.out.println("제목: "+b.getSubject());
			System.out.println("내용: "+b.getContent());
			System.out.println("------------------------------------------");
		}
	}
	
	

	public static void main(String[] args) {
		
		//메서드가 같은 클래스라도 static이 아니라서 생성하고 불러올 수 있다
		//static이라면 메서드명만으로 생성 가능
		VectorBoard_02 vb=new VectorBoard_02();
		//vb.inputBoard(); 입력까지만 작성했을때 테스트용
		
		Scanner sc=new Scanner(System.in);
		int n; //몇 번 선택, 몇 번 입력 등등
		
		while(true)
		{
			System.out.println("1.추가  2.전체출력  9.종료");
			n=Integer.parseInt(sc.nextLine()); //안전하게 숫자 뒤에 문자와도 버퍼 없게
			
			if(n==1)
				vb.inputBoard();
			else if(n==2)
				vb.writeBoard();
			else if(n==9)
			{
				System.out.println("프로그램 종료");
				break;
			}
			else
			{
				System.out.println("잘 못 입력");
				continue;
			}
		}
	}

}

generic 수합 복습문제

문제
명시적 디폴트 생성자 알아서
1.상품입고 2.상품재고 9.종료
1
상품명? 바나나
수량? 10
가격? 1000
2
번호 상품명 수량 가격 총가격
1 바나나 10 1000 10000

상위클래스

public class Shop {
	
	private String sangName; //상품명
	private int su; //수량
	private int dan; //가격
	
	public Shop(String s, int su, int dan) {
		
		this.sangName=s;
		this.su=su;
		this.dan=dan;
	}

	public String getSangName() {
		return sangName;
	}

	public void setSangName(String sangName) {
		this.sangName = sangName;
	}

	public int getSu() {
		return su;
	}

	public void setSu(int su) {
		this.su = su;
	}

	public int getDan() {
		return dan;
	}

	public void setDan(int dan) {
		this.dan = dan;
	}

}

하위클래스

public class ShopMain_03 {
	
	Vector<Shop> list=new Vector<Shop>();
	
	public void inputShop() {
		Scanner sc=new Scanner(System.in);
		String sangName;
		int su;
		int dan;

		System.out.print("상품명? ");
		sangName=sc.nextLine();
		System.out.print("수량? ");
		su=Integer.parseInt(sc.nextLine());
		System.out.print("가격? ");
		dan=Integer.parseInt(sc.nextLine());

		
		Shop sh=new Shop(sangName, su, dan);
		
		list.add(sh);
		
		System.out.println();
	}
	
	public void outputShop() {
		System.out.println("번호\t상품명\t수량\t가격\t총가격");
		System.out.println("-----------------------------------------");
		
		for(int i=0;i<list.size();i++)
		{
			Shop s=list.get(i);
			int total=s.getSu()*s.getDan();
			
			System.out.println((i+1)+"\t"+s.getSangName()+"\t"+s.getSu()+"\t"
								+s.getDan()+"\t"+total);
			System.out.println("-----------------------------------------");
		}
	}

	public static void main(String[] args) {

		ShopMain_03 sm=new ShopMain_03();
		
		Scanner sc=new Scanner(System.in);
		int n;
		
		while(true)
		{
			System.out.println("1.상품입고\t2.상품재고\t9.종료");
			n=Integer.parseInt(sc.nextLine());
			
			if(n==1)
				sm.inputShop();
			else if(n==2)
				sm.outputShop();
			else if(n==9)
			{
				System.out.println("프로그램 종료");
				break;
			}
			else
			{
				System.out.println("잘 못 입력했어요");
				continue;
			}
			
		}
	}

}
profile
백엔드 개발자로서 성장해 나가는 성현이의 블로그~

0개의 댓글