생활코딩

Coding Everybody

나의 앱 만들기 2

토픽 생활코딩 > 언어 > JAVA 입문 수업

수업소개

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

 

 

 

강의 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. juny_.0
    2024.11.13
  2. Sansol Park
    메소드는 클래스(class) 내부에 정의된 코드의 일부입니다. Java에서 메소드는 특정 작업을 수행하는 코드 블록으로, 클래스라는 더 큰 구조 안에 포함되어 있습니다.

    ### 메소드의 저장 위치

    1. **클래스 내부**:
    - 메소드는 클래스를 구성하는 요소 중 하나입니다. 클래스는 메소드 외에도 필드(변수)와 다른 클래스를 포함할 수 있습니다. 예를 들어, 다음 코드에서 `print`, `getVAT`, `getIncome` 등은 모두 `Accounting` 클래스 내부에 정의된 메소드입니다.

    ```java
    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 getVAT() {
    return valueOfSupply * vatRate;
    }

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

    // Other methods like getExpense(), getTotal(), getDiviend1(), etc.
    }
    ```

    2. **메모리**:
    - 프로그램이 실행될 때, 메소드는 컴퓨터의 메모리에 로드되어 실행됩니다. 하지만 메소드 자체는 소스 코드 파일에 포함되어 있습니다. 이 소스 코드는 `.java` 파일에 저장됩니다.
    - 예를 들어, 위의 `Accounting` 클래스가 `Accounting.java` 파일에 저장되어 있다면, `print`, `getVAT`, `getIncome` 등의 메소드들도 이 파일에 포함되어 있습니다.

    ### 메소드 사용의 장점
    - **재사용성**: 동일한 코드를 반복하지 않고, 필요한 곳에서 메소드를 호출하여 재사용할 수 있습니다.
    - **가독성**: 코드를 작은 단위로 나누어, 각 메소드가 하나의 작업을 수행하도록 함으로써 코드의 가독성을 높일 수 있습니다.
    - **유지보수**: 코드의 수정이 필요할 때, 메소드 내부만 수정하면 되므로 유지보수가 용이해집니다.

    따라서, 메소드들은 클래스 내부에 그룹핑되어 저장되며, 이 클래스는 `.java` 파일로 저장되고 관리됩니다. 프로그램 실행 시, 이 클래스는 메모리에 로드되어 메소드들이 실행됩니다.
    대화보기
    • 항해자
      수강완료
    • 240527
    • 240524 ~9
    • 코딩앤수학
      2024-05-06 좀 더 이해하기 쉽게 설명해주셔서 감사합니다.
    • 집게사장
      2023.11.08 수강완료
    • 핫땅콩
      231001 역시 정리정돈은 어렵지만 자바는 존잼
    • 솜사탕
      2023.08.02 완료
    • 도토리
      23.6.4 갑자기 난이도가 확 올라가서 메소드보다가 흥미가 떨어졌습니다.
      다른거 공부하러 가야겠어요.
    • razorbacks
      강의 11 에서 오류가 발생함.
      본인이 코드를 잘못 입력한 것인지, 예제 코드를 복사하여 동일한 클래스 이름으로 만들고 붙여넣고 컴파일을 해도 동일한 오류가 발생함.

      // Exception in thread "main" java.lang.NoSuchFieldError: valueOfSupply
      // at AccountingClassApp.main(AccountingClassApp.java:47)

      사용 환경 : Visual Studio Code , JDK : Adoptium Temurin 17.0.7+7, Fedora 38 WS

      # valueOfSupply 를 전부 새로 고침했더니 실행됨
    • 당당
      2023.04.10
    • 한메이슨
      이렇게 메소드, 클래스. 인스턴스 등 그룹별로 모듈화 하여
      최소한의 변수로 전체 툴을 다룰 수 있게 하는것이
      흔히들 말하는 객체 지향 설계라는 것일까?

      모듈화 된 코드가 각각의 객체를 이루기 때문에
      언제든 기능별로 수정과 개선이 가능하다.

      또한 어디서든 쓸 수 있게 잘 짜여진 메소드나 클래스는
      개발에 있어 엄청난 효율을 가져다 줄 것이다.
    • didit
      23.01.08
    • Min Jupiter
      22.12.09
    • 화난 흰둥이
      221201
    • 서우
      221020
    • 자바자바
      인스턴스는 같은 메소드를 가진 클래스를 서로 다른 상태를 가진 클래스들로 복제해서 다른 상태의 출력값들을 출력하는 도구
      변수의 타입.변수이름 = new 복제할 클래스 ();를 통해 인스턴스를 생성 가능하다
    • 자바자바
      클래스란 연관성있는 변수와 메소드를 묶어 놓은 정리정돈된 상자이다.
      우리는 클래스를 통해 public class안에 여러 연관된 변수와 메소드들을 따로 빼서 class라는 이름으로 묶을 수 있고 public클래스에서 class의 변수나 메소드를 가져와 사용하고 싶을때 클래스 명. 변수 또는 메소드를 통해 해당 class의 변수와 메소드를 가져올 수 있다.
    • 자바자바
      메소드는 서로 연관된 코드들을 그룹핑해서 이름을 붙인 정리정돈된 상자다.
      메소드를 사용하는 이유: 사용하는 쪽에서 훨씬더 단정하게 사용할 수 있음
      근데 메소드에로 변환한 코드들은 어디에 저장되어 있을까?
    • 보통사람 박코딩
      메소드 → 클래스 → 인스턴스로 프로그램의 구조를 짜나가는것
      조금은 프로그래밍 언어에 대해서 큰 그림을 본 것 같은..

      눈이 조금은 트인 강의였다

      할수있다
    • 자바자바
      반복문은 같은 속성의 변수들에 대해 출력코드가 많을때 그것을 한개의 코드로 바꿀수 있습니다. 한개의 코드로 바꾸면 버그가 발생한 경우 하나의 코드만 수정하면 되기 때문에 프린트하는 코드가 많을 수록 폭발적인 효과를 얻게 됩니다. 그리고 반복문은 배열과 함께 쓰일때 매우 효율적입니다. 그 이유는 배열은 같은 타입의 서로 연관된 데이터를 그룹핑할 수 있게하고 이를 반복문에 사용할 때 숫자를 통해 구분함으로서 효과적으로 코드를 표현할 수 있게 해주기 때문입니다!
    • 자바자바
      조건문은 입력되는 값에 따라 사용되어야할 메소드나 수식이 달라야할 때 사용할 수 있습니다.
    • 후토마끼
      22.10.10
    • 가능해
      22.09.30
    • 일억개라고 한번 상상해보세요
      다 봤따!!!!!!!!!!!!
    • economin
      수강완료
    • happybeom
      7.18
    • DDDDuuuu
      감사합니다~!^^
      저 단어 하나하나 다 비교해서 오타가 있는지 확인하는 게 아직 미숙하네요..ㅠㅠㅠ
      대화보기
      • 배충현
        @DDDDuuuu
        Supply 오타 있습니다.
        대화보기
        • DDDDuuuu
          강의11 인스턴스
          https://ideone.com/PxWMLg
          이거 한번 확인부탁드립니다..
          수정을 해도 뭐가 문제인지 모르겠고...이클립스가 지적한 걸로 수정하면 모든 결과값이 0으로 나옵니다ㅠ
        • 인스턴스는 하나의 클래스를 복제해서(클래스 앞에 new를 붙여서) 서로다른 데이터의값과 서로같은 메소드를 가진 복제본을 만드는것.

          ex) 여러개의 다른데이터값을 입력하는상황에서 , 같은메소드를 이용하고자할때 매번 클래스를 새로만들기보단
          원래클래스를 복제하여 인스턴스로 하는것이 더간편하다
        • 객체 (혹은 클래스)는 서로 연관된 변수와 메소드를 그룹핑하여 이름을붙인것이다.
          ex) 지금은 변수,메소드들이 모두 account와 관련된 것들이지만 만약에 복잡하고 더커다란 프로그램같은경우
          다른취지의 변수,메소드들이 섞여있을수있으므로 -> 클래스로 그룹핑해주어 정리정돈한다.
        • 조건문: 특정조건하에 다르게 작동하는 프로그램을 만들때
          If(~~){
          ~~~

          } else{
          ~~~
          }


          배열:여러개의 연관된 변수들을 하나의 배열로 묶어서 의미파악,관리가 더쉬워진다.


          반복문: 배열과 함께사용할때 그효율이 더욱 극대화된다.
          반복횟수먼저 정의 ex) int i = 0 (반복횟수 0부터시작)
          while(~~){
          ~~~
          i= i +1; (한턴 끝날때마다 반복횟수가 1씩 늘어남)
          }


          메소드 는 서로연관된 코드를 그룹핑해서 이름을 붙인 정리정돈의 상자이다.
          어떤하나의 동작이 수백줄의코드로 복잡하게되어있다면 보기에도 불편하고복잡하다
          -> 하나의 메소드로 정의하여서 사용하는곳에서 깔끔하게 정리한다

          +메소드안에 매개변수를 지워서 깔끔하게만들때 오류가발생하는것
          ->main함수내에 정의된 매개변수를 (지역변수) 클래스전체에서 정의된 전역변수로 옮겨준다.
        • Osign
          22.07.03 시청 완료
        • 은평구핵주먹곽두팔
          마지막 강의만 보다 어려워서 관람모드로 시청
          22.06.30 완
        • 육도
          2022.05.09 완료
        • thom
          220322 완료
        • BrightenTheWorld
          [조건문]
          만약 수익이 10000원보다 작은경우 - 1:0:0으로 분배하고
          만약 수익이 10000원보다 큰 경우 - 5:3:2 으로 분배하고 싶을 때
          앱을 두개를 만들어서 경우마다 로직을 다르게 설정한 후 실행 할 수도 있지만 그런 내부적인 사정을 모르는 사람도 사용할 수 있게끔 하나의 프로그램 안에서 저절로 계산되게 하기 위해서 if - else 조건문을 사용할 수 있다!

          double dividend1 = 0.5;
          double dividend2 = 0.3;
          double dividend3 = 0.2;
          위 명령어처럼 바로바로 분배율을 선언해주는것이 아니라 변수먼저 설정을 하고 조건에 맞을때 알맞은 분배율을 선언해준다.

          double dividend1;
          double dividend2;
          double dividend3;

          If (Income>10000) {
          dividend1 = Income*0.5;
          dividend2 = Income*0.3;
          dividend3 = Income*0.2;
          } else {
          dividend1 = Income*1.0
          dividend2 = Income*0
          dividend3 = Income*0

          [배열]
          변수가 많아질수록 변수가 더럽혀질 확률이 증가한다.
          double[] dividend_Rates= new double[3];
          dividend_Rates[0]=0.5;
          dividend_Rates[1]=0.3;
          dividend_Rates[2]=0.2;
          double dividend1 = (Income)*dividend_Rates[0];
          double dividend2 = (Income)*dividend_Rates[1];
          double dividend3 = (Income)*dividend_Rates[2];
          이렇게 변수를 배열로 특정해줌으로써 변수가 더럽혀지는것을 방지할 수 있다.

          [반복문]
          반복문을통해 출력하는 코드를 한줄만 작성해도 많은 사람의 분배율을 출력할 수 있다.
          <핵심코드>
          double[] dividend_rates = new double[];
          dividend_rates[1] = 0.5;
          dividend_rates[2] = 0.3;
          dividend_rates[3] = 0.2;

          int i =0;
          while( i<dividend_rates.length ); { //소괄호 안에 있는 동안
          system.out.println("dividend +"(income*dividend_rates) ); //중괄호 안에 있는 명령어가 반복된다.
          i=i+1; // i는 1씩 증가
          }

          [메소드]
          메소드는 서로 연관된 코드를 그룹핑 해서 이름을 붙인 정리정돈의 상자다

          지역변수를 전역변수로 변환하는 방법

          double Value_Of_Supply = 10000;
          double VAT_Rate = 0.1;

          // Refactor(alt+shift+T) -> Convert Local Variable to field
          ------>

          public static double Value_Of_Supply;
          public static double VAT_Rate;

          //일정구간 코드를 다른 메소드 상자에 담는 방법
          //alt+shift+M

          public static void print() {
          System.out.println("Value of supply : "+Value_Of_Supply);
          System.out.println("VAT : "+getVAT());
          System.out.println("Total : "+ getTotal());
          System.out.println("Expense : "+ getExpense());
          System.out.println("Income : "+ getIncome());
          System.out.println("dividend1 : "+getDividend1());
          System.out.println("dividend2 : "+getDividend2());
          System.out.println("dividend3 : "+getDividend3());
          }

          이렇게 상자에 저장한 후
          print(); 만 입력하면 메소드 안에 있는 코드들이 출력됨
          저렇게 많은 코드들이 한줄의 코드로 출력이 가능해진것!!

          [클래스]
          print(); 라는 메소드는 너무 흔해서 더 분류해주지 않는다면 어떤 코드를 print 한다는 말인지 알 수 없을것이다.
          어떤것을 print 하는지 구분하기 위해서 Accounting.print(); 이런 식으로 코드를 불러내야 헷갈리지 않을것이다.
          그러기 위해선 class를 잘 이용해야 한다.

          class Accounting {
          public static double Value_Of_Supply;
          public static double VAT_Rate;
          public static double expense_Rate;

          public static void print() {
          System.out.println("Value of supply : "+Value_Of_Supply);
          System.out.println("VAT : "+getVAT());
          System.out.println("Total : "+ getTotal());
          System.out.println("Expense : "+ getExpense());
          System.out.println("Income : "+ getIncome());
          System.out.println("dividend1 : "+getDividend1());
          System.out.println("dividend2 : "+getDividend2());
          System.out.println("dividend3 : "+getDividend3());


          }
          public static double getDividend1() {
          return getIncome()*0.5;
          }
          public static double getDividend2() {
          return getIncome()*0.3;
          }
          public static double getDividend3() {
          return getIncome()*0.2;
          }
          public static double getIncome() {
          return Value_Of_Supply - getExpense();
          }
          public static double getVAT() {
          return Value_Of_Supply*VAT_Rate;
          }

          public static double getTotal() {
          return Value_Of_Supply+getVAT();
          }
          public static double getExpense() {
          return Value_Of_Supply*expense_Rate;
          }

          }

          public class AccountingClassApp {


          public static void main(String[] args) {

          Accounting.Value_Of_Supply = 10000;
          Accounting.VAT_Rate = 0.1;
          Accounting.expense_Rate = 0.3;
          Accounting.print();
          //anotherVariable = ...;
          //anotherMethod = ...;
          //Accounting.print();
          //print라는 흔한 메소드를 Accounting이라는 클래스로 분류함으로써 헷갈리지 않고 쓰게 되었다!

          [인스턴스]
          "인스턴스는 하나의 클래스를 복제해서 서로 다른 데이터의 값과 서로 같은 메소드를 가진 복제본을 가지는 것이다."

          변수만 다른 클래스를 추가할 때마다 복사,붙여넣기를 이용하여 클래스 전체를 새로 정의하는것은 상당히 비효율적이기 때문에 인스턴스 기능을 이용한다.

          클래스를 만들 때 변수를 새로 정의하는 부분은 static(정적, 고정)을 없애주어야 한다.
          ex)
          class Accounting {
          public double Value_Of_Supply;
          public double VAT_Rate;
          public double expense_Rate;

          //...

          public class AccountingInstanceApp {

          public static void main(String[] args) {
          //기본 메소드에서는 static이 빠지면 안된다.
          //instance
          Accounting1 a1 = new Accounting1();
          a1.Value_Of_Supply = 10000;
          a1.VAT_Rate = 0.1;
          a1.expense_Rate = 0.3;
          a1.print();

          Accounting1 a2 = new Accounting1();
          a2.Value_Of_Supply = 20000;
          a2.VAT_Rate = 0.05;
          a2.expense_Rate = 0.2;
          a2.print();

          a1.print();

          }
          }
        • 열정jk
          220206 감사합니다
        • 나연
          2022년 2월 4일 (금) 완료

          메소드: 서로 연관된 코드를 그룹핑해서 이름을 붙인 정리정돈의 상자
          `Refactor` > `Extract Method`

          지역 변수 (local variable)
          전역 변수
          - 자바에서는 전역 변수를 "필드"라고 함
          - `Refactor` > `Convert Local Variable to Field`

          클래스: 서로 연관된 변수와 메소드를 그룹핑하고 이름을 붙인 정리정돈의 상자

          `Window` > `Show View` > `Outline`
          - 클래스 안에 소속되어 있는 여러 가지 멤버들(변수, 메소드)의 리스트를 보여줌

          ```java
          // Inside class AccountingClassApp
          Accounting.valueOfSupply = 10000.0;
          Accounting.vatRate = 0.1;
          Accounting.expenseRate = 0.3;

          Accounting.print();
          ```

          인스턴스: 하나의 클래스를 복제해서 서로 다른 데이터의 값과 서로 같은 메소드를 가진 복제본을 만드는 것

          클래스의 상태: 변수의 값

          ```java
          new Accounting(); // Accounting 클래스 복제
          ```

          인스턴스(instance)

          -----
          Ctrl + Shift + 화살표: 블록 선택
          Ctrl + 화살표: 블록 이동
          커서 + Shift + 클릭: 여러 줄 선택

          =====
          질문이 있습니다.
          강의 11의 코드를 보시면 각 인스턴스의 필드를 메인 메소드에서 직접 설정하는데
          (예시:
          ```java
          public static void main(String[] args) {

          // instance
          Accounting accounting1 = new Accounting();
          Accounting.valueOfSupply = 10000.0;
          Accounting.vatRate = 0.1;
          Accounting.expenseRate = 0.3;
          accounting1.print();

          // 이하 생략
          ```
          이렇게 필드를 직접 설정하는 것보다 setter 메소드를 생성하고 활용해서 값을 넣어주는 게 추상화가 잘 되어 있는 모습이 아닐까요?
        • 카멜리안_최유리
          20220203 완료
        • 김나루
          2022-01-06 강의(5)
          2022-01-07 강의(6,7)
          2022-01-08 강의(8)
          2022-01-09 강의(9,10)
          2022-01-12 걍의(11)
          복습
          5~8
          9~11
        • 초보자바
          2021-12-06 실습완료
          2021-12-08 복습
          Array : 프로젝트의 값과 변수들이 많아지면 혼동이 되거나 겹칠 수 있으므로 하나의 변수로 나타냄을 위하여 배열을 이용한다.
          Loop : 같은 코딩을 반복하여 나타내지않고 하나로 정리하여 의도와 간편성을 위해 반복문을 이용한다.
          Method : 서로 연관된 코드를 그룹핑해서 이름을 붙인 정리정돈의 상자다. / 코딩을 할 때 Method를 활용하는 것은 굉장히 중요한 것이며 아를 아용하여 잘 정리된 코드가 좋은 코드이다. 같은 카테고리의 코드들을 묶음으로써 코딩을 할때 이를 추적하기도 쉬우며 알아보기도 편하고 코드 자체를 전체적으로 보기도 용이하다,
          Object : 객체지향 ( class, instance ,,,)
          class : 서로 연관된 메소드를 그룹핑하여 이름을 붙인 정리정돈의 상자다. / 잘 정리정돈된 메소드들을 카테고리 별로 묶어 놓는 것이다.
          instance : 하나의 클래스를 복제해서 서로 다른 데이터의 값과 서로 같은 메소드를 가진 복제본을 만드는 것이다. / 클래스에는 보통 데이터 변수와 메소드가 있는데 여기서 같은 클래스는 이용하되 데이터 변수를 다르게 하고 싶을 때 instance를 이용하여 복제된 class를 활용한다.
        • 초보자바
          2021-12-05 조건문까지 완료
          조건에 따라 출력을 다르게 하고 싶을 땐 if문을 이용하여 조건설정을 하자.
        • 김휘철
          잘 봤습니다~
        • chalieya
          아직은 이해하기 힘들지만 나중에 다시 보면 이해할 수 있고 나도 그런 위치에 있을 것이라고 생각됩니다. 강의 감사합니다. ^^
        • syh712
          2021-11-23-조건문/배열/반복문(배열과 함께 사용하면 폭발효과)/ 메소드는 서로 연관된 코드를 그루핑해서 이름을 붙인 정리정돈의 상자다. **전역 변수**는 어떤 **변수** 영역 내에서도 접근할 수 있는 **변수**를 의미

          객체는(클래스는) 서로 연관된 변수와 메소드를 그룹핑한 것이다. 그리고 그것에 이름을 붙인 것이다. 정리정돈의 상자다. 중요한 이유는 소프트웨어 만드는 데 구조결정. 신체로 치면 뼈대가 메소드와 클래스이다.

          인스턴스: 인스턴스 하나의 클래스를 복제해서 서로 다른 데이터 값과 서로 같은 메소드를 가진 복제본을 만드는 것이다.*보통 '상태'라고 하면 변수의 값을 의미.

          메소드로 구조 잡고, 메소드와 변수를 그룹핑해서 클래스로 구조잡고, 그 클래스를 복제한 인스턴스를 통해 또 다른 구조를 만듦. 코드의 성을 쌓아가는 것이 자바언어의 특징임. 다른 언어들도 따르고 있다. 스스로 불편함을 느끼고 극복할 수 있는 방법을 찾는다면, 엑스트라가 아니라 내가 주체적으로 하고 있는 주인공이 될 것.
        • 주간식당메뉴
          21.10.22.
        • codinggwon
          강의 10 부터, 매서드는 서로 연관된 코드를 그룹핑하여 이름을 붙인 정리정돈의 상자다