250x250
Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

개린이 개발노트

국비지원 JAVA(자바) 프로그래밍 웹개발자 (계산기 만들기, 오버로딩 ,접근제한자,캡슐화,에어컨 만들기) 본문

국비지원(국비교육) 웹 개발자 과정

국비지원 JAVA(자바) 프로그래밍 웹개발자 (계산기 만들기, 오버로딩 ,접근제한자,캡슐화,에어컨 만들기)

개린이9999 2022. 11. 25. 00:35
728x90

ctrl+shift+enter 누르면 한번에 정리 가능

계산기 만들기 이어서



계산을 처리할 방법을 선택해서 1. 더하기 2.빼기 3.곱하기 4.나누기 / 그 외는 종료

1

계산할 숫자 두개를 입력하세요: 13 20

(ex 더하기 계산을 처리합니다.)

결과: 33

계산을 처리할 방법을 선택해서 1. 더하기 2.빼기 3.곱하기 4.나누기 / 그 외는 종료

2

마지막에 다른 숫자를 입력하면 종료

 

정답 1.

package 클래스;

 

public class CalcMain {

 

        public static void main(String[] args) {

              

               Calc calc  = new Calc();

              

               //순차적으로 매개변수를 보내진다.

               //Calc 클래스에 num1 5 들어가고 num2 3 들어간다.

               //그리고 Calc 클래스에서 리턴이 num1 + num2 더하라고 명령하고

               // 실행된 값을 호출한 CalcMain으로 calc.add 보내진다.

               System.out.println(calc.add(5, 3));

               System.out.println(calc.minus(10, 3));

               System.out.println(calc.mul(7, 3));

               System.out.println(calc.div(10, 3));

              

              

 

        }

 

}


package 클래스;

 

public class Calc {

       

       

        // 정수값을 되돌려

        //int num1 num2 매개변수

        public int add(int num1, int num2) {

              

               //여기서 되돌려주는게 return

              

               System.out.println("더하기 계산을 처리합니다");

              

               return num1 + num2;

              

        }

       

        public int minus(int num1, int num2) {

              

               System.out.println("빼기 계산을 처리합니다");

              

               return num1 - num2;

              

        }

       

        public int mul(int num1, int num2) {

              

               System.out.println("곱한 계산을 처리합니다");

              

               return num1 * num2;

              

        }

       

        public double div(double num1, double num2) {

               //리턴 타입에 따라서 실수 또는 정수로 입력된다.

               //소수점을 표시하려면 메소드도 double 하고 매개변수도 double 애초에 설정해서 들어가면 좋다.

              

               System.out.println("나눈 계산을 처리합니다");

              

               return num1 / num2;

              

        }

 

}


package 클래스;

 

import java.util.Scanner;

 

public class CalcMain {

 

 

        public static void main(String[] args) {

              

               Calc calc  = new Calc(); //calc 클래스에 있는 메소드를 호출하기 위해서는 객체를 새롭게 선언해야 된다.

              

               Scanner sc = new Scanner(System.in);

              

               //계산을 처리할 방법 선택

               //[1.더하기 2.빼기 3.곱하기 4.나누기 / 그외는 종료]

              

               //계산할 숫자 두개를 입력하세요 : ex) 13  20

               //~~~계산을 처리합니다.

               //결과 : 결과값

               //완전히 종료가 아닌 처음부터 다시 반복시작

               //마지막에 계산 처리 선택에서 다른 숫자를 누르게 되는 순간 종료되게

              

               int a; //계산 처리 선택 변수

               int nu1, nu2; //정수 입력 변수

               //메인에서 선언한 변수 이름과 클래스에서 선언한 변수 이름이 같아도 아예 다른것

              

              

               //while(true) 무한루프

               //반복문 탈출은 break;

              

               while(true) {

              

               //계산 처리 스캐너

               System.out.println("계산을 처리할 방법 선택[1.더하기 2.빼기 3.곱하기 4.나누기 / 그외 종료]");

               a = sc.nextInt();

              

              

              

                       switch(a) {

                              case 1:

                                     

                                      //정수 입력 스캐너

                                      System.out.print("정수를 입력하세요 :");

                                      nu1 = sc.nextInt(); //정수 입력 변수 1

                                      nu2 = sc.nextInt(); //정수 입력 변수 2

                                      System.out.println("결과 : " + calc.add(nu1, nu2));

                                     

                                              break;

                                             

                              case 2:

                                      System.out.print("정수를 입력하세요 :");

                                      nu1 = sc.nextInt(); //정수 입력 변수 1

                                      nu2 = sc.nextInt(); //정수 입력 변수 2

                                      System.out.println("결과 : " + calc.minus(nu1, nu2));

                                     

                                              break;

                                             

                              case 3:

                                      System.out.print("정수를 입력하세요 :");

                                      nu1 = sc.nextInt(); //정수 입력 변수 1

                                      nu2 = sc.nextInt(); //정수 입력 변수 2

                                      System.out.println("결과 : " + calc.mul(nu1, nu2));

                                     

                                              break;

                                             

                              case 4:

                                      System.out.print("정수를 입력하세요 :");

                                      nu1 = sc.nextInt(); //정수 입력 변수 1

                                      nu2 = sc.nextInt(); //정수 입력 변수 2

                                      System.out.println("결과 : " + calc.div(nu1, nu2));

                                     

                                              break;

                                             

                              default:

                                      System.out.println("프로그램을 종료합니다.");

                                     

                                     

                       } //스위치문 부분

 

                       if(a >= 5)

                              break;

                      

        } // 와일문 부분

              

              

              

 

        }

 

}

※결과값

계산을 처리할 방법 선택[1.더하기 2.빼기 3.곱하기 4.나누기 / 그외 종료]
1
정수를 입력하세요 :20 3
더하기 계산을 처리합니다
결과 : 23
계산을 처리할 방법 선택[1.더하기 2.빼기 3.곱하기 4.나누기 / 그외 종료]
2
정수를 입력하세요 :5 4
빼기 계산을 처리합니다
결과 : 1
계산을 처리할 방법 선택[1.더하기 2.빼기 3.곱하기 4.나누기 / 그외 종료]
3
정수를 입력하세요 :5 5
곱한 계산을 처리합니다
결과 : 25
계산을 처리할 방법 선택[1.더하기 2.빼기 3.곱하기 4.나누기 / 그외 종료]
4
정수를 입력하세요 :10 3
나눈 계산을 처리합니다
결과 : 3.3333333333333335
계산을 처리할 방법 선택[1.더하기 2.빼기 3.곱하기 4.나누기 / 그외 종료]
6
프로그램을 종료합니다.

package 클래스;

 

public class Calc {

       

       

        // 정수값을 되돌려

        //int num1 num2 매개변수

        public int add(int num1, int num2) {

              

               //여기서 되돌려주는게 return

              

               System.out.println("더하기 계산을 처리합니다");

              

               return num1 + num2;

              

        }

       

        public int minus(int num1, int num2) {

              

               System.out.println("빼기 계산을 처리합니다");

              

               return num1 - num2;

              

        }

       

        public int mul(int num1, int num2) {

              

               System.out.println("곱한 계산을 처리합니다");

              

               return num1 * num2;

              

        }

       

        public double div(double num1, double num2) {

               //리턴 타입에 따라서 실수 또는 정수로 입력된다.

               //소수점을 표시하려면 메소드도 double 하고 매개변수도 double 애초에 설정해서 들어가면 좋다.

              

               System.out.println("나눈 계산을 처리합니다");

              

               return num1 / num2;

              

        }

 

}

 

정답2. 

 

 

 


값을 입력받아서 해당하는 숫자가 홀, 짝 

메인메서드

클래스


클래스 메서드 활용


오버로딩 


매서드 내에서 다른 매서드 출력도 가능하다.

 

재귀호출


팩토리얼 계산

5! 5x4x3x2x1.. 정수를 입력받아 입력받은 정수의 팩토리얼 값을 출력

정수 입력:5

결과 120: 

 



접근제한자 194p

캡슐화

public-> 클래스, 변수(필드), 생성자, 매서드 -> 전부 접근가능

 

default-> 클래스, 변수(필드),생성자, 매서드-> 동일한 패키지 접근 가능

 

protected-> 변수(필드), 생성자, 매서드 -> 다른 패키지만 접근x

 

priviate-> 변수(필드),생성자,매서드-> 모든 클래스 접근 불가능

private의 활용 

접근제한자 활용이유 보안, 은닉

다른 패키지라 접근 가능

 

protected

삼항 연산자

(조건식)이면 참:거짓

 

package 에어컨만들기;

 

import java.util.Scanner;

import java.util.concurrent.TimeUnit;

import static java.lang.Thread.sleep;

public class Main {

 

      public static void main(String[] args) throws InterruptedException{

           

            Aircon lgAircon = new Aircon();

            Scanner sc = new Scanner(System.in);

            String isOn;

           

            int time = 0;

            boolean     isSetTemp = false;

           

            System.out.print("에어컨을 키시겠습니까?[yes/no]");

            isOn=sc.next();

           

            if (isOn.equals("yes")) {

                  lgAircon.setPower(true);

                  lgAircon.setAirconState();

                 

                  while(true) {

                        sleep(500);

                        time++;

                        switch (lgAircon.getWindStep()) {

                        case 1:

                              if (time>=60) {

                                    isSetTemp=true;

                              }

                              break;

 

                        case 2:

                              if (time>=40) {

                                    isSetTemp=true;

                              }

                              break;

                        case 3:

                              if (time>=20) {

                                    isSetTemp=true;

                              }

                        break;

                        }

                       

                  if (isSetTemp) {

                        if (lgAircon.isCooler()) {

                              lgAircon.setCurrTemp(-1);

                              if (lgAircon.isHeater()) {

                                    lgAircon.setCurrTemp(+1);

                              }

                                    lgAircon.airconInfo();

                                    time=0;

                                    isSetTemp=false;

                        }

                        if (lgAircon.getCurrTemp()==lgAircon.getSetTemp()) {

                              System.out.println("에어컨 종료합니다.");

                              break;

                              }

                        }

                  }

                 

            }

           

      }

}

 


package 에어컨만들기;

 

import java.util.Calendar;

import java.util.Scanner;

 

public class Aircon {

 

     

      boolean isPower; // On off

      int   setTemp; // 에어컨 온도 설정 관련

      int currTemp; // 월별 평균기온 배열변수

      boolean isCooler; //냉방

      boolean isHeater; //난방

      int windStep; // 바람세기 1,2,3

     

      Aircon() {

            int[] montTemp = { -10, 3, 10, 15, 22, 23, 24, 30, 24, 20, 15, 5};

            Calendar now = Calendar.getInstance();

            int month = now.get(Calendar.MONTH);

            currTemp = montTemp[month];

           

            isPower = false;

            setTemp = 25;

            isCooler = false;

            isHeater = false;

            windStep =1;

           

      }

 

      public void airconInfo() {

           

            String onoffStr = (isPower)   ? "ON" : "OFF";

            String coolerStr = (isCooler) ? "ON" : "OFF";

            String heaterStr = (isHeater) ? "ON" : "OFF";

           

            System.out.println("===에어컨 정보 출력===");

            System.out.println("전원:"+onoffStr);

            System.out.println("현재온도:"+currTemp);

            System.out.println("설정온도:"+setTemp);

            System.out.println("냉방:"+coolerStr);

            System.out.println("난방:"+ heaterStr);

            System.out.println("바람 세기:"+windStep+"");

      }

     

      public void setAirconState() {

            Scanner sc = new Scanner(System.in);

           

            System.out.println("현재 온도는"+ currTemp + " 입니다.");

            System.out.print("온도 설정:");

            setTemp=sc.nextInt();

           

            System.out.println("설정 온도는"+setTemp+" 입니다.");

           

            System.out.println("바람 세기 설정:");

            windStep = sc.nextInt();

           

            System.out.println("현재 바람세기"+ windStep + " 입니다.");

     

            if (currTemp>setTemp) {

                  System.out.println("냉방 시작");

                  isCooler=true;

                  isHeater=false;

                 

            }else if (currTemp<setTemp) {

                        System.out.println("난방 시작");

                        isCooler=false;

                        isHeater=true;         

                  }else {

                        isCooler=false;

                        isHeater=false;

                  }

            }

 

 

      public void setPower(boolean isPower) {

            this.isPower = isPower;

      }

     

 

      public void setTemp(int setTemp) {

            this.setTemp = setTemp;

      }

 

 

      public boolean isCooler() {

            return isCooler;

      }

 

           

      public boolean isHeater() {

            return isHeater;

      }

 

 

 

      public void setWindStep(int windStep) {

            this.windStep = windStep;

      }

 

      public int getWindStep() {

            return windStep;

      }

     

      public void setCurrTemp(int n) {

            currTemp = currTemp+n;

      }

 

      public int getSetTemp() {

            return setTemp;

      }

 

      public void setSetTemp(int setTemp) {

            this.setTemp = setTemp;

      }

 

      public int getCurrTemp() {

            return currTemp;

      }

     

     

}

 

 

 

 

728x90