객체 삽입, 삭제할 수 있는 컨테이너 클래스 생성
한가지 유형만 담겠습니다 -> 제네릭 / 제네릭 안에 클래스타입이 자주 들어감
데이터 담기 //배열->클래스
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);
}
}
상위클래스
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;
}
}
}
}
문제
명시적 디폴트 생성자 알아서
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;
}
}
}
}