'productManagerArray만들기 [실습]'에 해당되는 글 1건

  1. 2012.07.28 productManagerArray만들기 [실습]

*제품만들기 실습
*폴더 : /productManagerArray 만들기

1. ProductDTO클래스를 UML을 보고 작성하세요. 저장은 productManagerArray 폴더에 하세요.
   toString() - 객체의 모든 attribute의 값을 하나의 String으로 만들어 return 하도록 작성.


public class ProductManagerService 
{
 private ProductDTO[] productList;
 private int totalProductCount; //배열로 부터 현재 데이터가 몇개 들어가 있는지를 알게 해줄 변수

 public ProductManagerService(int length){
  productList = new ProductDTO[length];
 }
 public ProductManagerService(){
  productList = new ProductDTO[100];
 }
 //productList에 제품을 추가하는 메소드
 /*
  instance 변수 productList에 인수로 받은 제품 정보를 추가 하는 메소드
 */
 public void addProduct(ProductDTO productDTO){
  //1.배열(productList)에 제품을 넣을 index가 있는지 체크
  //1-1 없으면 (totalProductCount==배열의 length) 넣을수 없다는 메세지를 출력하고 종료
  //2.productId는 식별자
  //2. 배열(productList)애 같은 productId값을 가진 제품이 저장되 있는지 체크
  //2-1 저장되 있으면 같은 아이디의 제품이 있어 등록할 수 없다는 메세지 출력하고 종료
  //3. 배열에 제품정보 추가
  //4. totalProductCount의 값을 1 증가.
 
  /*
  //1.배열(productList)에 제품을 넣을 index가 있는지 체크
  //1-1 없으면 (totalProductCount==배열의 length) 넣을수 없다는 메세지를 출력하고 종료
  if(totalCount == productList.length){
   System.out.println("제품정보를 넣을 저장 장소가 없습니다.");
   return;
  }
  //2.productId는 식별자
  //2. 배열(productList)애 같은 productId값을 가진 제품이 저장되 있는지 체크
  //2-1 저장되 있으면 같은 아이디의 제품이 있어 등록할 수 없다는 메세지 출력하고 종료
  for(int i = 0;i<totalProductCount;i++){
   if(productList[i].getProductId().equals(productDTO.getProductId())){
   System.out.println("같은 제품이 있습니다.");
   return;
  }
  
  //3. 배열에 제품정보 추가
  this.productList[totalProductCount]=productDTO;
  //4. totalProductCount의 값을 1 증가.
  totalProductCount++;
   
  }
  }

  */

  System.out.println("함수를 썼을경수");
  if(totalProductCount==productList.length){
   System.out.println("넣을 공간이 없습니다.");
  }
  else if(searchProductById(productDTO.getProductId())!=null){
   System.out.println("같은 제품이 있습니다.");
  }
  else{
   this.productList[totalProductCount]=productDTO;
   totalProductCount++;
  }
 }
 /*
  instance 변수 productList에 저장된 모든 상품의 정보(id~info)를 출력해 주는 메소드
 */
 public void printProductList(){
  for(int i =0;i<totalProductCount;i++){
  System.out.println(productList[i].toString());
  }
 }
 public ProductDTO searchProductById(String productId){
  ProductDTO pDTO = null;
  for(int i =0;i<totalProductCount;i++){
  if(productId.equals(productList[i].getProductId())){
   pDTO=productList[i];
  
   }
  }
  return pDTO;
  
 }
 public void modifyProductInfo(ProductDTO productDTO){
  for(int i=0;i<totalProductCount;i++){
  if(productDTO.getProductId().equals(productList[i].getProductId())){
  productList[i]=productDTO;
  }
  }
  
 }
 public void removeProductById(String productId){
  for(int i=0;i<totalProductCount;i++){
  if(productList[i].getProductId().equals(productId)){
   productList[totalProductCount]=null;
  }
  }
 }
}

 

 

public class TestProductManager
{
 public static void main(String[] args)
 {
  ProductDTO pdto1 = new ProductDTO("p-111","이름",5000,"제조사","정보");
  ProductDTO pdto2 = new ProductDTO("p-222","마우스",12000,"삼성","휠");
  ProductDTO pdto3 = new ProductDTO("p-333","컴퓨터",43000,"LG","무선 마우스");
  ProductDTO pdto4 = new ProductDTO("3333333333","TV",43000,"LG","무선 마우스");
//  System.out.println(pdto1.getProductName());
//  System.out.println(pdto1.toString());

  ProductManagerService pms = new ProductManagerService(30);
  pms.addProduct(pdto1);
  pms.addProduct(pdto2);
  pms.addProduct(pdto3);

  pms.addProduct(null);

  //pms.addProduct(pdto3);

  pms.printProductList();

  System.out.println("-----------id로 제품정보 조회------------");
  ProductDTO p1 = pms.searchProductById("p-111");
  System.out.println("p-111 제품정보 : "+p1.toString());
  ProductDTO p2 = pms.searchProductById("p-222");
  System.out.println("p-222 제품정보 : "+p1.toString());
  ProductDTO p3 = pms.searchProductById("p-333");
  System.out.println("p-333 제품정보 : "+p1.toString());

  //없는 Id로 조회
  ProductDTO p4 = pms.searchProductById("p-555");
  System.out.println("p-111 제품 정보 : "+p4);


  System.out.println("--------------정보수정--------------");
  pdto1 = new ProductDTO("p-111","노트북",15000000,"제조사","정보");
  pdto2 = new ProductDTO("p-222","마우스",1200000000,"삼성","휠");
  pms.modifyProductInfo(pdto1);
  pms.modifyProductInfo(pdto2);
  pms.printProductList();
 

  System.out.println("--------------정보삭제--------------");
  pms.removeProductById("p-222");
  pms.printProductList();
 // System.out.println("-------------------------------");
 // pms.printProductList();
 }
}


----------------------------

public class ProductManagerService 
{
 private ProductDTO[] productList;
 private int totalProductCount; //배열로 부터 현재 데이터가 몇개 들어가 있는지를 알게 해줄 변수

 public ProductManagerService(int length){
  productList = new ProductDTO[length];
 }
 public ProductManagerService(){
  productList = new ProductDTO[100];
 }
 //productList에 제품을 추가하는 메소드
 /*
  instance 변수 productList에 인수로 받은 제품 정보를 추가 하는 메소드
 */
 public void addProduct(ProductDTO productDTO){

  if(isNull(productDTO)){
   System.out.println("인자로 null값이 들어 왔습니다.");
   return ;
  }
  //1.배열(productList)에 제품을 넣을 index가 있는지 체크
  //1-1 없으면 (totalProductCount==배열의 length) 넣을수 없다는 메세지를 출력하고 종료
  //2.productId는 식별자
  //2. 배열(productList)애 같은 productId값을 가진 제품이 저장되 있는지 체크
  //2-1 저장되 있으면 같은 아이디의 제품이 있어 등록할 수 없다는 메세지 출력하고 종료
  //3. 배열에 제품정보 추가
  //4. totalProductCount의 값을 1 증가.
 
  
  //1.배열(productList)에 제품을 넣을 index가 있는지 체크
  //1-1 없으면 (totalProductCount==배열의 length) 넣을수 없다는 메세지를 출력하고 종료
  if(totalProductCount == productList.length){
   System.out.println("제품정보를 넣을 저장 장소가 없습니다.");
   return;
  }
  //2.productId는 식별자
  //2. 배열(productList)애 같은 productId값을 가진 제품이 저장되 있는지 체크
  //2-1 저장되 있으면 같은 아이디의 제품이 있어 등록할 수 없다는 메세지 출력하고 종료
  /* for(int i = 0;i<totalProductCount;i++){
   if(productList[i].getProductId().equals(productDTO.getProductId())){
   System.out.println("같은 제품이 있습니다. 아이디를 바꾸세요.");
   return;
   }
  }
  */
  ProductDTO p = searchProductById(productDTO.getProductId());
  if(p!=null){
   System.out.println("같은 제품이 있습니다. 아이디를 바꾸세요.");
   return;
  }
  //3. 배열에 제품정보 추가
  this.productList[totalProductCount]=productDTO;
  //4. totalProductCount의 값을 1 증가.
  totalProductCount++;
   
  
  

  
  /*
  //System.out.println("함수를 썼을경우");
  if(totalProductCount==productList.length){
   System.out.println("넣을 공간이 없습니다.");
  }
  else if(searchProductById(productDTO.getProductId())!=null){
   System.out.println("같은 제품이 있습니다.");
  }
  else{
   this.productList[totalProductCount]=productDTO;
   totalProductCount++;
  }
  */
 }
 /*
  instance 변수 productList에 저장된 모든 상품의 정보(id~info)를 출력해 주는 메소드
 */
 public void printProductList(){
  for(int i =0;i<totalProductCount;i++){
  System.out.println(productList[i].toString());
  }
 }
 /*
  productId를 인수로 받아 productList에서 찾아 그 제품의 정보를 return하는 메소드
  없을 경우 -null을 return
 */
 public ProductDTO searchProductById(String productId){

  ProductDTO pDTO = null;
  if(isNull(productId)){
   System.out.println("인자로 null값이 들어 왔습니다.");
   return pDTO;
  }

  for(int i =0;i<totalProductCount;i++){
   if(productId.equals(productList[i].getProductId())){ //조회대상
   pDTO=productList[i];
   break;
   }

  }
//  if(pDTO==null){
//   System.out.println("동일한 ID가 없습니다.");
//  }
  return pDTO;
  /*
   for(int i =0;i<totalProductCount;i++){
   if(productId.equals(productList[i].getProductId())){ //조회대상
   return productList[i];
  
   }

  }
  if(pDTO==null){
   System.out.println("동일한 ID가 없습니다.");
  }
  return null;
  */
 }
 /*
  정보를 수정하는 메소드
  id,이름,가격, 제조사,정보
  수정할 내용을 ProductDTO 객체로 받아서 productList에서 id를 가지고 찾아
  id가 같은 제품의 정보를 인수로 받은 정보로 변경한다.

 */


 public void modifyProductInfo(ProductDTO productDTO){
 

  if(isNull(productDTO)){
   System.out.println("인자로 null값이 들어 왔습니다.");
   return ;
  }
  for(int i=0;i<totalProductCount;i++){
  if(productDTO.getProductId().equals(productList[i].getProductId())){
   productList[i]=productDTO;
   break;
   }
  }

  
 }
 /*
 인수로 받은 productId를 가지고 productList에서 제품을 찾아 삭제(제거)
 */

 public void removeProductById(String productId){
  
  if(isNull(productId)){
   System.out.println("인자로 null값이 들어 왔습니다.");
   return ;
  }
  for(int i=0;i<totalProductCount;i++){
  if(productList[i].getProductId().equals(productId)){
  
   for(int j=i;j<totalProductCount-1;j++){
   productList[j]=productList[j+1];
   
   }
//   for(int j=i+1;j<totalProductCount-1;j++){
//   productList[j-1]=productList[j];
//   }

   totalProductCount--;
   productList[totalProductCount]=null;
  
   break;
  }

  }
 }

 private boolean isNull(ProductDTO pdto){
  boolean flag = false;
  if(pdto == null){
   flag = true;
  }
  return flag;
 }
 private boolean isNull(String str){
  boolean flag = false;
  if(str == null){
   flag = true;
  }
  return flag;
 }
}

-------------------------------------

public class  ProductDTO
{
 private String productId;
 private String productName;
 private int productPrice;
 private String productMaker;
 private String productInfo;

 public ProductDTO(){}
 public ProductDTO(String productId, String productName, int productPrice, String productMaker, String productInfo){
  this.productId=productId;
  this.productName=productName;
  this.productPrice=productPrice;
  this.productMaker=productMaker;
  this.productInfo=productInfo;
 }
 public String getProductId(){
  return productId;
 }
 public void setProductId(String productId){
  this.productId = productId;
 }
 public String getProductName(){
  return productName;
 }
 public void setProductName(String productName){
  this.productName = productName;
 }
 public int getProductPrice(){
  return productPrice;
 }
 public void setProductName(int productPrice){
  this.productPrice = productPrice;
 }
 public String getProductMaker(){
  return productMaker;
 }
 public void setProductMaker(String productMaker){
  this.productMaker = productMaker;
 }
 public String getProductInfo(){
  return productInfo;
 }
 public void setProductInfo(String productInfo){
  this.productInfo = productInfo;
 }
 public String toString(){
  return productId+" "+productName+" "+productPrice+" "+productMaker+" "+productInfo;
 }

}

============================================================

ex :

public class CommandLineArgs 
{
 //JVM은 실행 시 (java class명) 입력한 값을 main()의 인자로 넘겨준다.
 //예 : java CommandLineArgs A ABC 안녕 -> length 가 3인 배열을 만들어 A, ABC, 안녕
 //값을 넣어 main메소드의 인자로 넘긴다.
 public static void main(String[] args)
 {
  System.out.println("args.length : "+ args.length);
  System.out.println("------command line argument로 넘어온 값들-------------");
  for(int i = 0;i<args.length;i++){
   System.out.println(args[i]);
  }

 }
}

//CommandLineArgs.java
//java CommandLineArgs 안녕 반갑습니다 abc
//java CommandLineArgs "안녕 반갑습니다 abc"

'프로그래밍 > JAVA프로그래밍' 카테고리의 다른 글

staticTest[실습]  (0) 2012.07.28
package, import  (0) 2012.07.28
배열  (0) 2012.07.28
반복분(for, while)  (0) 2012.07.28
switch문  (0) 2012.07.28
Posted by 조은성
,