JAVA 객체지향 프로그래밍

클래스와 인스턴스의 활용

수업소개

클래스와 인스턴스를 프로젝트에 도입함으로서 코드를 단정하게 정리 정돈하는 모습을 보여드리는 수업입니다. 

 

 

 

강의1

소스코드

class Accounting{
    public static double valueOfSupply;
    public static double vatRate = 0.1;
    public static double getVAT() {
        return valueOfSupply * vatRate;
    }
    public static double getTotal() {
        return valueOfSupply + getVAT();
    }
}
public class AccountingApp {
	public static void main(String[] args) {
		Accounting.valueOfSupply = 10000.0;
        System.out.println("Value of supply : " + Accounting.valueOfSupply);
        System.out.println("VAT : " + Accounting.getVAT());
        System.out.println("Total : " + Accounting.getTotal());
 
    }
}

 

 

 

강의2

소스코드 

class Accounting{
    public double valueOfSupply;
    public static double vatRate = 0.1;
    public Accounting(double valueOfSupply) {
    	this.valueOfSupply = valueOfSupply;
    }
    public double getVAT() {
        return valueOfSupply * vatRate;
    }
    public double getTotal() {
        return valueOfSupply + getVAT();
    }
}
public class AccountingApp {
	public static void main(String[] args) {
		Accounting a1 = new Accounting(10000.0);
		
		Accounting a2 = new Accounting(20000.0);
		
		System.out.println("Value of supply : " + a1.valueOfSupply);
		System.out.println("Value of supply : " + a2.valueOfSupply);
		
		System.out.println("VAT : " + a1.getVAT());
		System.out.println("VAT : " + a2.getVAT());
		
		System.out.println("Total : " + a1.getTotal());
		System.out.println("Total : " + a2.getTotal());
		
 
    }
}

 

댓글

댓글 본문
  1. 당당
    2023.04.22
  2. 화려하게간다
    제 용돈 계산하는거 만들었어요 ㅋㅋ

    class Fee{
    public static double rate = 0.3;
    public double MonthMoney;
    public Fee(double MonthMoney) {
    this.MonthMoney = MonthMoney;
    }

    public double dragonmoney() {
    return MonthMoney * rate;
    }
    }

    public class MyOOP {

    public static void main(String[] args) {
    Fee jisu = new Fee(10000);
    System.out.println(jisu.dragonmoney());


    Fee dabin = new Fee(20000);
    System.out.println(dabin.dragonmoney());
    }
    }
  3. labis98
    20230203 완료
  4. 보통사람 박코딩
    할수있다
  5. 코딩드림
    221104
  6. economin
    수강완료
  7. 육도
    2022.05.14 완료
  8. 유도영
    연관된 메소드를 클래스로 정리 -> 정리정돈의 목적. 코드를 봤을 때 무엇에 대한 메소드인지 알기도 쉬움
    인스턴스에서는 클래스 static 변수에 접근 불가


    class accounting{
    //class 변수와 instance 변수 정의
    public double valueOfsupply;
    public double expenseRate;
    public static double vatrate = 0.1;
    public static double[] dividend = {0.5, 0.3, 0.2};

    //생성자 정의
    public accounting(double valueOfsupply, double expenseRate){
    this.valueOfsupply = valueOfsupply;
    this.expenseRate = expenseRate;
    }

    //메소드 정의
    public double getVAT() {
    return valueOfsupply * vatrate;
    }
    public double getTotal() {
    return valueOfsupply + getVAT();
    }
    public double getExpense() {
    return valueOfsupply * expenseRate;
    }
    public double getIncome() {
    return valueOfsupply - getExpense();
    }
    public double getDividend(int i) {
    return getIncome() * dividend[i];
    }

    public void print(String caseName) {
    System.out.println(caseName);
    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("Dividend1: " + getDividend(0));
    System.out.println("Dividend2: " + getDividend(1));
    System.out.println("Dividend3: " + getDividend(2));
    System.out.println("\n");
    }
    }


    public class account_app {

    public static void main(String[] args) {
    accounting a1 = new accounting(10000, 0.3);
    accounting a2 = new accounting(20000, 0.5);

    a1.print("case 1");
    a2.print("case 2");

    }

    }
  9. 나연
    2022년 2월 20일 (일) 완료

    `static`은 클래스의 소속인데 이 클래스가 인스턴스의 변수에 접근하려면 어떤 인스턴스의 변수인지 알 수 없음
    - `static`이 아닌 변수에 접근하는 메소드는 `static`이면 안 됨

    `static`으로 선언된 변수들은 인스턴스를 만들 때마다 컴퓨터의 메모리를 사용하지 않아도 되기 때문에 자원을 절약할 수 있음
  10. 열정jk
    220220 감사합니다
  11. 김나루
    2022-01-28
    저는 프린트라는 기능자체도 AccountingApp 클래스 안에 있는게 보기싫어서 Accounting 클래스 안에 넣는 형식을 사용하여 더 간단한 구문을 쓸수 있도록 만들어봤습니다.

    class Accounting {
    public double valueOfSupply;
    public static double vatRate = 0.1;
    public Accounting(double valueofSupply) {
    this.valueOfSupply = valueofSupply;
    }
    public double getVAT() {
    return valueOfSupply * vatRate;
    }
    public double getTotal() {
    return valueOfSupply + getVAT();
    }
    public void Print() {
    System.out.println("Value of supply : " + valueOfSupply);
    System.out.println("VAT : " + getVAT());
    System.out.println("Total : " + getTotal());
    }

    }
    public class AccountingApp {
    public static void main(String[] args) {

    Accounting p1 = new Accounting(10000.0);
    p1.Print();


    }

    }
  12. 주간식당메뉴
    2021.11.26.
  13. 2021.09.02 완료
  14. 이마누
    완료
  15. labis98
    20210814 설명이 정말 이해하기 쉽고 잘되어 있어요~~~^^ 항상 감사합니다.
  16. super1Nova
    210807
  17. Jaemin Lim
    21.07.25 완료
  18. 초딩 개발자
    2021/06/27
  19. 시중에 있는 java 기본서를 몇번 읽고 어지간한 내용은 다 아는 줄 알았는데, 이 강의 처음부터 다시 들으니 개념에 구멍이 송송 나있었네요. 왜 그럴까를 스스로 고민하면서 강의 따라가다보니 탄탄한 개념 정립에 많은 도움이 됩니다 !!
    타 사이트에서 돈 주고도 여러 강의를 들었지만, 매번 새로운 문제풀이 연습할 때 마다 일단 그냥 내키는대로 작성하고 이클립스가 추천해주는 수정안 클릭해서 그냥 대충 고치고, 왜 그런지도 모르는채로 했었는데 부끄럽네요.
  20. jeisyoon
    2021.05.02 Class 와 Instance 활용 - OK
  21. 레이
    2021.04.17
  22. 이현수
    2021.04.17
  23. 임태근
    드디어 이해됐당 ㅎㅎ
  24. 비더베스트
    not static 이 각 instance 마다 각각의 데이터를 지정하기 위해 사용하는 것이라 변수에 static/non static으로 지정하는 건 이해가 갔는데 method는 변경이 불가능한데 왜 static/non static으로 지정하는 지가 의문이었습니다. 강의를 보니 method는 변수의 값을 받아 output을 내는 도구라 결국 변수가 변하면 method 결과값 역시 함께 변하기 때문에 method 역시 static/non static으로 지정해주는 것 같군요. 좋은 강의 항상 감사드립니다!
  25. 김우중
    감사합니다
  26. boat
    정말 이해가 잘되네요 ㅜㅜㅜ 감사합니다!!!
  27. 컨훈
    지린다.. 이거 쭉 보니깐 이해 바로 됐어요
  28. 리소색
    class Accounting{
    public double valueOfSupply;
    public static double vatRate = 0.1;

    public Accounting(String valueOfSupply){

    this.valueOfSupply = Double.parseDouble(valueOfSupply);
    }

    public double getVAT() {
    return this.valueOfSupply * vatRate;
    }
    public double getTotal() {
    return this.valueOfSupply + getVAT();
    }

    public void print(){
    System.out.println("Value of supply : " + this.valueOfSupply);
    System.out.println("VAT : " + getVAT());
    System.out.println("Total : " +getTotal());

    }
    }



    public class AccountingApp {
    public static void main(String[] args) {



    Accounting a1 = new Accounting("10000");
    Accounting a2 = new Accounting("20000");
    a1.print();
    a2.print();

    a1.print();
    a2.print();

    a1.print();
    a2.print();



    }


    }
    2021 0204
  29. oyuiw
    20201213
  30. 제예솔
    감쟈합니다~~!!
  31. 안광민
    class Accounting{
    public double valueOfSupply;
    public static double vatRate = 0.1;
    public Accounting(double valueOfSupply) {
    this.valueOfSupply = valueOfSupply;
    }
    public double getVAT() {
    return valueOfSupply * vatRate;
    }
    public double getTotal() {
    return valueOfSupply + getVAT();

    }
    }
    public class Accountingapp {
    public static void main(String[] args) {

    Accounting a1 = new Accounting(10000.0);
    Accounting a2 = new Accounting(20000.0);


    System.out.println("Value of supply : " + a1.valueOfSupply);
    System.out.println("VAT : " + a1.getVAT());
    System.out.println("Total : " + a1.getTotal());


    }
    }

    완료
  32. 싱와
    이것저것 클래스화 시키고, 메소드화 시키니 메인이 엄청 줄어들고 간편해졌어요!
  33. 준서
    yay
  34. 김경은
    객체지향의 핵심 of 핵심 잘 가져갑니다!
  35. 문과생
    println도 Accounting클래스에 메소드로 집어넣으니 a3, a4를 추가해도 일일이 println을 전부 입력하지 않고 a3.Print(); 같은 간단한 소스만으로 되는군요. 클래스, 인스턴스의 위력을 확실히 알고 갑니다!
  36. 선대범
    클래스화 : 특정 작업단위별로 코드를 묶어준다.
    인스턴스화 : 묶어진 코드을 각 작업단위별로 적용할 때 단순하게 적용할 수 있게 해준다.
    생성자 : 인스턴스를 만드는 순간에 인수를 입력해 받을 수 있는 것, 인스턴스를 더 단순하게 만들어준다.
    this. : 의미가 같지만 파라미터와 멤버변수로 역활이 나눠질때 궅이 다른 명칭으로 나누지 않고 바로 사용하게 해준다.
  37. hyuna lee
    감사합니다.
  38. 김시은
    드디어 이해했어요!ㅜㅜ
  39. 발리에서생깐일
    3번정도 보고 나니 이해가 가네요.. ㅋㅋ 후덜덜
  40. 없으면안돼요
    감사합니다
  41. 임위닝
    감사합니다
    강의를 듣기전까지는 This를 사용하기 어려웠었는데 지금은 문제를 확인하고 어떻게 This를 사용할지 감이 잡히는 것 같습니다
  42. yyrr
    2020.03.15 완료
  43. 감자
    이야 이렇게 프로그래밍이 재밌는지 몰랐어요!! 시간 가는 줄 모르겠네요!!
  44. juni
    감사합니다..
  45. 라또마니
    다시 들을께요~
  46. 쑤우
    수강완료. 감사합니다
  47. 야무치
    감사합니다
  48. 허공
    감사합니다!
버전 관리
egoing
현재 버전
선택 버전
graphittie 자세히 보기