개인 공부/하루 공부
3/18 공부
첼로그
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메소드 정의
}
}