일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Resource #
- 항해99 #항해플러스 #주니어개발자 #주니어개발자역량강화 #주니어개발자멘토링 #개발자사이드프로젝트 #코딩부트캠프 #코딩부트캠프후기
- 자바#Java#배열예시#연습#기초다지기
- 개발자도서#개발자책#도메인#DDD#도메인주도개발시작하기#개발스터디#
- 국비지원JAVA
- #java#JAVA#프로그래밍#웹개발자
- Spring#spring#스프링#스프링프레임워크#스프링의존성주입#스프링생성자#스프링기본#국비지원#국비교육#국비지원스프링
- 국비지원JAVA#국비지원자바#프로그랭#JSP#국비지원JSP#국비교육JSP#웹개발자#코딩
- db#데이터베이스#오라클#sql
- 국비지원#국비교육#국비지원자바#국비교육자바#css#HTML#JAVA
- 자바
- Java#java#메모리영역#클래스로더#가비지컬렉터
- IntelliJ#인텔리제이#인텔리#단축키
- 국비지원#국비교육
- Java#정처기#비트연산자#정보처리기사
- 국비지원자바#국비교육자바#국비지원java#국비교육java#자바스크립트#프론트엔드
- #
- tibero#티베로#이중화#failvover
- html#HTML#프론트엔드#개발자#코딩#국비지원#국비교육#국비지원프론트엔드#국비지원HTML#국비지원html#국비프론트엔드
- Java#java#자바#다오#디티오#브이오#dao#dto#vo
- Java#JAVA#매개변수
- java
- 항해플러스#항해#항해플러스3기#회고
- Spring#spring#스프링#스프링프레임워크#스프링자동주입#스프링생성자#스프링기본#국비지원#국비교육#국비지원스프링
- 프로그래밍
- spring#Spring#RequestBody#ResponseBody
- Java#컴파일러#자바컴파일러#
- 쿼리스트링#쿼리문자열#바인딩
- 개발자#it도서#도메인#DDD#ddd
- 국비지원JAVA#국비교육JAVA#국비지원자바#국비교육자바#JSP#SERVLET#서블릿#
- Today
- Total
개린이 개발노트
국비지원 JAVA(자바) 프로그래밍 웹개발자 (계산기 만들기, 오버로딩 ,접근제한자,캡슐화,에어컨 만들기) 본문
국비지원 JAVA(자바) 프로그래밍 웹개발자 (계산기 만들기, 오버로딩 ,접근제한자,캡슐화,에어컨 만들기)
개린이9999 2022. 11. 25. 00:35ctrl+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;
}
}
'국비지원(국비교육) 웹 개발자 과정' 카테고리의 다른 글
국비지원 JAVA(자바) 프로그래밍 웹개발자 ( 상속,다형성,추상화) (0) | 2022.11.29 |
---|---|
국비지원 JAVA(자바) 프로그래밍 웹개발자 (싱글톤, 캡슐화, 상속화, 오버라이딩, 다형성 까지) (0) | 2022.11.28 |
국비지원 JAVA(자바) 프로그래밍 웹개발자 (배열,난수 출력, 로또 번호 만들기,클래스, 인스턴스, 객체 ); (1) | 2022.11.24 |
국비지원 JAVA(자바) 프로그래밍 웹개발자 (반복문: 이중for문, while, do~ while; + 배열 찍먹) (0) | 2022.11.23 |
국비지원 JAVA(자바) 프로그래밍 웹개발자(조건문 if문, switch문, for문) (0) | 2022.11.22 |