첼로그 2023. 3. 19. 02:22

* 6) 메소드

 

- 반환값 (return)

// 호텔 관리하는 프로그램


    // 호텔 전화번호 ▽ (반환)
    public static String getPhoneNumber() { // 방법1)
        String phoneNumber = "02-1234-5678";
        return phoneNumber; // phoneNumber를 반환하기위해 앞에 return phoneNumber;
    }
    // 호텔 번호(문자열)로 반환하기 위해선, String 붙임. △
    // void는 반환값(return)이 없는 메소드라고 하는것



    // 호텔 주소 ▽
    public static String getAddress() {
        return  "서울시 어딘가"; // 방법2) △위처럼 해도되지만, 이렇게 해도됨. 방법2
    }

    // 호텔 액티비티 ▽
    public  static  String getActivities() {
        return "볼링장, 탁구장, 노래방"; // 방법3) △△ 위처럼 해도되지만, 이렇게 해도됨.
    }



    // void는 반환값(return)이 없는 메소드라고 하는것 ▽
    public static void main(String[] args) {
        // 반환값, Return
        // ※ 참고로 9~10 번째와 33~34 번째 phoneNumber는 다른값. 이름 바꿈,
        String contactNumber = getPhoneNumber(); // @8번 getPhoneNumbe  = contactNumbe로 반환.
        System.out.println("호텔 전화번호 : " + contactNumber);

        String address = getAddress();
        System.out.println("호텔 주소 : "+ address );

        System.out.println("호텔 액티비티 : " + getActivities());

    }
}

        호텔 전화번호 : 02-1234-5678
        호텔 주소 : 서울시 어딘가
        호텔 액티비티 : 볼링장, 탁구장, 노래방

 

- 문제 1) 

   - for문 반복문 생각자체를(왜 전체길이,등등 이걸넣어야하는지) 어려워함

   -  2중으로 되서? 복잡함

    public static String getHiddenData (String data, int index) { // (name/id/phone = 개인정보 data, *로바꿀 시작위치 =ㅜdata)
        String hiddenData = data.substring(0, index); // 결과를 저장할거 (처음시작할위치,비공개처음시작위치)
//        for (int i = index; i < data.length(); i++ ) // ▽하고 같은것
        for (int i = 0; i < data.length() - index ; i++) { // 전체길이 - 비공개처음시작위치
            // △ (주민등록번호 기준)    i < 14자리 - 8자리뒤부터) = 6번 만큼, ▽ * 이 들어감
            hiddenData += "*"; // 나**
        }
        return hiddenData; // 개인정보 일부를 *로바꿔줌 ( 반환 hiddenData )
    }



    public static void main (String[] args) {
        String name = "나코딩"; // 이름
        String id = "990130 - 1234567"; // 주빈등록번호
        String phone = "010-1234-5678"; // 전화번호

        System.out.println("이름 : " + getHiddenData(name, 1)); // 개인정보, 비공개 시작위치
        System.out.println("주민등록번호 : " + getHiddenData (id, 8));
        System.out.println("전화번호 : " + getHiddenData(phone, 9));
    }
}

        이름 : 나**
        주민등록번호 : 990130 -********
        전화번호 : 010-1234-****

 

 

- 문제 2)

getChicken 은 출력문에 그대로 써줄거기때문에 대기, (nene/ kyichon/goobne 저장할 데이터, 메뉴를 *로 바꿀 시작위치)

 

(!!!이해하기 힘듦▽!!!)

getChicken 데이터를 저장할 것을 만들어줌 -> String Chicken =  data.substring(문자열자르기) (0,*로바꿀위치)

 

데이터 전체길이 - star; = (전체길이에서 *를 바꿀위치 빼줌  ) : 남아있음?????? 어렵다??

 

 

... main

getChicken 을 불러와서 (nene문자열에, 9부터 *로바꿔줌)???? 제대로 해석하는게 맞나??

어렵다,,,

public static String getChicken(String data, int star) { // nene/ kyichon/goobne 저장할 데이터, 메뉴를 *로 바꿀 시작위치
    String Chicken = data.substring(0, star); // △를 적어준다 // 어렵다!!!

    for (int i = 0; i < data.length() - star; i++) { // 데이터 전체길이 - *로 바꿀시작위치 = 나머지는 그대로 배출
        Chicken += "*"; // 치킨값 +
    }
    return Chicken; // 근데 getChicken을 리턴시켜야되는거아니뇨
}



        public static void main (String[] args) {

        String nene = "네네치킨 - 후라이드"; // 네네 (네네치킨 - 후라**) ( 11,9)
        String kyichon = "교촌치킨 - 양념치킨"; // 교촌 (교촌치킨 - ****)  ( 11,7)
        String goobne = "굽네치킨 - 간장치킨"; // 굽네 (굽********) (11,1)

        System.out.println("강백호 : " + getChicken(nene,9) );
        System.out.println("채지수 : " + getChicken(kyichon, 7));
        System.out.println("서태웅 : " + getChicken (goobne,1));
    }
}

        강백호 : 네네치킨 - 후라**
        채지수 : 교촌치킨 - ****
        서태웅 : 굽**********

 

 

* 7) 상속 (하다가 멈춤: this , super문 공부할일이있어서ㅓ)

package chap_07;

public class _Quiz_07_2 {
// 알게된거
// new 객체는 class를 따로 만들어주어야함. (메소드와 구분하기)
// 변수(int String double) , 메소드(void ~ ) 차이 알기






    public static void main(String[] args) {
        HamBurger[] hamBurgers = new HamBurger[3];
        hamBurgers[0] = new HamBurger();
        hamBurgers[1] = new CheeseBurger();
        hamBurgers[2] = new ShrimpBurger();

        System.out.println("주문하신 메뉴를 만듭니다.");
        System.out.println("---------------");

        for (HamBurger hamBurger : hamBurgers) {
            hamBurger.cook();
            System.out.println("---------------");
        }
        System.out.println("메뉴 준비가 완료 되었습니다.");
    }

}




class HamBurger { // 각각의 클래스 생성
    public String name; // 버거이름을 담기위한 name 변수 정의

    public HamBurger() {
        this ("햄버거");

    }

    public HamBurger (String name) {

    }

    public void cook() { // 재료 정보를 표시하는 cook 메소드 정의

    }
}



class CheeseBurger extends HamBurger { // HamBurger 클래스 extends(상속) >> name 변수 필요X
    public void cook() { // 재료 정보를 표시하는 cook메소드 정의

    }
}



class ShrimpBurger extends HamBurger { // HamBurger 클래스 extends(상속) >> name 변수 필요X
    public void cook() { // 재료 정보를 표시하는 cook메소드 정의

    }
}