JAVA1

나의 앱 만들기 2

수업소개

배우지 않은 개념을 이용해서 나의 앱을 만들어봅시다. 앞으로 여러분이 공부해볼만한 주제들을 소개하는 시간이기도 합니다. 다 보려고 하지 마시고, 흥미 있는 부분까지만 보시면 됩니다. 

 

 

 

강의 5

 

 

 

강의 6

소스코드

변경사항

public class AccountingIFApp {

    public static void main(String[] args) {

		double valueOfSupply = Double.parseDouble(args[0]);
		double vatRate = 0.1;
		double expenseRate = 0.3;
		double vat = valueOfSupply * vatRate;
		double total = valueOfSupply + vat;
		double expense = valueOfSupply * expenseRate;
		double income = valueOfSupply - expense;
		
		double dividend1;
		double dividend2;
		double dividend3;
		
		if(income > 10000.0) {
			dividend1 = income * 0.5;
			dividend2 = income * 0.3;
			dividend3 = income * 0.2;
		} else {
			dividend1 = income * 1.0;
			dividend2 = income * 0;
			dividend3 = income * 0;
		}

		System.out.println("Value of supply : " + valueOfSupply);
		System.out.println("VAT : " + vat);
		System.out.println("Total : " + total);
		System.out.println("Expense : " + expense);
		System.out.println("Income : " + income);
		System.out.println("Dividend 1 : " + dividend1);
		System.out.println("Dividend 2 : " + dividend2);
		System.out.println("Dividend 3 : " + dividend3);

	}

}

 

 

 

강의 7

소스코드

변경사항

public class AccountingArrayApp {

    public static void main(String[] args) {

		double valueOfSupply = Double.parseDouble(args[0]);
		double vatRate = 0.1;
		double expenseRate = 0.3;
		double vat = valueOfSupply * vatRate;
		double total = valueOfSupply + vat;
		double expense = valueOfSupply * expenseRate;
		double income = valueOfSupply - expense;
		
		double[] dividendRates = new double[3];
		dividendRates[0] = 0.5;
		dividendRates[1] = 0.3;
		dividendRates[2] = 0.2;
		
		double dividend1 = income * dividendRates[0];
		double dividend2 = income * dividendRates[1];
		double dividend3 = income * dividendRates[2];

		System.out.println("Value of supply : " + valueOfSupply);
		System.out.println("VAT : " + vat);
		System.out.println("Total : " + total);
		System.out.println("Expense : " + expense);
		System.out.println("Income : " + income);
		System.out.println("Dividend 1 : " + dividend1);
		System.out.println("Dividend 2 : " + dividend2);
		System.out.println("Dividend 3 : " + dividend3);

	}

}

 

 

 

강의 8

소스코드

변경사항

public class AccountingArrayLoopApp {

    public static void main(String[] args) {

		double valueOfSupply = Double.parseDouble(args[0]);
		double vatRate = 0.1;
		double expenseRate = 0.3;
		double vat = valueOfSupply * vatRate;
		double total = valueOfSupply + vat;
		double expense = valueOfSupply * expenseRate;
		double income = valueOfSupply - expense;
		
		

		System.out.println("Value of supply : " + valueOfSupply);
		System.out.println("VAT : " + vat);
		System.out.println("Total : " + total);
		System.out.println("Expense : " + expense);
		System.out.println("Income : " + income);
		
		double[] dividendRates = new double[3];
		dividendRates[0] = 0.5;
		dividendRates[1] = 0.3;
		dividendRates[2] = 0.2;
		
			
		int i = 0;
		while(i < dividendRates.length) {
			System.out.println("Dividend : " + (income*dividendRates[i]) );
			i = i + 1;
		}
		

	}

}

 

 

 

강의 9

소스코드

변경사항

public class AccountingMethodApp {
    public static double valueOfSupply;
	public static double vatRate;
	public static double expenseRate;
	public static void main(String[] args) {
		valueOfSupply = 10000.0;
		vatRate = 0.1;
		expenseRate = 0.3;
		print();
	}

	public static void print() {
		System.out.println("Value of supply : " + valueOfSupply);
		System.out.println("VAT : " + getVAT());
		System.out.println("Total : " + getTotal());
		System.out.println("Expense : " + getExpense());
		System.out.println("Income : " + getIncome());
		System.out.println("Dividend 1 : " + getDiviend1());
		System.out.println("Dividend 2 : " + getDiviend2());
		System.out.println("Dividend 3 : " + getDiviend3());
	}

	public static double getDiviend1() {
		return getIncome() * 0.5;
	}
	public static double getDiviend2() {
		return getIncome() * 0.3;
	}
	public static double getDiviend3() {
		return getIncome() * 0.2;
	}

	public static double getIncome() {
		return valueOfSupply - getExpense();
	}

	public static double getExpense() {
		return valueOfSupply * expenseRate;
	}

	public static double getTotal() {
		return valueOfSupply + getVAT();
	} 

	public static double getVAT() {
		return valueOfSupply * vatRate;
	}

}

 

 

강의 10

소스코드

변경사항

class Accounting{
    public static double valueOfSupply;
	public static double vatRate;
	public static double expenseRate;
	public static void print() {
		System.out.println("Value of supply : " + valueOfSupply);
		System.out.println("VAT : " + getVAT());
		System.out.println("Total : " + getTotal());
		System.out.println("Expense : " + getExpense());
		System.out.println("Income : " + getIncome());
		System.out.println("Dividend 1 : " + getDiviend1());
		System.out.println("Dividend 2 : " + getDiviend2());
		System.out.println("Dividend 3 : " + getDiviend3());
	}

	public static double getDiviend1() {
		return getIncome() * 0.5;
	}
	public static double getDiviend2() {
		return getIncome() * 0.3;
	}
	public static double getDiviend3() {
		return getIncome() * 0.2;
	}

	public static double getIncome() {
		return valueOfSupply - getExpense();
	}

	public static double getExpense() {
		return valueOfSupply * expenseRate;
	}

	public static double getTotal() {
		return valueOfSupply + getVAT();
	} 

	public static double getVAT() {
		return valueOfSupply * vatRate;
	}
}
public class AccountingClassApp {
	
	public static void main(String[] args) {
		Accounting.valueOfSupply = 10000.0;
		Accounting.vatRate = 0.1;
		Accounting.expenseRate = 0.3;
		Accounting.print();
		// anotherVariable = ...;
		// anotherMethod = ...;
	}

	

}

 

 

 

강의11

소스코드

변경사항

class Accounting{
    public double valueOfSupply;
	public double vatRate;
	public double expenseRate;
	public void print() {
		System.out.println("Value of supply : " + valueOfSupply);
		System.out.println("VAT : " + getVAT());
		System.out.println("Total : " + getTotal());
		System.out.println("Expense : " + getExpense());
		System.out.println("Income : " + getIncome());
		System.out.println("Dividend 1 : " + getDiviend1());
		System.out.println("Dividend 2 : " + getDiviend2());
		System.out.println("Dividend 3 : " + getDiviend3());
	}

	public double getDiviend1() {
		return getIncome() * 0.5;
	}
	public double getDiviend2() {
		return getIncome() * 0.3;
	}
	public double getDiviend3() {
		return getIncome() * 0.2;
	}

	public double getIncome() {
		return valueOfSupply - getExpense();
	}

	public double getExpense() {
		return valueOfSupply * expenseRate;
	}

	public double getTotal() {
		return valueOfSupply + getVAT();
	} 

	public double getVAT() {
		return valueOfSupply * vatRate;
	}
}
public class AccountingClassApp {
	
	public static void main(String[] args) {
		// instance 
		Accounting a1 = new Accounting();
		a1.valueOfSupply = 10000.0;
		a1.vatRate = 0.1;
		a1.expenseRate = 0.3;
		a1.print();
		
		Accounting a2 = new Accounting();
		a2.valueOfSupply = 20000.0;
		a2.vatRate = 0.05;
		a2.expenseRate = 0.2;
		a2.print();
		
		a1.print();
	}
}

 

댓글

댓글 본문
  1. Jimin Joo
    조건문을 사용하면 좋을 것 같은 상황 : 위와 같이 사용자에 따라 입력값이 다양하게 있을 때 / 직접 계산하지 않기 힘든 계산이 많이 있을 때

    배열은 변수를 하나 지정하고 같은 타입의 내용을 순차적으로 담아놓은 묶음
    0이 첫 번째인 것에 유의하자

    반복문 : 배열과 함께 쓰일 때 좋은 시너지, 아직 둘을 함께 잘 사용하는 법은 모르겠으나 차차 배워나가자!
    int i = 0;
    while(i<){
    Syetem.out.println()
    }

    메소드 : 서로 연관된 코드를 그룹핑해 이름을 붙인 정리정돈의 상자다
    메소드는 너무 길고 복잡한 수식/코드가 꼴보기 싫을 때 확 정리해버릴 수 있는 문법!

    인스턴스 : 이해하기 너무 어렵다....하 여튼 형태 : new 클래스 / static 사용되면 안됨
    메소드로 구조를 잡고 메서드+변수의 클래스로 구조를 잡고 클래스 모음으로 다시 구조를 잡는 자바 언어!
  2. 선대범
    조건문 if{} else{}
    배열
    double[] dividendRates = new double[3];
    dividendRates[0] = 0.5;
    dividendRates[1] = 0.3;
    dividendRates[2] = 0.2;
    반복문
    while(i < dividendRates.length) {
    System.out.println("Dividend : " + (income*dividendRates[i]) );
    i = i + 1;

    ㄴ코드의 무의미한 반복을 줄여주고 깔끔한 코딩

    메소드 : 서로 연관된 코드를 그루핑해서 이름을 붙힌 정리정돈 상자다
    객체
    필드 전역변수 (main 위에 설정)
    클래스 서로 연관된 변수와 메소드를 그루핑하고 이름을 붙힌 정리정돈 상자다
    인스턴스 단일 메소드 다중 변수
  3. 객체(필드+메소드) : 현실의 어떤 대상을 최대한 컴퓨터에 표현하기 위해 만든 것 상태(변수)와 메소드(행위)로 구성된다. 클래스와는 어떤 차이일까?

    필드(변수) : 원하는 값을 담기 위한 바구니! 또는 객체의 현재 상태 (자전거의 다양한 상태 예를들면 달리고있냐 서있냐, 자전거 속력, 핸들방향 등)

    메소드 : 객체의 동작, 객체의 상태를 변화시킬 수 있는 행위를 구현해놓은 것 (자전거를 멈춘다, 자전거의 속력을바꾼다, 핸들방향을 바꾼다)

    클래스 : 서로 연관된 변수와 메소드를 가져다 모아놓은 것. 객체와 어떤차이일까?

    인스턴스 : 기존 클래스를 변수값을 바꿔서 쓰고 싶을 때 클래스를 복사하여, 인스턴스를 생성할 수 있다. 변수를변경해주고, 해당 변수를 활용하는 메소드를 그대로 쓸 수 있다.
  4. 하승연
    메소드는 어떤 일을 처리하기 위한 함수이고
    클래스가 연관성 있는 메소드들과 변수들을 묶은 거에요.
    대화보기
    • 하승연
      그러니까 자바의 인스턴스는 c++의 객체와 비슷한 역할을 하는 건가요? 예를 들면 은행 클래스가 있다 치고 예금저축함수를 사용할 때 국민은행을 사용할 것인지, 농협을 사용할 것인지 은행이라는 단어만으로는 모르니까 클래스의 구조를 따 와서 각각의 인스턴스들에 은행명을 부여(a1, a2, 국민, 농협)하고 저마다의 저축과 같은 기능(함수)이나 금리(변수) 등의 요소들을 다르게 적용시키기 위해 필요한 거군요?
    • 밍블리
      메소드는 사용 전에 일단 코드를 다 짜놓고 나중에 정리하는 순서로 쓰면 되는거죠?
      처음부터 메소드 만들면서 코드 짜기는 엄청 숙련된 사람들은 가능한가요?.?
    • yechubot
      method는 정리정돈의 상자!
      객체지향- class, 관련된 변수와 메소드를 grouping 하는 것 - 또 다른 정리정돈 상자
      -instance, class 복제하고 다른 값을 사용....?
    • 발리에서생깐일
      double dividend 1
      double dividend 2
      double dividend 3
      이게 자바 스크립트 처럼 함수의 역활을 한다는 말씀이신거죠?
    • 그르니까 java에서의 method는 javascript의 함수와 비슷한 역할을 하는 거군요?
    • 브라이언
      강의 잘들었습니다.쏙쏙 개념이 들어오네요. 감사합니다.
    • 인스턴스
      Accounting a1 = new Accounting();
      a1이라는 Accounting 클래스를 복제해 만든다. 인스턴스를 만드는 법!
    • JAVA는 섬이름이래여!
      코로나 때문에 학교가 강제로 서울 사이버 대학교 가 되었는데...
      이참에 이고잉님도 교슈님 하시는게 어떤가요!!
      강의 잘 듣고있습니다.
    • 완료
    • 감사합니다 처음에는 코드를 따라 작성을하면서 하다보니까 놓치는부분이 많았던거 같네요ㅎ
      이번에는 다시한번 코드작성안하고 앱만들기1부터 영상만 보다보니까 안보였던 부분이 조금씩 보이고 이해가 아주 조금씩이지만 이해해가고 있습니다ㅋㅋ감사합니다 아직 한참 멀었지만 계속 보면서 복습해볼게요
      대화보기
      • 뉸찡
        2020.03.05
        감사합니다! 어려워서 다시한번 복습해야겠습니다
      • egoing
        여기서 다시 처음으로 돌아가서 반복하다보면 그 원심력으로 이 수업을 꿰뚫다 비상하실 겁니다. 기초의 위력을 실감하실 겁니다.
        대화보기
        • 퇴근후에 조금씩 진도를 나가서 그런지 나의 앱만들기2 페이지에서만 이틀째 머무르고 있네요..ㅠㅠ 이해가 안되는부분들이 너무많아서 멈추고 코드를 가만히 쳐다보고있는ㅋㅋㅋ
        • 감사합니다...
        • 소금설탕
          감사합니다.
        • 리리
          연관된 코드들을 묶은 상자 : 메소드
          연관된 변수들과 메소드들을 묶은 상자 : 클래스
          하나의 클래스를 복제하여 다른 값들을 넣어서 사용할 수 있게 만드는 것 : 인스턴스
          (인스턴스로 사용될 클래스의 변수와 메소드에는 static이 들어가면 안됨)
        • 라또마니
          메소드(method) : 함수
          메소드는 서로 연관된 코드를 그루핑해서 이름을 붙인 정리정돈한 상자이다.

          객체 : 클래스라는 표현을 쓰기도 하는데, 클래스는 서로 연관된 변수와 메소드를 그루핑 한 것이다. 거기에 이름을 붙인 것이다.

          인스턴스 : 하나의 클래스를 복제해서 서로 다른 데이터 값 과 서로 다른 메소드를 가진 복제본을 만드는 것이다.
        • jw1207j67@google.com
          최고입니다.
          정리가 쫙 되는 느낌입니다.
          감사합니다.
        • truespring
          밑에서 나누는 수를 표현하기 위하여 변수 j를 사용하였는데 이럴 필요없이 i를 사용할 수 있습니다.
          int i = 0;
          while (i < dividendRates.length) {
          System.out.println("Dividend " + (i+1) + " : " + (income * dividendRates[i]);
          i++;
          }
          굳이 변수 하나를 더 생성할 필요가 없어집니다.
        • 백인호
          Loop 에 방법인 while문 예제에서 divedend 0이 반복되는것이 불편하여서
          Multiple conditions in WHILE loop 라고 검색해보니
          int i = 0;
          int j = 1;
          while(i < dividendRates.length && j < 4) {
          System.out.println("Divedend " + j + ":" + (Income * dividendRates[i]) );
          i=i+1;
          j=j+1;
          }
          로 적용하니 divedend 가 1 2 3 이 순차적으로 나오네요.
        • 정훈
          수고하셨습니다.^^
        • 코리니
          와.. 나의 앱 만들기 시리즈가 정말 강력했던 거 같아요!!
          감사합니다!!
        • 휴~ ㅎㅎ 끝
          너무너무 감사합니다^^
        • 쑤우
          수강완료. 감사합니다~
        • 멋지게살자
          쭉 정리해 주셔서 감사합니다.
          그동안 궁금했던내용이 정리되었습니다.
          앞으로 정진할 일만 남았네요... 다시한번 감사드립니다.
        • 햄쮸맨
          근데 생각해보니 우리는 지금껏 하나의 클래스를 가지고 하나의 인스턴스만 만들어 왔다가 이제서야 하나의 클래스로 여러 인스턴스를 복제하는 법을 배운건가요?
        • 햄쮸맨
          메소드는 성질이 유사한 코드들을 묶어서 이름 붙인 덩어리군요!
          클래스는 메소드랑 변수 값들을 묶어놓은 덩어리고요!
          인스턴스는 클래스(붕어빵틀)을 이용해서 복제된 서로 다른 변수와 같은 메소드를 가진 붕어빵이네용.
        • 햄쮸맨
          조건문은 특정 조건에서 다른 동작을 수행 해야하는 경우에 사용되는 거군요!
          배열은 같은 분류의 데이터들을 한 변수에 담아서 사용할 수 있도록 한 거고요. 경우에 따라서는 문자열을 한글자씩 담아서 몇번째 글자만 따로 출력하는 것도 가능하겠네요.
          반복문은 특정 조건이 성취되기 이전까지 같은 동작을 반복 해야하는 경우에 사용하는 거군요!
          위에서는 배열과 함께써서 배열의 데이터가 끝난다는 조건이 성취 될때까지 배열의 데이터와 수입을 곱해서 나눔몫을 출력해줬네요! 둘이 함께 쓰이니까 효과가 참 좋네요!
        • 피읍
          감사합니다 6개월동안 교육들으면서 자바를 한 2달간 배웠는데 학원에서 배운것보다 이번영상으로 본게 배울점이 더 많은것 같네요
        • 가나다
          감사합니다!
          대화보기
          • 저도초보
            println 라인의 "Dividend(i+1) : " <- 이 부분이 큰따옴표로 지정되있어서 그대로 출력되도록 인식되서 그럴거에요.
            순번 구분을 위해 i 값을 변화시키면서 출력하려면
            System.out.println("Dividend" + (i+1) " : "+ (income*dividendRates[i]) );
            이런식으로 구분해서 지정해주면 되더라구요.
            대화보기
            • 가나다
              원래 dividend 1~3까지 구분지어서 결과값이 나왔는데, 반복문에서는 이 구분을 다 없애고 "dividend : 금액"으로 결과값이 출력이 되더라구요. 앞에서 i에 대해서 선언했기때문에 이 i를 이용하여 구분지어주기위해

              int i=0;
              while(i<dividendRates.length) {
              System.out.println("Dividend(i+1) : "+ (income*dividendRates[i]) );
              i=i+1;

              }

              다음과 같이 코드를 짰는데 왜 이거는 실행하면
              "Dividend(i+1): "이라고 i가 적용되지 않고, 그대로 문자로 결과값이 출력될까요?
              이를 i를 이용하여 구분지어서 출력해주기 위해서는 어떻게 코드를 짜야 좋을지도 알고싶어요!
            • 이만수
              메소드, 클래스, 인스턴스.. 득도 한 느낌입니다 ㅎㅎ static 지우는 건 이해를 못했습니다. 이해할 날이 오겠죠 ^^
            버전 관리
            egoing
            현재 버전
            선택 버전
            graphittie 자세히 보기