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. 육도
    2022.05.09 완료
  2. 220322 완료
  3. 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();

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

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

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

    메소드로 구조 잡고, 메소드와 변수를 그룹핑해서 클래스로 구조잡고, 그 클래스를 복제한 인스턴스를 통해 또 다른 구조를 만듦. 코드의 성을 쌓아가는 것이 자바언어의 특징임. 다른 언어들도 따르고 있다. 스스로 불편함을 느끼고 극복할 수 있는 방법을 찾는다면, 엑스트라가 아니라 내가 주체적으로 하고 있는 주인공이 될 것.
  13. 주간식당메뉴
    21.10.22.
  14. codinggwon
    강의 10 부터, 매서드는 서로 연관된 코드를 그룹핑하여 이름을 붙인 정리정돈의 상자다
  15. won4175
    2021.10.17
  16. 미NI언
    9.29
  17. 오수정
    고잉님.. 감사해요.. 경단되고 자존감 뚝뚝 자신감 뚝뚝이었는데
    코딩배우고 요즘 너무 재미있게 살고 있어요.
    하나하나 알아가며 능력이 가치의 전부는 아니겠지만 삶의가치를 느끼고 있어요 감사해요
    2021.09.29 pm3:00
  18. everdoit
    와 좋은 기능이 많네요 유용하게 써먹기 좋네요!! 감사합니다.
  19. 2021.08.26 완료
  20. labis98
    20210808 good!!!
  21. super1Nova
    210805
  22. 피톤치드
    강의 11 : 인스턴스란 하나의 클래스를 복제해서 서로 다른 데이터의 값과 서로 같은 메소드를 가진 복제본을 만든 것이다.

    인스턴스를 사용하는 이유는 하나의 클래스로 돌려막기 하지 않고 복제된 클래스를 이용해서 더 편리하고 더 버그가 적은 코딩을 하기 위해서 이다.

    인스턴스와 클래스는 그 기능은 같지만 클래스는 그 기능을 변경하거나 없애거나 할 수 있는 실체 코드가 있는 반면 인스턴스는 그런 클래스를 복제해가지고 온 실제로 존재하지 않는 복제된 클래스이기 때문에 그 기능을 변경하거나 없앨 수 없는 복제해가지고 온 클래스의 기능만 사용할 수 있는 가상의 클래스이다.
  23. 피톤치드
    강의 10 : 클래스란 역시나 서로 연관된 변수와 메소드를 그룹핑하여 거기에 이름을 붙인 정리정돈의 상자이다.

    클래스를 사용하는 이유는 프로그램에 있는 객체의 모든 속성과 기능을 단일한 템플렛으로 결합하여 복잡한 프로그램을 이해하기 쉽고 사용하기 쉽게 정리하기 위해서 이다.
  24. 피톤치드
    강의 9 : 메소드는 서로 연관된 코드를 그룹핑해서 이름을 붙인 정리정돈의 상자다.

    메소드를 쓰는 이유는 자주 사용하는 로직을 메소드로 만들어 호출하면 간편하게 로직을 재활용할 수 있다.
  25. 피톤치드
    강의 8 : 반복문이란 프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 명령문이다.

    반복문을 쓰는 이유는 똑같은 내용을 계속해서 출력해야하거나 같은 동작을 계속 반복해야 할 때 이 반복문을 통해 코드의 길이도 줄이고 효율성도 극대화하기 위해서이다.
  26. 피톤치드
    강의 7 : 배열이란 여러 값을 담는 순서가 있는 변수이다. 배열의 값은 인덱스를 가지며 모두 같은 타입이라는 특징이 있다. 인덱스는 [0]부터 시작한다.

    배열을 쓰는 이유는 다수의 변수를 선언할 때의 편의성을 위해서 이다. 선언해야 하는 변수가 적다면 사용할 필요가 없지만 수십, 수백개의 변수를 생성해야한다면 배열의 효율성을 확인할 수 있다.
  27. 수강완료 210726
    1. Variable 사용 실습
    2. Array 사용실습
    3. 제어문(if 문 활용) 실습
    4. Method 사용 실습
    - 연관된 코드를 그룹-> 이름 명명하여 사용, 코드를 간결하게 정리할 수 있음
    5. Instance(Class 클론으로 값이 다르고 메소드는 같은 것을 사용할 때 활용 할 수 있음
    - Instance는 사용하게 되면 Values는 Static 값이 아님
  28. Jaemin Lim
    21.07.20 class, instance 완료.
  29. B=loom
    2021.07.16
  30. 조유빈
    2021.07.13 완료
  31. 초딩 개발자
    2021/06/14
  32. 도공우승9
    완료
  33. jeisyoon
    2021.05.01 Class와 Instance 로 객체지향 코드 만들기 - OK

    객체지향 코드에서 Method와 Class가 중요한 이유는 프로그램을 만드는 구조를 결정하기 때문이다.
    Method와 Variable 은 서로 비슷한 코드를 Grouping하여 구조(Structure)를 만들고, Class는 서로 연관된 Method와 Variable를 Grouping하여 객체(Object)를 만든다. Instance는 Class를 복제하여 서로 다른 Data를 가지고 서로 같은 Method를 사용하는 복제본(Instance)을 만든다.

    Java에서 객체지향 코드란 Class와 Instance를 이용하여 코드의 성을 차곡차곡 쌓아가는 독특한 구조를 가지고 있다. Class와 Instance는 객체지향의 양대 산맥으로 이를 잘 사용하는 것이 중급 개발자로 가는 지름길이다.
  34. OrzlHB
    왠지 프로그래머가 된 느낌 !! ^^ -완료!!
  35. anya422
    완료!
  36. 레이
    2021.04.07
  37. chimhyangmoo
    21.04.04
  38. Sunho Kim
    완료(2021.04.01.목)
  39. jwoh
    21-03-24
    객체 지향의 핵심은 CLASS!
    method와 클라스는 정리상자이다.
    method는 좀더 하위개념의 정리상자이다.
    method와 class를 이용하면 조금 더 효율적인 코딩을 할 수 있다.
    instance도 마찬가지로 코드양을 줄이는데 도움을 준다.
    전역변수와 지역변수를 어떻게 설정하느냐에 따라 전체코딩에 영향을 준다.
    public local 개념 아직 잘 모르겠고,
    instance 사용 시 static을 지우는데 그 이유를 모르겠다.
    static은 뭘까 무슨 역할을 하는 친구일까?
    수업은 여기까지.
  40. erttr
    강의6. 조건문은 어떤 예외상항에 이용하기 좋음. if, else사용.

    강의7. 배열은 아주 길게, 복잡하게 이루어져있는 코딩이 서로 얽히거나 더렵혀지는 것을 예방하기 위해 정리정돈해주는 기능을 한다. double[] dividendRates = new double[3] -> 3가지의 더블로 이루어져있는 배열을 의미.

    강의8. 반복문은 단순히 데이터가 반복되는 경우 이를 하나의 코드로 모두 처리할 수 있도록 하는 기능을 가진다. 단순히 이 코드를 수정하는 것 만으로 1억개의 데이터를 수정할 수 있으므로 유용하게 사용될 수 있다!

    강의9. 메소드(method)는 서로 연관된 코드를 그룹핑하는 정리정돈 상자이다.

    강의10. 클레스(class)는 서로 연관된 변수와 메소드를 그룹핑하고 이름을 붙인 것이다. 메소드나 객체지향 class는 뼈대처럼 소프트웨어의 구조를 형성하여 정리정돈을 돕는다. (이게 없으면 method나 코드들이 엉망진창으로 얽혀서 다루기 어려울 것)(여기서는 회계accounting끼리 묶어서 class형성)

    강의11. 인스턴스(instance)는 하나의 class를 복제해서 서로 다른 데이터의 값과 서로 같은 method를 가진 복제본을 만드는 것이다. 하나의 class를 돌려막는 것이 아니라 복제된 class를 통해서 더 편리하고 버그가 적은 코딩을 가능하게 한다.
    소프트웨어의 구조: method로 구조 -> method + 변수로 구조 -> class (*복제) -> instance
  41. 깅깅
    조건문, 배열, 반복문, 메소드, 클래스, 인스턴스 모두 복잡하고 어려운 코드들을 단축하고 정리할 수 있도록 만들어진 고마운 기능들이네요
  42. 재심이
    와 이번거는 너무 어렵다 ㅠㅠ
    반복해서 봐야겠다 ㅠㅠ
  43. 이토리
    0220 완료
  44. 규영아빠
    20210219 완료

    예전에 95%를 듣다가 중단하게 되었을 때 머리가 복잡하기만 하고 결국은 거의 다 증발해버린 것 같았는데, 리뉴얼 강의를 통해서 더 쉽고 더 직관적으로 많은 도움이 되었습니다. 너무 많은 지식이 오히려 방해가 될 수 있다는 것을 느끼는 시간이었습니다.

    이제 그 방해가 되었던 나머지 것들을 찾아서 도움되는 것들로 승화시켜보도록 하겠습니다.
    감사합니다.
  45. boat
    배열: 비슷한 성질을 가진 값들을 묶은 것. 불필요하게 많은 변수들을 사용하지 않아도 되며, 반복문과 같이 사용한다면 수정도 편리해질 수 있다.
    반복문은 조건을 만족한다면 어떤 코드를 반복하게 할 수 있는 것이다. 어떤 동작을 반복할 때 코드가 길어지는 걸 방지할 수 있고, 수정도 쉬워진다.
    메소드는 서로 연관된 코드를 모아 이름을 붙인 것이다. 코드를 깔끔하게 정리할 수 있다. (메소드 이름을 잘 짓는다면 코드가 보기 쉬워진다.)
    클래스는 서로 연관된 변수와 메소드를 모아서 이름을 붙인 것이다.코드를 보기 쉽고 깔끔하게 정리할 수 있다.
    인스턴스는 하나의 클래스의 복제본이다.(같은 메소드에 다른 데이터 값을 가짐) 클래스의 값을 바꿔줘야할 때 클래스를 하나 더 만드는 대신 인스턴스를 이용한다면 코드가 짧고 깔끔해질 수 있다. 클래스 안 메소드를 수정하는 것도 인스턴스를 이용한다면 더 쉬워진다.
  46. submit
    완료!!
  47. gelonso
    지금 마지막 '인스턴스' 강의 부분 듣고 다 했는데 저는 왜 a1 값만 나오고 a2 값이 안나올까요?ㅠ_ㅠㅠㅠ
    강의 그대로 코드를 작성했는데 a1 값만 나와요..혹시 아시는분 계신가요?ㅠ
  48. 김궐궐
    완료
  49. artmaker
    강의5 : 기반을 잘 다져야한다고 말씀해주셨다. 우리가 지금 배우는 것 하나하나가 작은게 아니라고 느낄 수 있었다.

    강의 6 : 조건문인 if문을 배웠는데 프로그램 한개에서 조건문을 돌리는 것과 또다른 조건을 가진 프로그램을 만드는 것의 효율은 엄청나다고 생각하며 이게 조건문을 써야하는 이유라고 생각한다. 조건이 여기선 income이 10000보다 클때만 설명해주셨지만 조건이 여러개라면 전자의 방법은 매우 효율이 떨어지는 방법이라는 것을 알 수 있었다.

    강의 7 : 배열의 사용법과 사용하는 간략한 이유를 말씀해주셨다. 개발자가 된다면 정말 긴 코드를 구사하게 될것이다. 그코드는 물론 간결하고 보기쉬워야한다고 생각한다. 당연한것이다. 변수를 여러개를 쓰게된다면 코드가 길어졌을때 분명 의미가 겹치거나 이름이 비슷한 변수들이 정말 많아져 힘들것이다. 그래서 내용에 가장 핵심적인 의미를 가진 이름으로 변수를 하나만들고 배열을 만든다면 훨씬 효율적일 수 있다는 것을 배웠고 다음 배울 반복문에서 배열은 더욱 효과적으로 쓰일 것이라 말했다.
    배열 사용법 : double[] DividendRate = new double[3];

    강의 8 : 반복문의 사용을 배웠는데 왜 써야하는지 바로 이해가왔다. 프린트문의 예시만보더라도 5개만 넘어가도 반복문의 효율이 극대화된다고 생각한다.

    강의 9 : 메소드는 서로 연관된 코드를 그룹핑해서 이름을 붙인 정리정돈된 상자이다. 메소드를 사용하면 훨씬 사용하는 측에서 정리정돈된 상태로 사용가능하다. 지역(local)변수는 선언된 함수안에서만 가능하고 전역(field)변수는 모든 함수 말그대로 전역에서 사용가능하다. 메소드는 메인함수 밖에 위치하므로 변수들을 모두 전역변수화 해주고 사용하는 것이 좋은것같다. 허나 생각해봤는데 전역변수로 설정했는데 변수명이 충돌하는 경우도 있을 수 있을거같아서 모두 전역으로 설정하는것은 안좋을것같다. 이부분은 나의생각일뿐 그리고 태초의 코드상태에서 9강의 코드를 다시한번짜보니 메소드에대한 이해가 훨씬 쉽게되었다.

    강의10 : 클래스를 사용하는 이유에 대해 알아보았다. 한 게임코드 클래스안에 여러종류의 메소드와 변수가 있다고 가정해보자. 그럼 그안에는 회원가입메소드와 변수들, 상점메소드변수들, 로그인메소드 변수들등 구분없이 엄청 더럽게 나열되어있을것이다. 이를 클래스를 이용하면 각 메소드의 주제?에 맞게 정리할수 있다. 정리를 강조하시는거보면 코드가 길어질수록 이가 극대화될것이라고 예상된다. 지금 코드를 짜보고나서 느끼는점은 확실히 정리된 코드가 내가 이해하기도 편하고 다른 개발자가 수정을 해야하는 상황이 생기면 그럴때도 편리할것같다. 관련 필드들과 메소드들을 모두 지정 클래스로옮기고 메인같은곳에서 변수값을 초기화시키는 상황이있다면 지정클래스.필드명=값 이런형식으로 값을 넣으면된다. ex) AccountingDivide.VAT = 0.1;

    강의 11 : 인스턴스는 하나의 클래스를 복제해서 서로 다른 데이터의 값과 서로같은 메소드를 가진 복제본을 만드는것이다. 인스턴스를 만들어서 메소드를 불러올때는 메소드에 static을 붙인것을 삭제해야 인스턴스로 메소드를 불러올 수 있다. 자바에서는 메소드로 구조를 잡고 메소드와 변수를 그루핑해서 클래스를 만들어 큰 구조로잡고 클래스를 복제한 인스턴스를 통해 또다른 구조를 만들어 코드의 성을 쌓아가는것이 자바 언어의 독특한 특징이며 현대의 많은 컴퓨터언어들이 따라하는 특징이다.
  50. J.stan
    20201223 Finished
버전 관리
egoing
현재 버전
선택 버전
graphittie 자세히 보기