728x90

 

JAVA1 - 14.1. 나의 앱 만들기 - 오리엔테이션1

 

사업의 메커니즘

 

나의 현실을 자바를 통해서 어떻게 구원받을 것인가?

다음시간부터는 궁리한 것을 구현하는 방법을 배워보자

 

 

 

JAVA1 - 14.2. 나의 만들기 - 기본 기능 구현

 

내가 팔고 싶은 물건의 부가가치세 10% 알아내야한다

System.out.println("Value of supply : " + 10000.0);
System.out.println("Value of supply : " + 10000.0*0.1);

결과값 1000.0

여기까지는 계산기가 편하겠지만 아래부터는 자바가 좋다

 

System.out.println("Value of supply : " + 10000.0);
System.out.println("VAT : " + 10000.0*0.1);
System.out.println("Total : " + ( 10000.0 + 10000.0*0.1)); // 공급가+부가가치세로 최종 판매가 도출
System.out.println("Expense : " + ( 10000.0*0.3)); // 얼마를 벌었는지 알려면? 쓴 비용을 빼야함(ex:재료값,장비값,인건비등)
System.out.println("income : " + ( 10000.0 - 10000.0*0.3)); // 공급가-비용=수입

System.out.println("Dividend 1 : " + ( 10000.0 - 10000.0*0.3) * 0.5); // 배당1
System.out.println("Dividend 2 : " + ( 10000.0 - 10000.0*0.3) * 0.3); // 배당2
System.out.println("Dividend 3 : " + ( 10000.0 - 10000.0*0.3) * 0.2); // 배당3
결과값
Value of supply : 10000.0
Value of supply : 1000.0
Total : 11000.0
Expense : 3000.0
income : 7000.0
Dividend : 3500.0
Dividend : 2100.0
Dividend : 1400.0

 

이클립스 Find/Replace 기능

원하는 문자 또는 숫자를 원하는 내용으로 스위칭해주는 기능

[상단search 버튼] or [상단 Edit ]-[Find/Replace]

 


 

 

JAVA1 - 14.3. 나의 만들기 - 변수도입

 

 

한번에 같은 변수명으로 변경하는 기능

   - 10000.0이라는 공급가 숫자를 변수 valueOfSupply 한방에 바꿔줌

   - Preview기능 참고

   - 주의사항 : 일괄변환시 의도치않은 바꿔선 안될 글자도 바꿀 있기에 조심(코드양이 많을시 특히)

 

[바꾸기를 원하는 글자 우클릭]-[Refactor]-[Extract Local Variale]

 

 

이클립스, 써져있는 숫자를 아직 만들지 않은 변수로 바꿀 경우

빨간밑줄 에러 표시 뜨고 해결책으로 해당 변수명을 만들건지 물어보는 툴팁이 뜬다

변경 숫자의 데이터 타입을 보고 데이터 타입과 해당 변수명을 윗줄에 만들어준다

변수나 값 하나만도 가능하고, 식 전체도 가능

 

 

변수 도입(변수로 변환과정, 코드 간소화)

1) 위의 코드에서 공급가인 10000 변수 valueOfSupply 변경

2) 부가가치세인 0.1 VAT 변경 & 변수 설정

3) 비용인 0.3 Expense 변경 & 변수 설정

4) valueOfSupply*vatRate식을 VAT 변경 & 변수 설정

5) valueOfSupply + vat식을 total 변경 & 변수 설정

6) valueOfSupply - expense식을 income으로 변경 & 변수 설정

7) (valueOfSupply - expense) * 0.5식을 각각 dividend1~3으로 변경 & 변수 설정

8) 마지막 코드정리 : 변수들 위로 올려서 보기좋게. println()들만 모아서 아래로

 

  • 수학식처럼 최대 풀어서 쓰고, 이고잉님 예제처 하나환과정 거치거나 정리해서 코드간소화하는 훈련!

 

 

# 이것이 코드 간소화인 것인가? 컬쳐쇼크

점점 복잡해져가는 코드가 저렇게 간단하게...

개인적으로 더 잘하고 싶게끔 의욕을 불태우게 하는 내용이었다

 

# 음… 저런 코드개선 작업에서

중간값의 변수를 코드하는거랑 전체식에서 초기에 계산값의 변수를 그냥 두는거랑 뭐가 빠를까…?

일단 지금은 빠르게 자바 전체 틀부터 잡자

 


 

JAVA1 - 14.4. 나의 만들기 - 입력값 도입

 

고객 혹은 유저가 지불한 혹은 입력한 값을 출력값에 반영하도록 코드를 짜보자

 

공급가valueOfSupply 값을 서로 다른 출력값으로 주는 프로그램을 만들고 싶을

아래 2 args 입력값이 들어오도록 약속이 되어있으며, 이클립스에서

[상단 run버튼의 아래화살표 누르고 Run configurations 클릭] - [Java application] -[ accounting app(클래스명) 클릭] - [arguments] argument항목에 20000.0넣고 name 항목에도 클래명에 추가로 20000.0 적어서 알리고 apply 클릭

(혹시 목록에 없다면 클래스를 실행시키고 다시 확인해볼 것)

 

 

3번에서 밑줄에 빨간줄 에러표시가 것은 2 args 입력값을 받게 되어있는데 1번에서 2번의 데이터 타입을 Str타입으로 지정해줬고 따라서 2 args 데이터타입은 str인데 값을 double 타입인 3 args 넣을려고 하니 에러표시가

*String[] args의미 = 데이터상으로 문자열을 값으로 하는 배열

 

검색 해결 : string to double java

 - Double.parseDouble()

 

 

만들고 있는 어플리케이션에서 자주쓰는 것들을 추가하고 싶다면?

run configuration에서 아까 arguments 값을 넣었던 AccountApp(클래스명) 우클릭 Duplicate - 원하는 arguments값과 naming

 

 

실행할 때마다 이클립스는 켜야하는 번거로움 해결

cmd 실행

(명령어입력) java 파일명  : 에러발생

(명령어입력) java 파일명 args수치입력 : ex)java AccountingApp 3333.0

 - 다른 컴퓨터에 자바파일만 있으면 손쉽게 실행가능

 - 자바가 없을 경우, launch4j같은 프로그램으로 JVM까지 통째로 실행파일 포함시켜서 쓸려는 컴퓨터에 자바 환경설정이 안어있어도 실행가능하게한다

 

 


 

 

JAVA1 - 14.5. 나의 만들기 - 오리엔테이션2

 

수업방향 : java1 수업을 기초로 다른 필요한 것들을 베워나가면 된다

 

 

728x90
반응형
728x90

 

JAVA1 - 12.4 직접 컴파일하고 실행하기 : 라이브러리 사

cmd

OkJavaGoInHome.java 입력

import org.opentutorials.iot.Elevator;

→ 의미 : org 밑에 opentutorials 밑에 iot 밑에 Elevator 불러 상태. Elevator 치면 이녀석인 . OkJavaGoInHome.java 같은 디렉토리에 있는 org폴더에 opentutorials폴더에 iot폴더 안에 있는

     - import '불러오다'라는 뜻

     - org부터 iot까지 패키지라고 부름

 

개념정리

Elevator.java 컴파일하면 Elevator.class파일이 생기고, 클래스 파일을 로딩하는 코드가 import org.opentutorials.iot.Elevator; 이것. 이런 절차로 Elevator 사용할 있게 된다

 

-classpath = -cp

 

이렇게 다른 라이브러리를 끌어와 쓸 때 필히 경로지정이 필수인데 이 경로가 변경될 경우 로딩시 에러난다.

어떻게 해결할까?

여기서 찾아주세요 하는게 --class-path 또는 -cp

(현재 디렉토리에서도 찾아야 하니 .이라고 치고, 윈도에서는 ;세미콜론으로 구분하고 ,리눅스에서는 :콜론)

 - 새경로 지정 & 컴파일 명령어 : javac -cp ".;폴더명" 파일명

 - ex) javac -cp ".;lib" OkJavaGoInHome.java

 

위의 경우 lib폴더 같은 경로에 있으면 찾아지나 lib폴더 밑에있다면 에러뜬다. lib 안에 있다고 명시적으로 컴퓨터한테 알려줘야한다

 - java -cp "lib" OkJavaGoInHome : 명시적으로 "lib"이라고 해줘야 lib에서만 찾게됨. 같은 디렉토리에서는 찾지않음

 - java -cp ".;lib" OkJavaGoInHome : 현재디렉토리라는 의미의 .; 추가

 

 

※ 소프트웨어는 혼자 만드는게 아닌 다른 사람들이 만든 라이브러리들 이용해서 나의 소프트웨어를 만들어가는 것이기에 다른 사람들이 만든 라이브러리 살펴보는 것은 견문을 넓히는 중요한

 

 

 


 

 

JAVA1 - 12.5 직접 컴파일하고 실행하기 : 입력과 출력

컴파일시 입력값을 줘서 입력값에 따라서 다르게 동작하는 프로그램을 어떻게 실행시킬지 알아볼

 

javac OkJavaGoInHomeInput.java 컴파일하면 OkJavaGoInHome.java class파일이 생기고,

파일이 쓰는 다른 class파일들도 자동으로 컴파일 된다

 

args 프로그램의 입력값을 받는 녀석

args 같아야함

들어오는 값은 args[0] 두번째 값은 args[1] 써서 가져올 있음

 

*첫째값과 두번째값을 주는 방법

첫번째값, 두번째값 표시는 띄어쓰기

cmd 명령어 : java OkJavaGoInHomeInput "Java APT 507" 15.0

                                                        (첫번째값)    (두번째값)

메커니즘

첫번째값 Java APT 507 args[0]으로 들어가서 String id String타입 id값이 되고,

두번째값 15.0 args[1] 들어가서 String bright String타입 bright 값이 되는

 

그럼 id bright 들어가 있는 아래의 Elevator(id), Security(Id) 등에 변수로 한번에 적용되는 메커니즘이다

 

 

cmd에서 인수(args) 넣을 첫번째값,두번째 값을 아래처럼 바꾸면 된다

 

 

 

 

 

728x90
반응형
728x90

 

JAVA1 - 11.1. 입력과 출력

프로그램은 들어오는 정보인 입력을 처리해서 출력을 만들어내는

우리가 사용하는 프로그램의 입력값을 어떻게 주는지 알아볼

다양한 것들이 입력값이 될 수 있는데

 

Argument : 프로그램을 실행할 어떤 텍스트 정보를 주는

File : 어떤 파일의 내용을 읽어서 입력되는 경우, 파일의 내용이 입력값

Network : 웹사이트 이용으로 정보를 받아서 쓰는 것도 입력

Audio : 말을 해서 프로그램이 이걸 알아듣는 경우 ex) iPhone Siri

Program : 다른 프로그램이 실행한 출력결과를 입력 받아 쓰는 경우

 

 

id값을 프로그램 실행시마다 바꾸는건 상당히 피곤한

사용자가 텍스트값을 입력해서 세팅할 있게 있을까?

검색 : java popup input text swing

JOptionpane 기능 쓸려면 임포트

 

복수 데이터를 입력하고 싶다면?

JOptionpane 가진 변수 하나더 만들어서 두번 받기

String id = JOptionPane.showInputDialog("Enter a ID");

String bright = JOptionPane.showInputDialog("Enter a Bright level");

 

 

import org.opentutorials.iot.Elevator;
import org.opentutorials.iot.Security;


// Elevator call
Elevator myElevator = new Elevator("JAVA APT 507");
myElevator.callForup(1);


// Security off
Security mySecurity = new Security("JAVA APT 507"); // 누구의 시큐리티인지 알리기해 ()작성
mySecurity.off();


// Light on
Lighting hallLamp = new Lighting("JAVA APT 507 / Hall Lamp"); // 자바 아파트 507호의 홀램프라는 의미
hallLamp.on();


Lighting floorLamp = new Lighting("JAVA APT 507 / floor Lamp");
floorLamp.on();


DimmingLights moodLamp = new DimmingLights(id+" moodLamp");
moodLamp.setBright(Double.parseDouble(bright)); //setBright()가 실수만 받아서 str을 double로 컨버팅하는 .parseDouble() 메소드사용
moodLampe.on();

 

 


 

JAVA1 - 11.2 . 입력과 출력 : arguments & parameter

 

parameter = 매개변수

args = arguments = 인자

 

args 얘도 변수

프로그램과 프로그램을 사용하는 사람 사이에 값을 매개해준다고 해서 매개변수라고 한다

 

*개념

arguments 값이 public static void main(String[] args) { 부분의 args 들어간다

위의 String[](대괄호가 붙은 문자열) 문자열로만 이루어져 있는 배열이라고 하는 데이터

(배열은 추후 배울 예정이니 지금은 스킵)

 

핵심은 args 사용자가 입력한 값이 들어올 것이고, {} 안에서는 args 사용자가 입력한 값이다

args에서 첫번째 값은 0이다. (프로그램에서는 0부터 시작하는게 )

두번째는 1

 

 

자바에서 입력값을 받는 방법은

JOptionPane.showInputDialog("");

같은 방법도 있지만 일반적으로는 인자(args) 사용한다

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

+ Recent posts