방명록
- 2024.01.05.금.day62024년 01월 05일 10시 53분 15초에 업로드 된 글입니다.작성자: 202401to07
첫 지각
MyClass3.java~
CarClass.java / B04CartMain.java :장바구니 만들고 출력
package object.day6; public class CartClass { private String userid; private String[] products; private int[] prices; private int total_Money; public String getUserid(){ return userid; } public String[] getProductName(){ return products; } public int[] getPrices(){ return prices; } public int getTotalMoney(){ return total_Money; } public void setUserid(String id){ this.userid = id; } public void setProductName(String[] name){ this.products = name; } public void setPrices(int[] prices){ this.prices = prices; } /*public void setTotalMoney(int totalmoney){ this.total_Money= totalmoney; }*/ //추가적인 인스턴스 메소드 : 해결방법 // 상품 총 가격 합계 메소드 public int total_Money(int[] select){ // total money는 int[]가 아니고 int이다. int sum = 0; for(int i=0; i<select.length;i++){ int temp = select[i]; //select가 -1이면 선택 종료 였잖아 근데 크기를 5로 설정했잖아 if(temp == -1) break; sum += prices[temp]; } return sum; } }
package object.day6; import java.util.Arrays; import java.util.Scanner; public class B04CartMain { public static void main(String[] args) { CartClass momo = new CartClass(); //String, String[], int[] 필드는 초기값이 null String[] products = {"새우깡","칠성사이다","빅토리아","제주감귤","나주베","호빵","이클립스"}; int[] prices = {3000,2500,9900,12000,9800,6000,1500}; momo.setUserid("모모"); momo.setProductName(products); momo.setPrices(prices); Scanner sc = new Scanner(System.in); System.out.println("모모의 장바구니입니다"); System.out.println(String.format("%s\t %s\t %s\t","번호","상품명","가격" )); for(int i = 0 ; i < momo.getProductName().length ; i++){ //gerProductName이야 조심해 System.out.println(String.format("%d\t %s\t %d\t",i, products[i],prices[i])); } System.out.println("구매할 상품을 선택하시오. 선택종료는 -1입니다."); // select는 저장공간 자체를 말한다 // k는 (그 저장공간의 각각 몇번방으로 가라)저장공간의 인덱스이다 // sel은 입력받은 값이다 int sel = 0; //입력받은 값 int[] select = new int[5]; //저장공간의 최대 크기(갯수)는 5개 int k = 0; //저장공간의 인덱스 while (sel != -1 && k < select.length) { //길이는 5 인덱스는 01234 이므로 System.out.println("상품 번호 입력"); sel = sc.nextInt(); //sel의 선택범위는 productName 인덱스범위 안에서 선택하는 것이다 if(sel<-1 || sel > products.length-1){ //장바구니 이외의 숫자를 선택하면 잘못됏다고 알려줘야됨 //-1하는 이유는 인덱스가 0부터 시작이니깐 System.out.println("없는 상품입니다"); continue; //아래있는 명령어 실행하지 않고 다시 반복문 시작으로 돌아간다 } select[k++]=sel; //대입후에 ++ 해야됨 } if(k==select.length) System.out.println("장바구니를 모두 채우셨습니다"); System.out.println("선택하신 번호는 : " + Arrays.toString(select)); System.out.println("모모님이 선택하신 상품 합계 : " + momo.total_Money(select)); momo.total_Money(select); //setter메소드가 여기서는 필요없습니다 //total_Money 메소드가 대신 값을 계산하여 저장할것입니다 . } //필요에 따라서는 기존의 setter메소드는 사요하지 않고 추가적인 비지니스로직을 구현하는 메소드를 만듭니다.-> total money }
이 부분 어려웠음 이해는 함
이것도 어려워
MyClass5
강사님이 보내주신건데 뭘 말하는건지 모르겠지만 일단 저장해두기 this. 를 쓴 이유: this. 는 인스턴스 변수와 메서드 변수의 이름이 같을 때 구분하기 위해 사용하는 것이다.
%s 문자열 ,%d 정수(10진수) ,%f 부동소수점, %c 문자, %b 논리값,
%x 정수(16진수), %o정수(8진수), %e 부동소수점(지수형식), %g 부동소수점(일반 형식)
package object.day6; import java.lang.reflect.Array; import java.util.Arrays; public class Product { // private으로 선언을 먼저 한다 private String productName; private int price; private String company; private String[] etc; // 기본 생성자는 생략해도 되고 필요한 경우 써도 된다. public Product() { } //커스텀 생성자 만들기 public Product(String productName,int price, String company, String[] etc) { this.productName = productName; this.price = price; this.company = company; this.etc = etc; } //getter public String getProductName() { return productName; } public int getPrice() { return price; } public String getCompany() { return company; } public String[] getEtc() { return etc; } public String getData(){ return String.format("%15s\t %10d\t %-10s\t %-20s" , productName, price, company, Arrays.toString(etc)); // %s 문자열 ,%d 정수(10진수) ,%f 부동소수점, %c 문자, %b 논리값, %x 정수(16진수), %o정수(8진수), %e 부동소수점(지수형식), %g 부동소수점(일반 형식) } }
package object.day6; public class B06ProductMain { public static void main(String[] args) { //product 객체를 4개 만들어보겠습니다 //이거 Product.java에서 만든 커스텀 생성자 이용해서 객체 만드는 거임 Product snack = new Product("새우깡", 1200, "농심", new String[3]); Product drink = new Product("칠성사이다", 2200, "롯데", new String[3]); Product fruit = new Product("부사", 12000, "우리농원", new String[3]); Product icecream = new Product("투게더", 7000, "빙그레", new String[3]); System.out.println(snack.getData()); System.out.println(drink.getData()); System.out.println(fruit.getData()); System.out.println(icecream.getData()); //퀴즈 snack의 etc 필드 배열요소 0번에 "10개묶음"문자열을 저장하시오 String[] temp = snack.getEtc(); //가져온값 어떻게 저장? = temp라는 바구니 만들고 거기에 저장해야지 temp[0] = "10개묶음"; //0번에 "10개묶음"문자열을 저장 System.out.println(snack.getData()); //snack.setPrice(1000); -> set메소드 없어서 오류 //snack.price = 1000; -> private이라 오류 // 장바구니를 만들어보겠습니다 -> 객체 만들기 Product[] mycarts = new Product[5]; // 장바구니 크기는 5개 mycarts[0] = drink; mycarts[1] = icecream; //mycarts[2] = drink; mycarts[3] = fruit; mycarts[4] = snack; //배열이므로 반복문으로 출력할수있습니다 -getDAta()메소드 사용 for(int i=0; i<mycarts.length;i++){ if(mycarts[i] != null) // 장바구니[2] 2번방은 비어있어서 null이 나와욤 System.out.println(mycarts[i].getData()); //mycarts[i]가 NULL일때는 메모리에 할당이 안된 상태 -메소드를 쓸수없는 상태 } } }
오늘 배운것 정리 :
'보안' 카테고리의 다른 글
2024.01.09.화.day8 (0) 2024.01.09 2024.01.08.월.day7 (0) 2024.01.08 2024.01.04.목.day5 (0) 2024.01.04 2024.01.03.화.day4 (0) 2024.01.03 2024.01.02.월.day3 (0) 2024.01.02 다음글이 없습니다.이전글이 없습니다.댓글