DAY53 : TIL [자바 문법]

안휘원·2021년 11월 4일
3

spartacodingclub

목록 보기
31/39

📚 LECTURE

  • 메소드
    - 내가 명령을 내릴 것들의 모음에 이름을 붙여서 사용하는 것
    - 무조건 클래스 안에 작성
    - 구조:
public (반환타입) 메소드명(파마리터) {
  // 명령 내용
  return (반환값)
}
    
//예시
public class Prac {

    // 파라미터 X, 반환값 X
    public static void simplePrint() {
        System.out.println("파라미터도 없고, 반환값도 없어요!");
    }

    // 파라미터 O, 반환값 X
    public static void simpleSum(int num1, int num2) {
        System.out.println("num1 :" + num1 + ", num2: " + num2);
    }

    // 파라미터 X, 반환값 O
    public static int simpleReturn() {
        return 3;
    }

    // 파라미터 O, 반환값 O
    public static int sum(int num1, int num2) {
        return num1 + num2;
    }

    public static void main(String[] args) {
        simplePrint();

        simpleSum(1, 2);

        int ret1 = simpleReturn();  // 반환을 하기 때문에 받아줄 변수(ret)가 필요.
        System.out.println(ret1);

        int ret2 = sum(10, 7);
        System.out.println(ret2);
    }
}
  • 반복문
    - 구조:
for(시작조건;반복을계속할조건;더하기){
  명령
}

//예시
for(int i=0;i<13;i++){
  System.out.println(fruits.get(i));
}

// 예시: 과일목록 차례대로 인쇄하기
public class Prac {

    public static void main(String[] args) {
        //과일 목록 준비하기
        List<String> fruits = new ArrayList<>();
        fruits.add("감");
        fruits.add("배");
        fruits.add("감");
        fruits.add("딸기");
        fruits.add("수박");
        fruits.add("메론");
        fruits.add("수박");
        fruits.add("딸기");
        fruits.add("메론");
        fruits.add("수박");
        fruits.add("메론");
        fruits.add("수박");
        fruits.add("감");
        System.out.println(fruits);

        //과일 목록 차례대로 인쇄하기 - 반복문 없이
        System.out.println(fruits.get(0));
        System.out.println(fruits.get(1));
        System.out.println(fruits.get(2));
        System.out.println(fruits.get(3));
        System.out.println(fruits.get(4));
        System.out.println(fruits.get(5));
        System.out.println(fruits.get(6));
        System.out.println(fruits.get(7));
        System.out.println(fruits.get(8));
        System.out.println(fruits.get(9));
        System.out.println(fruits.get(10));
        System.out.println(fruits.get(11));
        System.out.println(fruits.get(12));

        //과일 목록 차례대로 인쇄하기 - 반복문과 함께
        for (int i = 0; i < fruits.size(); i++) {
            String fruit = fruits.get(i);  // fruits에서 꺼낸 i를 fruit로 저장
            System.out.println(fruit);
        }

        //위의 반복문 최종 완성본
        for (int i = 0; i < fruits.size(); i++) {
            System.out.println(fruits.get(i));
        }
    }
}
  • 조건문 + 반복문 사용 예시:
public class Prac {
    public static int countFruit(String fruit) {
        List<String> fruits = new ArrayList<>();
        fruits.add("감");
        fruits.add("배");
        fruits.add("감");
        fruits.add("딸기");
        fruits.add("수박");
        fruits.add("메론");
        fruits.add("수박");
        fruits.add("딸기");
        fruits.add("메론");
        fruits.add("수박");
        fruits.add("메론");
        fruits.add("수박");
        fruits.add("감");

        int cnt = 0;

        for (int i=0; i<fruits.size();i++) {
            String f = fruits.get(i);

            if (f == fruit) {
                cnt++;  //cnt = cnt + 1이라는 뜻
            }
        }
        return cnt;
    }

    public static void main(String[] args) {
        int gam = countFruit("감");
        int subak = countFruit("수박");
        int straw = countFruit("딸기");
        System.out.println(gam);
        System.out.println(subak);
        System.out.println(straw);
    }
}
  • 클래스
    • 정보를 묶는 것
    • 클래스명과 파일명은 항상 일치해야 함
  • 생성자
    • 클래스명과 똑같은 이름을 가진 메소드
    • 클래스 변수를 새로 생성 시 사용
  • this
    • 사용함으로써, 클래스 전체(빵틀)가 아니라 객체 하나의 값(빵)만 바꾼다
//예시
public class Course {
    // title, tutor, days 가 Course 라는 맥락 아래에서 의도가 분명히 드러나죠!
    public String title;
    public String tutor;
    public int days;

    // 이렇게 아무런 파라미터가 없는 생성자를 기본생성자 라고 부릅니다.
    public Course() {

    }

    public Course(String title, String tutor, int days) {
        // this 는 "이것" 이죠? 클래스 변수를 가리킵니다.
        this.title = title;
        this.tutor = tutor;
        this.days = days;
    }
}
  • Getter, Setter
    - 메소드는 밖에서 호출이 되어야 하는 것이므로 public 사용.
    - Setter 값을 지정해주는 것이므로, 돌려주는 게 딱히 필요 없는 void 사용.
//Getter
public 반환타입 메소드명(재료) {
    명령
    return 반환값;
}

//Setter
public 리턴타입 메소드명 (재료) {
    명령
}
profile
우당탕탕 개발자 성장일지

1개의 댓글

comment-user-thumbnail
2021년 11월 5일

반복문 없이 모두 출력하는... 광기가 느껴지네요...ㅎ 고생많으셨습니다 😭

답글 달기