본문 바로가기
공부/JAVA

2021.11.01 - 국비수업 java 3일차

by 기묜몬 2021. 11. 1.

월요일은 복습day~

그래서 오늘은 지난 2일차 내용을 전반적으로 훑어보고 과제의 풀이를 했다. 

나는 아직 멀었다.. 쉬운 답도 돌아가돌아가~~~~~~~

열심히 하즈아~!~!~!~!

수업을 다 듣고나서 하루 수업 정리를 하자니 양이 방대해지는 느낌이라

내일부터는 수업 중간중간 메모를 하는 습관을 들여야겠다!

 

<지난 과제 오답풀이>

2. 변수와 사칙연산자와 나머지 연산을 활용하여 아래와 같은 내용을 처리하세요.

    1)곰돌이 3마리가 5개씩 빵을 먹은 총 갯수

    2)20개의 빵을 3마리의 곰돌이가 동일하게 먹은 갯수와 남은 갯수

** 내 풀이

===>

    //2-1번

    int bear = 3;
    int bread = 5;
    int tot = bear*bread;
    System.out.println("곰돌이 3마리가 먹은 빵의 총 갯수는 "+tot+"개 입니다.");
    
    //2-2번
    int bread1 = 20;
    int bear1 = 3;
    int tot1 = bread1/bear1;
    int rest = bread1-tot1;
    System.out.println("3마리의 곰돌이가 동일하게 먹은 빵의 갯수는 "+tot1+"개 입니다.");
    System.out.println("남은 빵의 갯수는 "+rest+"개 입니다.");

나는 1번과 2번을 굳이굳이 따로 입력했는데, 선생님의 풀이는 훨씬 쉬웠다.. 

 

** 선생님 풀이

===>

   int bearCnt = 3;

    int perBread = 5;

    int totBread = 20;

    System.out.println("곰돌이 3마리가 5개씩 빵을 먹은 총 갯수 :"+(bearCnt*perBread));

    //2-2

    System.out.println("20개의 빵을 3마리의 곰돌이가 동일하게 먹은 갯수 :"+(totBread/bearCnt)+"와 남은 나머지 빵 : "+       (totBread%bearCnt));

 

- 자바의 입력데이터 처리 방식

 1. Scanner를 활용하기 위해서는 호출을 해야함.

 2. 기본코드 

   Scanner sc = new Scanner(System.in); (호출)

   Scanner : 입력을 처리해주는 객체 (내장된 import가 필요)

   System.in : 사용자에게 입력을 받기 위한 입력 스트림

   자바에서 console창에 입력되는 내용을 Stream형식으로 받아서 처리하는 기본 객체인 InputStream을 말한다.

   sc.nextLine() : enter키를 입력할때까지 데이터를 받아들인다.

   sc.nextInt() : 정수형 데이터를 입력 받는다.

   sc.nextDouble() : 실수형 데이터를 입력 받는다.

  ex) 

 Scanner sc = new Scanner(System.in); ==>호출

 System.out.println("이름을 입력하세요");

 String name = sc.nextLine();

 System.out.println("입력한 이름은 "+name);

 System.out.println("나이를 입력하세요");

    int age = sc.nextInt();

    System.out.println("몸무게를 입력하세요");

    double weight = sc.nextDouble();

    System.out.println("나이:"+age);

    System.out.println("몸무게"+weight);

====>

이름을 입력하세요 

( 김--) 내 이름을 입력하면 그 이후 질문이 순차적으로 뜬다.

 

- 메서드 : 외부에 데이터를 입력받아 기능적인 처리한다.

            - 리턴유형 : 마지막에 리턴할 데이터 유형.

            - 매개변수 : 실제 호출되었을 때, 전달할 데이터의 유형을 선언.

            - 프로세스 처리 : 조건문, 할당처리 등

            - 실제 리턴값 : 해당 메서드가 호출된 곳에 전달할 데이터. 

- static 과 final

     static : 객체들의 공유 메모리 영역

     final : 클래스명 앞에, 필드명 앞에, 메서드명 앞에 사용함.

         필드명 :  변수를 상수화한다. => 한번 할당 후에 변경하지못하게 처리.

         클래스명 앞에는 상속을 할 수 없게 선언

         메서드명 앞에서는 재정의가 불가능하게 처리.

 

 

- 상속 : 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것.

   1) 기본상속

      객체를 상속 관계로 설정해서 사용할 것을 말한다. 

      class Father{ 부모

          String name;

          int height=170;

          

          String getName(){

                 return name;

            }

          }

      class Son extends Father{ 자식

          int weight=70;

      }

      main()

      Son s1 = new Son();

      s1.height

      s1.getName()

      s1.weighr;

 

 상속ex) 

======>

탈 것의 속도 :100km/h

버스의 속도 :100km/h

버스의 승객 :10명

트럭의 속도 :100km/h

트럭의 싣은 물건 중량 :10t

 

상속받고자 하는 자식 클래스명 옆에 extends 키워드를 붙이고, 상속할 부모 클래스명을 적음.
 extends 뒤에는 하나의 부모 클래스만 와야한다.

 

리턴유형은 들어도들어도,,잘 이해가 가지않아서 내일 다시한번 질문해봐야겠다!