728x90
λ°˜μ‘ν˜•

** ν•œκΈ€ 단좕기 κΏ€νŒ μ •λ¦¬ν•΄λ“œλ¦½λ‹ˆλ‹€

  • ν‘œ 곡간 보기 μ’‹κ²Œ 늘리고 쀄이기 : [F5] + μ›ν•˜λŠ” 만큼 [Shift] μ›ν•˜λŠ” 만큼 μ„ νƒν•˜κΈ° =>  [Ctrl] + [ν™”μ‚΄ν‘œ] 
  • κΈ€κΌ΄, 문단 λͺ¨μ–‘ 볡사 뢙이기 : [Alt] + [c]
  • μžκ°„ 쀄이기 : [Shift] + [Alt] + [R]
  • μžκ°„ 넓이기 : [Shift] + [Alt] + [E]
  • ν‘œ 크기 μΌμ •ν•˜κ²Œ μ μš©ν•˜κΈ° : [W] - λ„ˆλΉ„[H] - 높이

+ ν•œκΈ€μ€ μ•„λ‹ˆμ§€λ§Œ [Ctrl] + 마우슀 μŠ€ν¬λ‘€ν•˜λ©΄ ν™”λ©΄ 크기가 ν™•λŒ€λ˜κ³  μΆ•μ†Œλ˜κ³  ν•©λ‹ˆλ‹Ή~~

 


1) λ©”μ„œλ“œ

 

1-1) λ©”μ„œλ“œμ˜ κ°œλ…

 

  • μž¬μ‚¬μš©ν•  수 μžˆλŠ” μ½”λ“œλ₯Ό λͺ¨μ•„λ‘” 집합
  • λ…λ¦½μ μœΌλ‘œ μ‘΄μž¬ν•˜μ§€ μ•Šκ³  클래슀 λ‚΄λΆ€μ—μ„œλ§Œ μ •μ˜λœλ‹€
  • μ½”λ“œλ₯Ό λͺ¨λ“ˆν™”ν•΄ 가독성을 λ†’μ΄λ―€λ‘œ ν”„λ‘œκ·Έλž¨ ν’ˆμ§ˆμ„ ν–₯μƒμ‹œν‚¨λ‹€

 

1-2) λ©”μ„œλ“œμ˜ ꡬ쑰

  • λ©”μ„œλ“œλŠ” 헀더와 본체둜 κ΅¬μ„±λœλ‹€
  • ν—€λ”λŠ” λ©”μ„œλ“œμ˜ μ ‘κ·Ό μ§€μ •μž, λ°˜ν™˜ νƒ€μž…, λ©”μ„œλ“œ 이름, λ§€κ°œλ³€μˆ˜λ‘œ κ΅¬μ„±λœλ‹€
  • μ ‘κ·Ό μ§€μ •μž : λ©”μ„œλ“œμ˜ νŠΉμ„±μœΌλ‘œ μ»΄νŒŒμΌλŸ¬μ— λ©”μ„œλ“œμ˜ μ ‘κ·Ό λ²”μœ„λ₯Ό μ•Œλ €μ€€λ‹€
  • λ°˜ν™˜ νƒ€μž… : λ©”μ„œλ“œκ°€ 본체λ₯Ό μ‹€ν–‰ν•œ ν›„ λ°˜ν™˜ν•  데이터 νƒ€μž…μ΄λ‹€. λ°˜ν™˜ν•  데이터가 μ—†λ‹€λ©΄ λ°˜ν™˜ νƒ€μž…μ— voidλ₯Ό μ‚¬μš©ν•œλ‹€. λ”°λΌμ„œ main() λ©”μ„œλ“œλŠ” λ°˜ν™˜ν•  데이터가 μ—†μœΌλ―€λ‘œ λ°˜ν™˜ νƒ€μž…μœΌλ‘œ voidλ₯Ό μ‚¬μš©ν•œλ‹€
  • 지역 λ³€μˆ˜ : λ©”μ„œλ“œλŠ” λ³€μˆ˜λ₯Ό μ„ μ–Έν•΄ μ‚¬μš©ν•˜λŠ”λ°, λ§€κ°œλ³€μˆ˜λ‚˜ λ©”μ„œλ“œ 본체에 μ„ μ–Έλœ λ³€μˆ˜λ₯Ό 지역 λ³€μˆ˜λΌκ³  ν•œλ‹€.
  • λ³Έμ²΄λŠ” μ‹€ν–‰ν•  μ½”λ“œλ₯Ό λ‚˜μ—΄ν•˜λŠ” λΆ€λΆ„μœΌλ‘œ λ©”μ„œλ“œ μ‹€ν–‰ 블둝이닀

 

1-3) λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”©

 

  • μžλ°”λŠ” λ©”μ„œλ“œ μ‹œκ·Έλ„ˆμ²˜(λ©”μ„œλ“œ 이름, λ§€κ°œλ³€μˆ˜μ˜ 개수, λ§€κ°œλ³€μˆ˜μ˜ 데이터 νƒ€μž…, λ§€κ°œλ³€μˆ˜μ˜ μˆœμ„œλ₯Ό 의미)λ₯Ό μ‚¬μš©ν•΄ λ©”μ„œλ“œλ₯Ό κ΅¬λΆ„ν•œλ‹€
  • λ©”μ„œλ“œ 이름이 λ™μΌν•˜λ”λΌλ„ λ§€κ°œλ³€μˆ˜μ˜ 개수, λ§€κ°œλ³€μˆ˜μ˜ 데이터 νƒ€μž…, λ§€κ°œλ³€μˆ˜μ˜ μˆœμ„œ 쀑 ν•˜λ‚˜λΌλ„ λ‹€λ₯΄λ©΄ μ„œλ‘œ λ‹€λ₯Έ λ©”μ„œλ“€ μ·¨κΈ‰ν•œλ‹€. 
  • 이름은 κ°™μ§€λ§Œ λ©”μ„œλ“œ μ‹œκ·Έλ„ˆμ²˜κ°€ λ‹€λ₯Έ λ©”μ„œλ“œλ₯Ό μ •μ˜ν•˜λŠ” 것을 λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”©μ΄λΌκ³  ν•œλ‹€.

public class OverloadDemo {

       public static void main(String[] args) {

              int i1 = 3, i2 = 7, i3 = 10;

              double d1 = 7.0, d2 = 3.0;

              System.out.printf("max(%d, %d) = %d\n", i1, i2, max(i1, i2));

              System.out.printf("max(%.1f, %.1f) = %.1f\n", d1, d2, max(d1, d2));

              System.out.printf("max(%d, %d,%d) = %d\n", i1, i2, i3, max(i1, i2, i3));

       }

       public static int max(int n1, int n2) {

              int result = n1 > n2 ? n1 : n2;

              return result;

       }

        public static double max(double n1, double n2) {

        double result = n1 > n2 ? n1 : n2;

        return result;

        }

        public static int max(int n1, int n2, int n3) {

         return max(max(n1, n2), n3);

        }

}

닡은

max(3, 7) = 7

max(7.0, 3.0) = 7.0

max(3, 7,10) = 10

μž…λ‹ˆλ‹€~

 

2)  Github μ‚¬μš©ν•˜κΈ°

 

2-1) Github 아라보기

  • GitHub : μ½”λ“œ μ €μž₯μ†Œ(μ½”λ“œ μ €μž₯μ†Œμ˜ ν΄λΌμš°λ“œ 같은 λŠλ‚Œ)
  • Gitμ΄λž‘ GitHubλŠ” λ‹€λ₯΄λ‹€ (Git은 μ½”λ“œ κ΄€λ¦¬ν•˜μ—¬ Github에 μ½”λ“œλ₯Ό μ €μž₯)
  • ν¬ν† ν΄λ¦¬μ˜€ μž‘μ„±μ— μ’‹λ‹€

 

2-2) 폴더 λ§Œλ“€κΈ°

  • κ°€μž…μ„ ν•œλ‹€ : ꡬ글 μ•„μ΄λ””λ‘œ ν•˜λ©΄ μ’‹μŒ
  • μ΄ˆλ‘μƒ new 창을 λ“€μ–΄κ°„λ‹€
  • repository name 폴더λͺ…을 μž…λ ₯ν•œλ‹€
  • νŒŒμΌμ„ κ³΅μœ ν•˜λ €λ©΄ public λ³΄μ•ˆν•˜λ €λ©΄ privateλ₯Ό μ„ νƒν•œλ‹€
  • create repositoryλ₯Ό μ„ νƒν•˜μ—¬ 폴더λ₯Ό λ§Œλ“ λ‹€

 

2-3) 파일 μΆ”κ°€ν•˜κΈ°

 

  • κΉƒ μ‚¬μš©ν•˜μ§€ μ•Šκ³  νŒŒμΌμ„ μ—…λ‘œλ“œν•œλ‹€λ©΄...
  • Add file에 Upload files에 λ“€μ–΄κ°„λ‹€μŒ
  • νŒŒμΌμ„ λ“œλž˜κ·Έν•˜κ±°λ‚˜ νŒŒμΌμ„ μ„ νƒν•©λ‹ˆλ‹€
  • Commit changes 밑에 μ„€λͺ…을 μΆ”κ°€ν•©λ‹ˆλ‹€.

 

제 κΉƒν—ˆλΈŒμž…λ‹ˆλ‹€~~~ λ§Žμ€ 관심 λΆ€νƒλ“œλ €μš©πŸ’•πŸ’•

 

https://github.com/chosuhyeon0812/Test.git

 

GitHub - chosuhyeon0812/Test

Contribute to chosuhyeon0812/Test development by creating an account on GitHub.

github.com

 

728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

1) μ œμ–΄λ¬Έ

  : μ‹€ν–‰λ¬Έμ˜ μˆ˜ν–‰ μˆœμ„œλ₯Ό λ³€κ²½ν•˜λŠ” 것 (쑰건문, 반볡문, λΆ„κΈ°λ¬ΈμœΌλ‘œ ꡬ뢄) 

 

  • 쑰건문 : μ‘°κ±΄μ‹μ˜ 결과에 따라 μ—¬λŸ¬ μ‹€ν–‰ 경둜  쀑 ν•˜λ‚˜λ₯Ό μ„ νƒν•œλ‹€. 선택문이라고도 ν•œλ‹€. ex)  λ‹€μ–‘ν•œ μ’…λ₯˜μ˜ if λ¬Έ,  switch λ¬Έ
  • 반볡문 : 쑰건에 따라 같은 처리λ₯Ό λ°˜λ³΅ν•œλ‹€ ex)  for λ¬Έ, while λ¬Έ, do~while λ¬Έ
  • λΆ„κΈ°λ¬Έ : μ‹€ν–‰ 흐름을 무쑰건 λ³€κ²½ν•˜λŠ” break λ¬Έκ³Ό continue 문이 μžˆλ‹€.
  • μ œμ–΄λ¬Έ 내뢄에 λ‹€λ₯Έ μ œμ–΄λ¬Έμ„ 포함할 수 μžˆμ–΄ μ œμ–΄λ¬Έμ„ μ‚¬μš©ν•˜λ©΄ 흐름이 λ³΅μž‘ν•œ ν”„λ‘œκ·Έλž¨λ„ κ°œλ°œν•  수 μžˆλ‹€.

 

2) 쑰건문 

 

2-1) λ‹¨μˆœ if λ¬Έ 

  • 쑰건식이 true일 λ•Œλ§Œ 싀행문을 μˆ˜ν–‰ν•œλ‹€
  • 쑰건식이 true일 λ•Œ 싀행문이 ν•˜λ‚˜λΌλ©΄ { } λ₯Ό μƒλž΅ν•  수 μžˆλ‹€

2-2) if~else λ¬Έ 

  • μ‘°κ±΄μ‹μ˜ trueλ‚˜ false에 따라 λ‹€λ₯Έ 싀행문을 μˆ˜ν–‰ν•  λ•Œ μ‚¬μš©ν•œλ‹€

import java.util.Scanner;

public class java0402 {

       public static void main(String[] args) {

              Scanner in = new Scanner(System.in);

              System.out.print("숫자λ₯Ό μž…λ ₯ν•˜μ„Έμš”:");

              int number = in.nextInt();

              if (number % 2 == 0)

                   System.out.println("짝수!");

              else

                    System.out.println("ν™€μˆ˜!");

               System.out.println("μ’…λ£Œ");

         }

}

9~12ν–‰κ³Ό 같이 λ‹¨μˆœν•œ if~else 문은 쑰건 μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•΄ 더 κ°„κ²°ν•˜κ²Œ ν‘œν˜„ν•  수 μžˆλ‹€

 

=> System.out.println(number % 2 == 0 ? "짝수!" : "ν™€μˆ˜!");

 

2-3) 닀쀑 if λ¬Έ 

 

  • 쑰건이 λ‹€μ–‘ν•  λ•ŒλŠ” 닀쀑 if 문으둜 ν‘œν˜„ν•˜λ©΄ μ’‹λ‹€
  • if λ¬Έ λ‹€μŒμ— else if 문을 연속 μΆ”κ°€ν•΄ 각 쑰건을 μ°¨λ‘€λŒ€λ‘œ μ κ²€ν•œ ν›„ λ§Œμ‘±ν•˜λŠ” 싀행문을 μˆ˜ν–‰ν•œλ‹€
  • 닀쀑 if 문은 μ—¬λŸ¬ 쑰건 쀑 ν•˜λ‚˜λ§Œ ture둜써 ν•΄λ‹Ή 싀행문을 μˆ˜ν–‰ν•˜κ³ , λ‚˜λ¨Έμ§€λŠ” 더 이상 λΉ„κ΅ν•˜μ§€ μ•ŠλŠ”λ‹€.

2-4) 쀑첩 if λ¬Έ

 

  • if 문에 λ‹€λ₯Έ if 문이 ν¬ν•¨λ˜λŠ” 것
  • 쀑첩 if λ¬Έμ—λŠ” if 절과 else μ ˆμ— κ΄€λ ¨λœ 싀행문이 λͺ…ν™•ν•˜κ²Œ ν‘œμ‹œλ˜λ„λ‘ μ€‘κ΄„ν˜Έλ₯Ό μ‚¬μš©ν•˜λ©΄ μ’‹λ‹€.(μ‚¬μš© μ•ˆν•΄λ„ 싀행은 κ°€λŠ₯ν•˜μ§€λ§Œ ν˜Όλž€μŠ€λŸ¬μšΈ 수 μžˆλ‹€)

μ™Όμͺ½ if 문의 경우 λ“€μ—¬μ“°κΈ°λ₯Ό 잘λͺ»ν•΄μ„œ 마치 else절이 μ™ΈλΆ€ if λ¬Έκ³Ό μ—°κ²°λ˜μ–΄ μžˆλŠ” κ²ƒμ²˜λŸΌ 보인닀.

 

3) 반볡문

 

3-1) while λ¬Έ

 

  • λ°˜λ³΅ν•  νšŸμˆ˜λŠ” 미리 μ•Œ 수 μ—†μ§€λ§Œ 쑰건은 μ•Œ 수 μžˆμ„ λ•Œ 주둜 μ‚¬μš©ν•˜λŠ” 반볡문
  • 쑰건식이 true 일 λ™μ•ˆ 본체 싀행문을 반볡적으둜 μˆ˜ν–‰ν•œλ‹€.
  • 쑰건식이 false이면 while λ¬Έ λ‹€μŒ 싀행문을 μˆ˜ν–‰ν•œλ‹€.

public class WhileDemo_2 {

         public static void main(String[] args) {

                int i = 1;

                while (i < 5) {

                System.out.print(i);

                  i++;

                }

          }

 }

i 값이 5보닀 μž‘μ„ λ™μ•ˆ λ°˜λ³΅ν•΄ μ‹€ν–‰ν•˜λ―€λ‘œ

κ²°κ³ΌλŠ”

1234

 

3-2) do~while λ¬Έ

 

  •  while λ¬Έκ³Ό λΉ„μŠ·ν•˜μ§€λ§Œ 쑰건식 평가와 본체 μ‹€ν–‰ μˆœμ„œκ°€ λ‹€λ₯΄λ‹€
  • 반볡문 본체λ₯Ό λ¨Όμ € μ‹€ν–‰ν•œ ν›„ 쑰건식을 ν‰κ°€ν•œλ‹€(μ΅œμ†Œν•œ ν•œ λ²ˆμ€ 반볡문 본체λ₯Ό μ‹€ν–‰ν•œλ‹€)
  • μ„Έλ―Έμ½”λ‘ μœΌλ‘œ 끝내야 ν•˜λ©°, while λ¬Έκ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ 쑰건식이 없을 λ•ŒλŠ” 컴파일 였λ₯˜κ°€ λ°œμƒν•œλ‹€.
  • 근데 μ½”λ“œ λ³Όλ•Œ 잘 본적이 μ—†λŠ”κ²ƒ κ°™μŒ.. 거의 λ°˜λ³΅λ¬Έν•˜λ©΄ whileμ΄λ‚˜ for을 μ‚¬μš©ν–ˆλ˜ 듯함..

public class DoWhile1Demo {

        public static void main(String[] args) {

               int i = 1;

               do {

                      System.out.print(i);

                       i++;

                } while(i<5);

         }

}

연속 숫자λ₯Ό 좜λ ₯ν•˜λŠ” μ˜ˆμ œλŠ” while 문을 μ‚¬μš©ν•˜λ“  do~while 문을 μ‚¬μš©ν•˜λ“  간에 κ²°κ³ΌλŠ” κ°™λ‹€.

=> μ‹€ν–‰ κ²°κ³Όλ₯Ό 보면, do~while 문은 λ³Έν…Œλ₯Ό ν•œ 번 μ‹€ν–‰ν•˜μ§€λ§Œ, while 문은 본체λ₯Ό ν•œ λ²ˆλ„ μ‹€ν–‰ν•˜μ§€ μ•Šμ€ μ±„λ‘œ μ’…λ£Œν•œ 것을  μ•Œ 수 μžˆλ‹€.

 

3-3) for λ¬Έ

 

  • λ°˜λ³΅ν•  횟수λ₯Ό 미리 μ•Œ 수 μžˆμ„ λ•Œ 주둜 μ‚¬μš©ν•˜λŠ” 반볡문
  • 쑰건식이 true이면 본체 싀행문을 반볡적으둜 μˆ˜ν–‰ν•œλ‹€.
  • λ‹€λ₯Έ λ°˜λ³΅λ¬Έμ— λΉ„ν•΄ μ½”λ“œμ˜ 길이가 짧음!!(λ‚΄κ°€ λŠλΌκΈ°μ—), κ°€μž₯ νš¨μœ¨μ μž„

public class For1Demo {

       public static void main(String[] args) {

              for (int i = 1; i < 5; i++)

              System.out.print(i);

       }

}

  • for 문은 μ΄ˆκΈ°μ‹, 쑰건식, 증감식도 μƒλž΅ν•  수 μžˆλŠ”λ°, μ΄λ•ŒλŠ” λ¬΄ν•œ 반볡문이 λœλ‹€.

  • for λ¬Έμ—μ„œ μ΄ˆκΈ°μ‹μ΄λ‚˜ 증감식이 2개 이상 ν•„μš”ν•˜λ‹€λ©΄ λ‹€μŒκ³Ό 같이 μ‰½ν‘œλ‘œ κ΅¬λΆ„ν•΄μ„œ μž‘μ„±ν•œλ‹€.

 

4) λΆ„κΈ°λ¬Έ   **뢄기문을 μ‚¬μš©ν•˜λ©΄ ν”„λ‘œκ·Έλž¨ 흐름이 λ³΅μž‘ν•΄μ§€κΈ° λ•Œλ¬Έμ— κΌ­ ν•„μš”ν•  λ•Œλ₯Ό μ œμ™Έν•˜κ³ λŠ” 3κ°€ν•˜3

 

4-1) break λ¬Έ

 

  • λ°˜λ³΅λ¬Έμ΄λ‚˜ switch 문의 본채λ₯Ό λ²—μ–΄λ‚˜λ €κ³  주둜 μ‚¬μš©λœλ‹€
  • λ ˆμ΄λΈ”κ³Ό ν•¨κ»˜ μ‚¬μš©ν•  μˆ˜λ„ μžˆλ‹€. 
  • λ ˆμ΄λΈ”μ΄ μ—†λ‹€λ©΄ break 문을 ν¬ν•¨ν•˜λŠ” 맨 μ•ˆμͺ½ λ°˜λ³΅λ¬Έμ„ μ’…λ£Œν•˜κ³ , λ ˆμ΄λΈ”μ΄ μžˆλ‹€λ©΄ λ ˆμ΄λΈ”λ‘œ ν‘œμ‹œλœ μ™ΈλΆ€ λ°˜λ³΅λ¬Έμ„ μ’…λ£Œ

public class BreakDemo {

        public static void main(String[] args) {

                int i = 1, j = 5;

                while (true) {

                      System.out.println(i++);

                       if (i >= j)

                           break;

               }

        }             

}

닡은

1

2

3

4

4-2) continue λ¬Έ

 

  • λ°˜λ³΅λ¬Έμ—μ„œλ§Œ μ‚¬μš©
  • continue문도 break 문처럼 λ ˆμ΄λΈ”μ„ 뢙일 수 μžˆλ‹€

public class ContinueDemo {

       public static void main(String[] args) {

              for (int i = 0; i < 10; i++) {

                    if (i % 2 == 0)

                        continue;

                    System.out.print(i);

             }

     }

}

닡은

1

3

5

7

9

 

 

728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

1) μ •μ²˜κΈ° μΉ΄μš΄νŠΈλ‹€μš΄ ν”„λ‘œκ·Έλž¨ λ§Œλ“€κΈ°

 

1-1) java 버전 : κ³„μ†ν•΄μ„œ μ‹œκ°„ μΉ΄μš΄νŠΈν•˜κ³  λ”°λ‘œ νŽ˜μ΄μ§€κ°€ λœ¨λŠ”κ²Œ μ•„λ‹ˆλΌ λ°”λ‘œ 파이썬으둜 λ³€κ²½

더보기

package java0328;

import java.time.Duration;

import java.time.LocalDateTime;

public class Countdown {

public static void main(String[] args) {

LocalDateTime endDateTime = LocalDateTime.of(2023, 5, 13, 0, 0, 0);

LocalDateTime nowDateTime;

while (true) {

nowDateTime = LocalDateTime.now();

if (nowDateTime.isAfter(endDateTime)) {

System.out.println("Time's up!");

break;

}

Duration duration = Duration.between(nowDateTime, endDateTime);

long days = duration.toDays();

long hours = duration.toHours() % 24;

long minutes = duration.toMinutes() % 60;

long seconds = duration.getSeconds() % 60;

String remainingTime = String.format("%02d:%02d:%02d:%02d", days, hours, minutes, seconds);

System.out.println(remainingTime);

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

 

}

λ‚˜μ˜€λŠ” κ²°κ³ΌλŠ” 

μ‹œκ°„μ΄ μ§€λ‚ μˆ˜λ‘ 점점 μž‘μ•„μ§„λ‹€

 

1-2) python버전 : GUIλ₯Ό μ΄μš©ν•΄μ„œ λ§Œλ“œλ©΄ λ”°λ‘œ νŽ˜μ΄μ§€λ₯Ό λ§Œλ“€ 수 μžˆλ‹€

import tkinter as tk
import datetime


class CountdownApp:
    def __init__(self, master):
        self.master = master
        self.master.title("μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬ ν•„κΈ° 합격 κ°€λ³΄μžκ³ !")
        self.end_date = datetime.datetime(2023, 5, 13)
        self.remaining_time_str = tk.StringVar(value=self.get_remaining_time())
        self.remaining_time_label = tk.Label(
            self.master,
            textvariable=self.remaining_time_str,
            font=("Arial", 64),
            fg="blue",
            bg="gray",
        )
        self.remaining_time_label.pack(pady=20)

        # Create image label
        self.image_label = tk.Label(self.master)
        self.image_label.pack(pady=10)

        self.message_label = tk.Label(
            self.master,
            text="μ‘°μˆ˜ν˜„ μ•„μžμ•„μž ν™”μ΄νŒ…!",
            font=("Arial", 24),
            fg="white",
            bg="green",
        )
        self.message_label.pack(pady=10)

        # Load image and set it to the image label
        self.kakao_image = tk.PhotoImage(file="D:\chosuhyeon\school class\python\py0328\shsu.png")
        self.image_label.configure(image=self.kakao_image)

        self.countdown()

    def get_remaining_time(self):
        remaining = self.end_date - datetime.datetime.now()
        days, seconds = remaining.days, remaining.seconds
        hours = seconds // 3600
        minutes = (seconds % 3600) // 60
        seconds = seconds % 60
        remaining_time = f"{days:02}:{hours:02}:{minutes:02}:{seconds:02}"
        return remaining_time

    def countdown(self):
        self.remaining_time_str.set(self.get_remaining_time())
        if datetime.datetime.now() >= self.end_date:
            self.remaining_time_str.set("Time's up!")
            return
        self.master.after(1000, self.countdown)


if __name__ == "__main__":
    root = tk.Tk()
    app = CountdownApp(root)
    root.mainloop()

μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬λ₯Ό ν•©κ²©ν•˜κ³ 

μžν•˜λŠ” 염원을 λ‹΄μ•„ chat gptν•œν…Œ λ¬Όμ–΄λ³΄μ•˜κ³  μƒμ„Ένžˆ μ•Œλ €μ£Όμ‹¬μš”~~

λ‚˜μ˜¨κ²°κ³ΌλŠ”

μ’‹μ•„ν•˜λŠ” μ΅œκ³ μ‹¬ 캐릭터λ₯Ό λ„£μ–΄λ³΄μ•˜μŠ΅λ‹ˆλ‹ΉπŸ’₯πŸ’₯


2) νŒ¨ν‚€μ§€

 

2-1) 의미

  • 클래슀 νŒŒμΌμ„ λ¬Άμ–΄μ„œ κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ μˆ˜λ‹¨μœΌλ‘œ 파일 μ‹œμŠ€ν…œμ˜ 폴더λ₯Ό 이용
  • νŒ¨ν‚€μ§€μ— μ˜ν•œ μž₯점

- νŒ¨ν‚€μ§€λ§ˆλ‹€ λ³„λ„μ˜ 이름 곡간이 생기기 λ•Œλ¬Έμ— 클래슀 μ΄λ¦„μ˜ μœ μΌμ„±μ„ 보μž₯

- 클래슀λ₯Ό νŒ¨ν‚€μ§€ λ‹¨μœ„λ‘œλ„ μ œμ–΄ν•  수 있기 λ•Œλ¬Έμ— μ’€ 더 μ„Έλ°€ν•˜κ²Œ μ ‘κ·Ό μ œμ–΄

 

2-2) νŒ¨ν‚€μ§€ μ„ μ–Έ

  • 주석문을 μ œμ™Έν•˜κ³  λ°˜λ“œμ‹œ 첫 행에 μ„ μ–Έν•΄μ•Ό ν•œλ‹€. 
  • νŒ¨ν‚€μ§€ 이름은 λͺ¨λ‘ μ†Œλ¬Έμžλ‘œ λͺ…λͺ…ν•˜λŠ” 것이 관둀이며, λŒ€κ°œ νšŒμ‚¬μ˜ 도메인 이름을 μ—­μˆœμœΌλ‘œ μ‚¬μš©ν•œλ‹€. 

2-3) import문

  • νŒ¨ν‚€μ§€μ˜ 경둜λ₯Ό 미리 μ»΄νŒŒμΌλŸ¬μ—κ²Œ μ•Œλ €μ£ΌλŠ” λ¬Έμž₯
  • import 문은 μ†ŒμŠ€ νŒŒμΌμ—μ„œ package λ¬Έκ³Ό 첫 번째 클래슀 μ„ μ–ΈλΆ€ 사이에 μœ„μΉ˜

import문 예제

2-4) 상속과 μ ‘κ·Ό μ œμ–΄

 

- μ ‘κ·Ό μ§€μ •μžμ˜ μ ‘κ·Ό λ²”μœ„

μ ‘κ·Ό μ§€μ •μž λ™μΌν΄λž˜μŠ€ 동일 νŒ¨ν‚€μ§€ μžμ‹ 클래슀 λ‹€λ₯Έ νŒ¨ν‚€μ§€
public o o o o
protected o o o x
default(μ—†μŒ) o o x x
private o x x x

μžλ°”ν•˜λ©΄μ„œ 정말 μ€‘μš”ν•˜λ‹€κ³  말씀해주신 뢀뢄이 λͺ‡ μ—†μ—ˆλŠ”λ° 정말 κ°•μ‘°ν•˜μ‹ κ±° 쀑에 ν•˜λ‚˜μ—μš”~~ μ•„μ’Œμ’Œ λ‹€ μ™Έμ›Œλ³΄μž₯

 

- μ ‘κ·Ό μ§€μ •μž μ‚¬μš© μ‹œ 주의 사항

  • private λ©€λ²„λŠ” μžμ‹ ν΄λž˜μŠ€μ— μƒμ†λ˜μ§€ μ•ŠλŠ”λ‹€
  • 클래슀 λ©€λ²„λŠ” μ–΄λ–€ μ ‘κ·Ό μ§€μ •μžλ‘œλ„ 지정할 수 μžˆμ§€λ§Œ, ν΄λž˜μŠ€λŠ” protected, private으둜 지정할 수 μ—†λ‹€
  • λ©”μ„œλ“œλ₯Ό μ˜€λ²„λΌμ΄λ”©ν•  λ•Œ λΆ€λͺ¨ 클래슀의 λ©”μ„œλ“œλ³΄λ‹€ κ°€μ‹œμ„±μ„ 더 쒁게 ν•  μˆ˜λŠ” μ—†λ‹€

2-5) final 클래슀

- final λ©”μ„œλ“œλŠ” 더 이상 μ˜€λ²„λΌμ΄λ”©ν•  수 μ—†λŠ” μ’…λ‹¨μ˜ λ©”μ„œλ“œμ΄λ‹€

=> λ”°λΌμ„œ λΆ€λͺ¨ ν΄λž˜μŠ€μ—μ„œ μ •μ˜ν•œ final λ©”μ„œλ“œλ₯Ό μžμ‹ ν΄λž˜μŠ€λŠ” μˆ˜μ • 없이 κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜μ—¬μ•Ό ν•œλ‹€.

- final ν΄λž˜μŠ€λŠ” 클래슀 λ‚΄λΆ€μ˜ λͺ¨λ“  λ©”μ„œλ“œλ₯Ό μ˜€λ²„λΌμ΄λ”©ν•  수 μ—†κ³  νŠΉμ • λ©”μ„œλ“œλ§Œ μ˜€λ²„λΌμ΄λ”©ν•˜μ§€ μ•Šλ„λ‘ ν•˜λ €λ©΄ final λ©”μ„œλ“œλ‘œ μ„ μ–Έν•˜λ©΄λœλ‹€.

728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

1) μ—°μ‚°μž

 

1-1) μ—°μ‚°μžλž€?

      νŠΉμ •ν•œ μž‘μ—…μ„ ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©ν•˜λŠ” 기호

 

1-2) μ—°μ‚°μžμ˜ μ’…λ₯˜ : λŒ€μž…, μ‚°μˆ , 비ꡐ, 논리

 

1-3) μ‚°μˆ  μ—°μ‚°μž : μˆ˜ν•™μ μΈ κ³„산에 μ‚¬μš©λ˜λŠ” μ—°μ‚°μž

        +  (λ”ν•˜κΈ°)   - (λΉΌκΈ°)       *(κ³±ν•˜κΈ°)     /(λ‚˜λˆ„κΈ°)      %(λ‚˜λ¨Έμ§€)

 

1-4) 단항 μ—°μ‚°μž : μ’Œν•­κ³Ό μš°ν•­μ΄ μžˆμ§€ μ•Šμ€ μ—°μ‚°μž ex) +3, -3

   

+ : μ–‘μˆ˜λ₯Ό ν‘œν˜„ν•œλ‹€ / μ‹€μ œλ‘œ μ‚¬μš©ν•  ν•„μš”κ°€ μ—†λ‹€

- : 음수λ₯Ό ν‘œν˜„ν•œλ‹€

++ : 증가 μ—°μ‚°μžλ‘œ ν•­μ˜ 값을 1μ”© μ¦κ°€μ‹œν‚¨λ‹€

- -  : κ°μ†Œ μ—°μ‚°μžλ‘œ λ‹€μŒ ν•­μ—μ„œ 값을 1μ”© κ°μ†Œμ‹œν‚¨λ‹€.

 

더보기

public static void main(String[] args) {

// result의 값은 3

int result = 1 + 2;

System.out.println(result);

// result의 값은 2

result = result - 1;

System.out.println(result);

// result의 값은 4

result = result * 2;

System.out.println(result);

// result의 값은 2

result = result / 2;

System.out.println(result);

// result의 값은 10

result = result + 8;

System.out.println(result);

닡은

 

3

2

4

2

10

 

더보기

public static void main(String[] args) {

int i = 3;

i++;

System.out.println(i); // 4 좜λ ₯

++i;

System.out.println(i); // 5좜λ ₯

System.out.println(++i); // 6좜λ ₯

System.out.println(i++); // 6좜λ ₯

System.out.println(i); // 좜λ ₯

}

닡은 

 

4

5

6

6

7

 

1-5) μ—°μ‚°μž μš°μ„ μˆœμœ„ : μ •μ²˜κΈ° ν•„κΈ°λ•ŒλŠ” 쑰금 μ€‘μš”ν•˜μ§€λ§Œ μ‹€μ œλ‘œ μ½”λ”©μ—μ„œλŠ” μ™ΈμšΈ ν•„μš”κ°€ μ—†λ‹€κ³  함.. 

2) 상속

 

2-1)  μƒμ†μ˜ ν•„μš”μ„± : (a)의 경우라면 ν΄λž˜μŠ€λ§ˆλ‹€ μ€‘λ³΅λœ λ‚΄μš©μ„ 두어야 ν•˜κ³ , 이와 같은 ν•„λ“œλ‚˜ λ©”μ„œλ“œλ₯Ό μˆ˜μ •ν•  λ•ŒλŠ” 3개클래슀 λͺ¨λ‘μ—μ„œ ν•΄μ•Όν•˜μ§€λ§Œ μ΄λŠ” μ€‘λ³΅λœ μ½”λ“œλ₯Ό λ°œμƒμ‹œν‚€κ³ , μœ μ§€ λ³΄μˆ˜ν•˜κΈ° μ–΄λ ΅κ²Œ λ§Œλ“ λ‹€. λ”°λΌμ„œ, μ€‘λ³΅λ˜λŠ” μ½”λ“œλ₯Ό ν΄λž˜μŠ€λ§ˆλ‹€ λ‘κΈ°λ³΄λ‹€λŠ” ν•œκ³³μœΌλ‘œ ν†΅ν•©ν•΄μ„œ λ³„λ„μ˜ 클래슀둜 두면 μ½”λ“œλ„ κ°„κ²°ν•˜κ³  κ΄€λ¦¬ν•˜κΈ° νŽΈν•˜λ‹€

a) 상속을 μ‚¬μš©ν•˜κΈ° μ „

b) 상속을 μ μš©ν•œ ν›„

2-2) μƒμ†μ΄λž€?

- μžμ‹ ν΄λž˜μŠ€λŠ” λΆ€λͺ¨ ν΄λž˜μŠ€μ—μ„œ 물렀받은 멀버λ₯Ό κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜κ±°λ‚˜ λ³€κ²½ν•  수 있고 μƒˆλ‘œμš΄ 멀버λ₯Ό μΆ”κ°€ν•  수 이싿. 

- λ”°λΌμ„œ μžμ‹ ν΄λž˜μŠ€λŠ” λŒ€μ²΄λ‘œ λΆ€λͺ¨ ν΄λž˜μŠ€λ³΄λ‹€ μ†μ„±μ΄λ‚˜ λ™μž‘μ΄ λ§Žλ‹€.

 

2-3) μƒμ†μ˜ μ„ μ–Έ

: μžμ‹ ν΄λž˜μŠ€λŠ” λΆ€λͺ¨ ν΄λž˜μŠ€λ‘œλΆ€ν„° ν™•μž₯λœλ‹€λŠ” 의미둜 extneds ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄ 상속 관계λ₯Ό μ„ μ–Έν•œλ‹€.

- 닀쀑 상속은 μ•ˆλ¨(ν•œλ²ˆμ— λ‘κ°œ 이상 λ‚˜μ—΄μ€ μ•ˆλ¨) ν•˜μ§€λ§Œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν†΅ν•˜μ—¬ 닀쀑 μƒμ†μ˜ 효과λ₯Ό 얻을 수 μžˆλ‹€κ³ λ„ 함

 

2-4) λ©”μ„œλ“œ μ˜€λ²„λΌμ΄λ”©

: λΆ€λͺ¨ν΄λž˜μŠ€μ˜ λ©”μ„œλ“œκ°€ μžμ‹ ν΄λž˜μŠ€μ— μ ν•©ν•˜μ§€ μ•Šμ€λ‹€λ©΄ μžμ‹ ν΄λž˜μŠ€λŠ” 물렀받은 λ©”μ„œλ“œλ₯Ό μžμ‹ μ—κ²Œ λ§žλ„λ‘ μˆ˜μ •ν•  수 μžˆλŠ”λ°, 이λ₯Έ λ©”μ„œλ“œ μ˜€λ²„λΌμ΄λ”©μ΄λΌκ³  ν•œλ‹€.(μ˜€λ²„λ‘œλ”© κ°œλ…κ³Ό λΉ„κ΅ν•΄μ„œ μ•Œμ•„λ‘κΈ°!!)

 

- κ·œμΉ™

  • λΆ€λͺ¨ 클래슀의 λ©”μ„œλ“œμ™€ λ™μΌν•œ μ‹œκ·Έλ‹ˆμ²˜λ₯΄ μ‚¬μš©ν•œλ‹€(심지어 λ°˜ν™˜ νƒ€μž…κΉŒμ§€ 동일해야 ν•œλ‹€)
  • λΆ€λͺ¨ 클래슀의 λ©”μ„œλ“œλ³΄λ‹€ μ ‘κ·Ό λ²”μœ„λ₯Ό 더 쒁게 μˆ˜μ •ν•  수 μ—†λ‹€
  • 좔가적인 μ˜ˆμ™Έκ°€ λ°œμƒν•  수 μžˆμŒμ„ λ‚˜νƒ€λ‚Ό 수 μ—†λ‹€

- μ˜€λ²„λΌμ΄λ”© λΆˆκ°€ ν•­λͺ©

  • private λ©”μ„œλ“œ : λΆ€λͺ¨ 클래슀 μ „μš©μ΄λ―€λ‘œ μžμ‹ ν΄λž˜μŠ€μ— μƒμ†λ˜μ§€ μ•ŠλŠ”λ‹€.
  • 정적 λ©”μ„œλ“œ : 클래슀 μ†Œμ†μ΄λ―€λ‘œ μžμ‹ ν΄λž˜μŠ€κ°€ μ˜€λ²„λΌμ΄λ”©ν•  수 μ—†λ‹€. 
  • final λ©”μ„œλ“œ : final λ©”μ„œλ“œλŠ” 더 이상 μˆ˜μ •λ  수 μ—†μœΌλ―€λ‘œ μžμ‹ ν΄λž˜μŠ€κ°€ μ˜€λ²„λΌμ΄λ”© ν•  수 μ—†λ‹€.

- λΆ€λͺ¨ 클래슀의 멀버 μ ‘κ·Ό

  • μžμ‹ ν΄λž˜μŠ€κ°€ λ©”μ„œλ“œλ₯Ό μ˜€λ²„λΌμ΄λ”©ν•˜λ©΄ μžμ‹ κ°μ²΄λŠ” λΆ€λͺ¨ 클래슀의 μ˜€λ²„λΌμ΄λ”©λœ λ©”μ„œλ“œλ₯Ό μˆ¨κΈ΄λ‹€
  • κ·Έ μˆ¨κ²¨μ§„ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•΄μ•Ό ν•  λ•Œκ°€ μžˆλŠ”λ°, κ·Έλ•Œ super ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€.
  • superλŠ” ν˜„μž¬ κ°μ²΄μ—μ„œ λΆ€λͺ¨ 클래슀의 μ°Έμ‘°λ₯Ό 의미

상속은 νŒ¨ν‚€μ§€λ₯Ό λ”°λ‘œ λ§Œλ“€μ–΄ κ·Έμ•ˆμ— 각각의 ν΄λž˜μŠ€μ™€ main이 λ“€μ–΄κ°„ 클래슀λ₯Ό λ§Œλ“€μ–΄ μ£Όλ©΄ μˆ˜ν–‰ν•˜κΈ° 더 쉽닀!!

 

2-5) μ˜€λ²„λ‘œλ”©

- μ˜€λ²„λΌμ΄λ”©κ³Ό μƒλ‹Ήνžˆ μœ μ‚¬ν•˜λ©΄μ„œλ„ 큰 차이가 μžˆλ‹€. (μƒμ†κ³ΌλŠ” λ¬΄κ΄€ν•˜λ‹€)

- μ˜€λ²„λ‘œλ”©μ€ λ™μΌν•œ ν΄λž˜μŠ€μ— 이름은 κ°™μ§€λ§Œ μ‹œκ·Έλ‹ˆμ²˜κ°€ ν•˜λ‚˜λΌλ„ λ‹€λ₯Έ μ—¬λŸ¬ 개의 λ©”μ„œλ“œλ₯Ό μ€‘λ³΅ν•΄μ„œ μ •μ˜ν•˜λŠ” 것이닀.

 

비ꡐ μš”μ†Œ λ©”μ„œλ“œ μ˜€λ²„λΌμ΄λ”© λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”©
λ©”μ„œλ“œ 이름 동일 동일
맀개 λ³€μˆ˜ 동일 λ‹€λ₯΄λ‹€
λ°˜ν™˜ νƒ€μž… 동일 관계없닀
상속 관계 ν•„μš” ν•„μš”μ—†λ‹€
μ˜ˆμ™Έμ™€ μ ‘κ·Ό λ²”μœ„ μ œμ•½μ΄ μžˆλ‹€ μ œμ•½μ΄ μ—†λ‹€
바인딩 ν˜ΈμΆœν•  λ©”μ„œλ“œλ₯Ό μ‹€ν–‰ 쀑 κ²°μ •ν•˜λŠ” 동적 바인딩이닀 ν˜ΈμΆœν•  λ©”μ„œλ“œλ₯Ό μ»€νŒŒμΌν•  λ•Œ κ²°μ •ν•˜λŠ” 정적 바인딩이닀

 

 

728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

1) λ°°μ—΄ μ‘μš© - 메인 λ©”μ„œλ“œμ˜ λ§€κ°œλ³€μˆ˜ 전달(λͺ…λ Ήμ°½μ—μ„œμ˜ μ‹€ν–‰ λͺ…λ Ή)

 

더보기

package sec03;

public class MainArgumentDemo {
                  public static void main(String[] args) {
                                  if (args.length == 2) {
                                                   int i = Integer.parseInt(args[1]);
                                                   nPrintln(args[0], i);
                                   } else
                                                   System.out.println("어이쿠!");
                    }

                     public static void nPrintln(String s, int n) {
                                     for (int i = 0; i < n; i++)
                                                     System.out.println(s);
                     }
}

μ›λž˜λŠ” 어이쿠!κ°€ λ‚˜μ™”λŠ”λ°, μ•ˆλ…•! μ•ˆλ…•! μ•ˆλ…•! 이 λ‚˜μ˜€κΈ° μœ„ν•΄μ„œ λ³€κ²½ν•΄μ€˜μ•Ό ν•˜λŠ” 뢀뢄이 μžˆλ‹€.

λ‹€μŒμ˜ 과정을 ν•΄μ€˜μ•Όν•˜λŠ”λ°,

 

1. [Run] -> [Run Configurations] 을 선택 ν•œ ν›„

2. [Arguments]λ₯Ό ν΄λ¦­ν•˜κ³ 

3. [Program arguments]에 μ•ˆλ…•! 3μ΄λΌλŠ” 인수λ₯Ό μž…λ ₯ν•˜μ—¬μ•Ό ν•œλ‹€ 

**λ›°μ–΄μ“°κΈ° μ˜¬λ°”λ₯΄μ§€ μ•ŠμœΌλ©΄ μ‹€ν–‰κ²°κ³Όκ°€ λ°”λ€Œμ§€ μ•ŠμœΌλ―€λ‘œ μ •ν™•νžˆ μž…λ ₯ν•΄μ•Όν•œλ‹€~~ 

 

< μ΅œμ’…κ²°κ³Ό >

 

2) κ°€λ³€ 개수 인수 

 

- JDK 5λΆ€ν„°λŠ” λ©”μ„œλ“œμ—λ„ 데이터 νƒ€μž…μ΄ 같은 κ°€λ³€ 개수(variable length)의 인수λ₯Ό 전달 κ°€λŠ₯

 ex) 데이터 νƒ€μž… ...(κ°€λ³€ 개수 데이터 νƒ€μž…μ„ λ‚˜νƒ€λ‚Έλ‹€) λ³€μˆ˜

- ν•œ 개의 κ°€λ³€ 개수 λ§€κ°œλ³€μˆ˜λ§Œ μ‚¬μš© κ°€λŠ₯ν•˜λ©° κ°€λ³€ 개수 λ§€κ°œλ³€μˆ˜λŠ” λ§ˆμ§€λ§‰μ— μœ„μΉ˜

- κ°€λ³€ 개수 인수λ₯Ό 가진 λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜λ©΄ λ‚΄λΆ€μ μœΌλ‘œ 배열을 μƒμ„±ν•˜μ—¬ 처리

 

더보기

package sec03;

public class VarArgsDemo {
                     public static void main(String[] args) {
                                        printSum(1, 2, 3, 4, 5);
                                        printSum(10, 20, 30);

                      }

                       public static void printSum(int... v) {
                                      int sum = 0;
                                      for (int i : v)
                                                      sum += i;
                                      System.out.println(sum);
                        }
}

< μ΅œμ’… κ²°κ³Ό >

=> μ΄ˆκΈ°κ°’μ΄ μ—†μœΌλ©΄ λ°”λ‘œ λ©”μΈμœΌλ‘œ λ„˜μ–΄κ°„λ‹€. for문을 ν†΅ν•΄μ„œ i의 값을 ν•©ν•΄μ„œ μ €μž₯ν•˜λ―€λ‘œ 닡은 15, 60

 

3) 객체의 λ°°μ—΄

 

- 객체 배열은 객체λ₯Ό μ°Έμ‘°ν•˜λŠ” μ£Όμ†Œλ₯Ό μ›μ†Œλ‘œ ꡬ성

ex) Ball 클래슀의 객체둜 κ΅¬μ„±λœ 배열을 μ„ μ–Έν•˜κ³  μ΄ˆκΈ°ν™”

      Ball [ ] balls = new Ball[5]; => 5개의 Ball 객체λ₯Ό μ°Έμ‘°ν•  λ³€μˆ˜λ₯Ό μ€€λΉ„  

- μƒμ„±μžλ₯Ό ν˜ΈμΆœν•˜μ—¬ Ball 객체λ₯Ό 생성해야 함

 

4) μ—΄κ±° νƒ€μž…

4-1) ν•„μš”μ„±

 

- μ œν•œλœ 수의 μΌμ΄λ‚˜ 사건 등에 λŒ€ν•˜μ—¬ 숫자둜 ν‘œν˜„

  • 각 μˆ«μžμ— λŒ€ν•˜μ—¬ λΆ€μ—¬λœ 의미λ₯Ό κ°œλ°œμžκ°€ μˆ™μ§€ => μΌμ΄λ‚˜ 사건에 λŒ€ν•œ 경우의 μˆ˜κ°€ λ§Žλ‹€λ©΄ 개발자 κ΄€μ μ—μ„œ 뢈편
  • λΆ€μ—¬λ˜μ§€ μ•Šμ€ 의미 μ—†λŠ” 숫자 => μ»΄νŒŒμΌλŸ¬λŠ” μ•Œ 수 μ—†λ‹€.
  • 좜λ ₯ 값이 의미 μ—†λŠ” 숫자둜 ν‘œν˜„

- μ œν•œλœ 사건에 λŒ€ν•˜μ—¬ 숫자 λŒ€μ‹ μ— μƒμˆ˜λ₯Ό μ •μ˜ν•΄μ„œ λΆ€μ—¬ : μˆ«μžμ— λΆ€μ—¬λœ 의미λ₯Ό κ°œλ°œμžκ°€ μ•Œ 수 μžˆμ§€λ§Œ, μ—¬μ „νžˆ λ‚˜λ¨Έμ§€ λ¬Έμ œκ°€ λ―Έκ²°

- μžλ°” 5λΆ€ν„° μ—΄κ±° νƒ€μž…μ„ 제곡

ex)

package sec04;

public class ConstantDemo {
    public static void main(String[] args) {
        final int MALE = 0;
        final int FEMALE = 1;
        final int SOUTH = 1;
        int gender = FEMALE;
        if (gender == MALE)
            System.out.println(MALE + "은(λŠ”) λ³‘μ—­ μ˜λ¬΄κ°€ μžˆλ‹€.");
        else
            System.out.println(FEMALE + "은(λŠ”) λ³‘μ—­ μ˜λ¬΄κ°€ μ—†λ‹€.");

        if (gender == SOUTH)
            System.out.println(SOUTH + "은(λŠ”) λˆ„ꡬ?");
        gender = 5;
    }
}

< μ΅œμ’… κ²°κ³Ό >

μ—¬κΈ°μ„œ 1은 남성 ν˜Ήμ€ 여성을 μ˜λ―Έν•˜λŠ” 단어가 μ•„λ‹ˆλΌ μˆ«μžκ°€ 좜λ ₯됨

4-2) μ—΄κ±° νƒ€μž…κ³Ό μ‘μš©

 

- μ—΄κ±° νƒ€μž… : μ„œλ‘œ μ—°κ΄€λœ 사건듀을 λͺ¨μ•„ μƒμˆ˜λ‘œ μ •μ˜ν•œ java.lang.Enum 클래슀의 μžμ‹ 클래슀

- μ„ μ–Έ : enum μ—΄κ±°νƒ€μž…μ΄λ¦„ { μƒμˆ˜λͺ©λ‘ }

ex) enum Gender {MALE, FEMALE} - enum :μ—΄κ±° νƒ€μž…μ„ μ •μ˜ν•˜κΈ° μœ„ν•œ ν‚€μ›Œλ“œ / Gender : μ—΄κ±° νƒ€μž… 이름 /

      MALE, FEMALE : μƒμˆ˜ λͺ©λ‘

-  μΌμ’…μ˜ 클래슀 νƒ€μž…μΈ μ—΄κ±° νƒ€μž…λ„ μƒμ„±μž, ν•„λ“œ 및 λ©”μ„œλ“œλ₯Ό κ°€μ§ˆ 수 μžˆλ‹€.

- μ—΄κ±° νƒ€μž… μƒμˆ˜λŠ” μƒμ„±μžμ— μ˜ν•œ μΈμŠ€ν„΄μŠ€μ΄λ‹€.- μ΄λ•Œ μƒμ„±μž, ν•„λ“œ 및 λ©”μ„œλ“œμ™€ μ—΄κ±° νƒ€μž… μƒμˆ˜λ₯Ό κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄μ„œ 뒀에 λ°˜λ“œμ‹œ (;) λ₯Ό μΆ”κ°€ν•΄μ•Όν•œλ‹€.

 

++ 특수문자 μ›μ£Όμœ¨ μ“°λŠ” 법

 

[γ…Ž]을 λˆ„λ₯Έ ν›„ ν•œμžλ₯Ό λˆ„λ₯΄λ©΄ νŠΉμˆ˜λ¬Έμžν‘œκ°€ λ‚˜μ˜€λŠ”λ° μ£Όλ₯΄λ₯΅ 내리면 <<<<  π >>>>> κ°€ μžˆμŠ΅λ‹ˆλ‹€ !!!

3.14둜 적어도 λ˜κ² μ§€λ§Œ 파이 기호둜 써야할 일도 μžˆμœΌλ‹ˆκΉŒ μ°Έκ³ ν•˜μ„Έμ—¬~~ 

728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

μ˜€λŠ˜μ€ 1κ΅μ‹œλΆ€ν„° κ°‘μžκΈ° μͺ½μ§€ μ‹œν—˜ μ•„λ‹Œ μͺ½μ§€ μ‹œν—˜μ„ μ³€λŠ”λ°..

ꡬ글링을 ν•˜κ±°λ‚˜ μ±— 지피티λ₯Ό ν•˜κ±°λ‚˜ 뭐든 μ‚¬μš©ν•΄μ„œ κ΅μˆ˜λ‹˜μ΄ λ‚΄μ£Όμ‹  예제 문제 5가지λ₯Ό ν‘ΈλŠ” κ±°μ˜€μŠ΅λ‹ˆλ‹€.

파이썬, μžλ°” 뭐든 μ‚¬μš©ν•΄λ„ μ’‹λ‹€κ³  ν•΄μ„œ 쑰금 더 μ•„λŠ” μžλ°”λ₯Ό μ„ νƒν•˜κ³  ꡬ글링과 μ €μ˜ 쑰그만 μ§€μ‹μœΌλ‘œ ν•΄κ²°ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

더보기

  μ˜ˆμ œλŠ” μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€. πŸ’₯πŸ’₯πŸ’₯πŸ’₯πŸ’₯

1. 1~10κΉŒμ§€μ˜ 숫자 λ”ν•΄μ„œ 좜λ ₯ν•˜κΈ°

2. 1~100κΉŒμ§€μ˜ 숫자 쀑 짝수만 좜λ ₯ν•˜κΈ°

3. 랜덀 숫자 쀑에 κ³¨λΌμ„œ μ†Œμˆ˜μ˜ 갯수λ₯Ό μΉ΄μš΄νŠΈν•˜κΈ°

4. 랜덀 숫자 μž…λ ₯ν•˜μ—¬ ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ„ μž‘μ„±ν•˜κΈ°

5. 10μ§„μˆ˜λ₯Ό λ„£μ—ˆμ„ λ•Œ 2μ§„μˆ˜λ‘œ ν‘œν˜„ν•˜κ³ , 우츑 μ‰¬ν”„νŠΈ 1번 ν•˜κΈ°

1) 1~10κΉŒμ§€μ˜ 숫자 λ”ν•΄μ„œ 좜λ ₯ν•˜κΈ° 

   

public class exam {

      public static void main(String[] args) {

             int i = 1;

              // 합계λ₯Ό 담을 λ³€μˆ˜

              int sum = 0;

              while (i <= 10) {

                     // 합계 λ³€μˆ˜μ— iλ₯Ό λˆ„μ μ‹œν‚¨λ‹€.

                     sum = sum + i;

                      // sum +=i;λ‘œλ„ μ“Έ 수 μžˆλ‹€.

                      i++;

               }

               System.out.println("1λΆ€ν„° 10κΉŒμ§€μ˜ 합은 " + sum + "μž…λ‹ˆλ‹€.");

        }

}

=> while λ°˜λ³΅λ¬Έμ„ μ‚¬μš©ν•˜μ—¬ 1λΆ€ν„° 10κΉŒμ§€μ˜ 수λ₯Ό λ°˜λ³΅ν•˜μ—¬ μ‹€ν–‰ν•˜κ³  sum λ³€μˆ˜μ— 이λ₯Ό λ”ν•˜μ—¬ 합계λ₯Ό 좜λ ₯ν•˜μ˜€λ‹€.

1λΆ€ν„° 10κΉŒμ§€μ˜ 합은 55μž…λ‹ˆλ‹€.

 

2) 1~100κΉŒμ§€μ˜ 숫자 쀑 짝수만 좜λ ₯ν•˜κΈ°

 

public class exam2 {

       public static void main(String[] args) {

              int i = 0;

               // 100κΉŒμ§€ μ΄λ―€λ‘œ i<=100κΉŒμ§€λ‘œ μ„€μ •

               // 짝수만 좜λ ₯되게 ν•΄μ•Όν•˜λ―€λ‘œ i=i+2둜 2μ”© 증가

                for (i = 2; i <= 100; i = i + 2) {

                      // ν™”λ©΄ 좜λ ₯λΆ€

                       if (i <= 100)

                          System.out.println(i + " ");

                }

        }

}

=> for λ°˜λ³΅λ¬Έμ„ μ‚¬μš©ν•˜μ—¬ 100κΉŒμ§€μ˜ 숫자 쀑에 짝수의 값을 λ°˜λ³΅ν•˜μ—¬ μ‹€ν–‰ν•˜κ³  κ·ΈλŒ€λ‘œ 좜λ ₯ν•˜μ˜€λ‹€.

printλ₯Ό μ‚¬μš©ν•˜λ©΄ ν•œμ€„μ— λ‹€ ν‘œν˜„ν•΄μ£Όκ³ , println을 μ‚¬μš©ν•˜λ©΄ ν•œμ€„μ— ν•˜λ‚˜μ”©λ§Œ 좜λ ₯ν•œλ‹€.

2

4

6

8

...

 

3) 랜덀 숫자 쀑에 κ³¨λΌμ„œ μ†Œμˆ˜μ˜ 갯수λ₯Ό μΉ΄μš΄νŠΈν•˜κΈ°

import java.util.Scanner;

public class exan3_2 {

       public static void main(String[] args) {

               System.out.println("μž…λ ₯된 μˆ«μžκΉŒμ§€μ˜ μ†Œμˆ˜ κ΅¬ν•˜κΈ°");

               System.out.print("μž…λ ₯ : ");

                int inNum = 0;

                Scanner scan = new Scanner(System.in);

                inNum = scan.nextInt();

                // μ†Œμˆ˜ 개수 μ €μž₯ν•  λ³€μˆ˜ μ΄ˆκΈ°ν™”

                int count = 0;

                // ------------------------------

                // μž…λ ₯된 μˆ«μžκΉŒμ§€μ˜ μ†Œμˆ˜ κ΅¬ν•˜κΈ°

                // ------------------------------

                 for (int i = 2; i <= inNum; ++i) {

                      for (int j = 2; j <= i; ++j) { // jκ°€ iκΉŒμ§€ λ°˜λ³΅λ˜λ„λ‘ μˆ˜μ •

                           if (i % j == 0) {

                               if (i == j) {

                                  System.out.print(i + " "); // κ°œν–‰μ΄ μ•„λ‹Œ 곡백으둜 μˆ˜μ •

                                   count++; // μ†Œμˆ˜λ₯Ό μ°Ύμ•˜μœΌλ―€λ‘œ count 증가

                               } else {

                                    break;

                               }

                            }

                        }

                      }

                      System.out.printf("\n1λΆ€ν„° %dκΉŒμ§€μ˜ μ†Œμˆ˜ κ°œμˆ˜λŠ” %d개 μž…λ‹ˆλ‹€.", inNum, count); 

         }

}

=> μž…λ ₯ν•˜κ²Œ λ§Œλ“€κΈ° μœ„ν•΄μ„œ Scanner 생성, 2이상뢀터 μ†Œμˆ˜μ΄λ―€λ‘œ μ΄ˆκΈ°κ°’μ€ 2!! for λ°˜λ³΅λ¬Έμ„ ν†΅ν•˜μ—¬ μˆ«μžλŠ” inNumκ³Ό count에 μ €μž₯, μ²˜μŒμ—λŠ” μž…λ ₯ν•œ μˆ«μžμ— λŒ€ν•œ μ†Œμˆ˜μ˜ 인수λ₯Ό κ΅¬ν•˜λŠ”κ²ƒμΈ 쀄 μ•Œμ•˜λŠ”λ° μ†Œμˆ˜μ˜ 개수λ₯Ό κ΅¬ν•˜λŠ” κ²ƒμ΄μ—ˆλ‹€.

μž…λ ₯된 μˆ«μžκΉŒμ§€μ˜ μ†Œμˆ˜ κ΅¬ν•˜κΈ°

μž…λ ₯ : 45

2 3 5 7 11 13 17 19 23 29 31 37 41 43

1λΆ€ν„° 45κΉŒμ§€μ˜ μ†Œμˆ˜ κ°œμˆ˜λŠ” 14개 μž…λ‹ˆλ‹€.

4) 랜덀 숫자 μž…λ ₯ν•˜μ—¬ ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ„ μž‘μ„±ν•˜κΈ°

 

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class exam4 {

        public static void main(String[] args) {
               Scanner scan = new Scanner(System.in);
                ArrayList<Integer> Fibonacci = new ArrayList<>(Arrays.asList(0, 1));

                int inputData, m, n, i = 0;

                while (true) {
                      System.out.println("μ–‘μ˜ μ •μˆ˜λ₯Ό μž…λ ₯ν•˜μ‹œμ˜€:");
                      inputData = scan.nextInt();

                      if (inputData > 0) {
                          break;
                       } else {
                             System.out.println("잘λͺ»λœ μ •μˆ˜λ₯Ό μž…λ ₯ν•˜μ…¨μŠ΅λ‹ˆλ‹€. λ‹€μ‹œ μž…λ ₯ν•˜μ„Έμš”.\n");
                       }
                }
                while (true) {
                      m = Fibonacci.get(i);
                      n = Fibonacci.get(i + 1);

                      if (m + n > inputData) {
                          break;
                      } else {
                           Fibonacci.add(m + n);
                            i++;
                      }
             }

            System.out.println(String.format("%d κΉŒμ§€μ˜ ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.\n", inputData) + Fibonacci);
      }
}

 

=> 피보 λ‚˜μΉ˜ μˆ˜μ—΄μ€ μ•žμ˜ 두값을 λ”ν•΄μ„œ λ‚˜μ˜¨ 값이 λ‹€μŒ 값이 λ˜λŠ” μˆ˜μ—΄μ΄λ‹€.  

μ–‘μ˜ μ •μˆ˜λ₯Ό μž…λ ₯ν•˜μ‹œμ˜€:

4

4 κΉŒμ§€μ˜ ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

[0, 1, 1, 2, 3]

5) 10μ§„μˆ˜λ₯Ό λ„£μ—ˆμ„ λ•Œ 2μ§„μˆ˜λ‘œ ν‘œν˜„ν•˜κ³ , 우츑 μ‰¬ν”„νŠΈ 1번 ν•˜κΈ°

 

import java.util.Scanner;

public class exam5 {

        public static void main(String[] args) {

               Scanner scanner = new Scanner(System.in);

                // 10μ§„μˆ˜ μž…λ ₯ λ°›κΈ°

                System.out.print("10μ§„μˆ˜λ₯Ό μž…λ ₯ν•˜μ„Έμš”: ");

                int decimal = scanner.nextInt();

                 // 10μ§„μˆ˜λ₯Ό 2μ§„μˆ˜λ‘œ λ³€ν™˜ν•˜μ—¬ 좜λ ₯

                 System.out.printf("%d의 2μ§„μˆ˜ ν‘œν˜„: %s\n", decimal, Integer.toBinaryString(decimal));

                  // 우츑으둜 1번 μ‹œν”„νŠΈν•˜μ—¬ 좜λ ₯

                  int shifted = decimal >> 1;

                  System.out.printf("%d을 우츑으둜 1번 μ‹œν”„νŠΈν•œ κ²°κ³Ό: %d\n", decimal, shifted);

      }

}

=> 2μ§„μˆ˜λ‘œ ν‘œν˜„ν•˜κΈ° μœ„ν•΄ : 계속 λ‚˜λˆ„μ–΄μ€Œ - %2 / 우츑으둜 1번 μ‹œν”„νŠΈν•œ κ²°κ³Ό - int shifted = decimal >>1; 둜 ν‘œν˜„

728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

였늘 μ •μ²˜κΈ° κ³΅λΆ€ν•˜λ‹€κ°€ μ•Œκ²Œλœ κ°œλ… λ¨Όμ € μ μ–΄λ³΄μžλ©΄...

 

1) 크둜슀 ν”Œλž«νΌ : νŠΉμ • μ†ŒμŠ€λ₯Ό ν”Œλž«νΌμ— 묢이지 μ•Šκ³  자유둭게 μ‚¬μš©ν•  수 μžˆλ„λ‘ μ„œν¬νŠΈ ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.

ex) FlutterλŠ” 크둜슀 ν”Œλž«νΌμœΌλ‘œμ„œ Android, iOS 두 λͺ¨λ°”일 ν”Œλž«νΌμ—μ„œ λͺ¨λ‘ λ™μž‘ν•©λ‹ˆλ‹€.

μž₯μ μœΌλ‘œλŠ” λ™μΌν•œ μ½”λ“œλ‘œ μ„œλΉ„μŠ€λ₯Ό κ°œλ°œν•¨μœΌλ‘œμ„œ μœ μ§€ 보수 및 기느 개발 인λ ₯을 효율적으둜 ν™œμš© κ°€λŠ₯ν•œ κ²ƒπŸ‘ 이 μ‚¬μš©ν•˜λŠ” κ°€μž₯ 큰 μ΄μœ μ΄λ‹€.

 

2) DRM(디지털 μ €μž‘κΆŒ 관리) κ΅¬μ„±μš”μ†Œμ™€ 기술 μš”μ†Œ(μ •μ²˜κΈ° 자주 좜제된 문제)πŸ’₯πŸ’₯πŸ’₯

 

- 디지털 μ €μž‘κΆŒ κ΄€λ¦¬μ˜ 의미 : μ €μž‘κΆŒμžκ°€ λ°°ν¬ν•œ 디지털 μ½˜ν…μΈ κ°€ μ €μž‘κΆŒμžμ˜ μ˜λ„ν•œ μš©λ„λ‘œλ§Œ μ‚¬μš©λ˜λ„λ‘ 디지털 μ½˜ν…μΈ μ˜ 생성, μœ ν†΅, μ΄μš©κΉŒμ§€μ˜ μ „ 과정에 걸쳐 μ‚¬μš©λ˜λŠ” 디지털 μ½˜ν…μΈ  관리 및 보호 기술

 

- ꡬ성 μš”μ†Œ

  1. 클리어링 ν•˜μš°μŠ€(Clearing House) : μ €μž‘κΆŒμ— λŒ€ν•œ μ‚¬μš© κΆŒν•œ, λΌμ΄μ„ μŠ€ λ°œκΈ‰, μ‚¬μš©λŸ‰μ— λ”°λ₯Έ 관리 등을 μˆ˜ν–‰ν•˜λŠ” κ³³
  2. μ½˜ν…μΈ  제곡자(Contents Provider) : μ½˜ν…μΈ λ₯Ό μ œκ³΅ν•˜λŠ” μ €μž‘κΆŒμž
  3. νŒ¨ν‚€μ €(Packger) : μ½˜ν…μΈ λ₯Ό 메타 데이터와 ν•¨κ»˜ 배포 κ°€λŠ₯ν•œ ν˜•νƒœλ‘œ λ¬Άμ–΄ μ•”ν˜Έν™”ν•˜λŠ” ν”„λ‘œκ·Έλž¨
  4. μ½˜ν…μΈ  λΆ„λ°°μž(Contents Distributor) : μ•”ν˜Έν™”λœ μ½˜ν…μΈ λ₯Ό μœ ν†΅ν•˜λŠ” κ³³μ΄λ‚˜ μ‚¬λžŒ
  5. μ½˜ν…μΈ  μ†ŒλΉ„μž(Customer) : μ½˜ν…μΈ λ₯Ό κ΅¬λ§€ν•΄μ„œ μ‚¬μš©ν•˜λŠ” 주체
  6. DRM 컨트둀러(DRM Controller) : 배포된 μ½˜ν…μΈ μ˜ 이용 κΆŒν•œμ„ ν†΅μ œν•˜λŠ” ν”„λ‘œκ·Έλž¨
  7. λ³΄μ•ˆ μ»¨ν…Œμ΄λ„ˆ(Security Container) : μ½˜ν…μΈ  원본을 μ•ˆμ „ν•˜κ²Œ μœ ν†΅ν•˜κΈ° μœ„ν•œ μ „μžμ  λ³΄μ•ˆ μž₯치

- κΈ°μˆ μš”μ†Œ

  1. μ•”ν˜Έν™”(Encryption) : μ½˜ν…μΈ  및 λΌμ΄μ„ μŠ€λ₯Ό μ•”ν˜Έν™”ν•˜κ³  μ „μž μ„œλͺ…을 ν•  수 μžˆλŠ” 기술
  2. ν‚€ 관리(key Management) : μ½˜ν…μΈ λ₯Ό μ•”ν˜Έν™”ν•œ 킀에 λŒ€ν•œ μ €μž₯ 및 λΆ„λ°° 기술
  3. μ•”ν˜Έν™” 파일 생성(Pakager) : μ½˜ν…μΈ λ₯Ό μ•”ν˜Έν™”λœ μ½˜ν…μΈ λ‘œ μƒμ„±ν•˜κΈ° μœ„ν•œ 기술
  4. 식별 기술(identification) : μ½˜ν…μΈ μ— λŒ€ν•œ 식별 체계 ν‘œν˜„ 기술
  5. μ €μž‘κΆŒ ν‘œν˜„(Right Expression) : λΌμ΄μ„ μŠ€μ˜ λ‚΄μš© ν‘œν˜„ 기술
  6. μ •μ±… 관리(Policy Management) : λΌμ΄μ„ μŠ€ λ°œκΈ‰ 및 μ‚¬μš©μ— λŒ€ν•œ μ •μ±… ν‘œν˜„ 및 관리 기술
  7. ν¬λž™ 방지(Tamper Resistance) : ν¬λž™μ— μ˜ν•œ μ½˜ν…μΈ  μ‚¬μš© 방지 기술
  8. 인정(Authentication) : λΌμ΄μ„ μŠ€ λ°œκΈ‰ 및 μ‚¬μš©μ˜ 기쀀이 λ˜λŠ” μ‚¬μš©μž 인증 기술

λ‹€μŒμœΌλ‘œ μžλ°” 기초 κ°•μ˜λ“€μ€κ±Έ μš”μ•½ν•˜λ©΄...

 

1) 데이터 νƒ€μž… - λ°μ΄ν„°μ˜ 크기

 

μ»΄ν“¨νƒ€μ—μ„œ κ°€μž₯ μž‘μ€ λ‹¨μœ„ : bit (μ»΄ν“¨ν„°λŠ” 0κ³Ό 1둜 λ‚˜νƒ€λ‚Έλ‹€λŠ”) 

이 bitκ°€ 8개 λͺ¨μ΄λ©΄ 1 byteκ°€ λœλ‹€.  8bit = 1byte (μš°λ¦¬κ°€ μ‹€μƒν™œμ—μ„œ 이야기 ν•œλ‹€λ©΄ 10mmκ°€ 1cmκ°€ λœλ‹€λŠ” λŠλ‚ŒμœΌλ‘œ λ³Ό 수 μžˆλ‹€ //  데이터 νƒ€μž…μ—μ„œλŠ” 8bitκ°€ 1byte둜 λœλ‹€λŠ” 것과 κ·Έ μ΄ν›„λ‘œλŠ” 1024λ₯Ό κ³±ν•  λ•Œλ§ˆλ‹€ λ‹¨μœ„κ°€ λ°”λ€λ‹€λŠ” 것이 제일 μ€‘μš”)

8bit = 1 byte

1024 byte = 1 kilobyte

1024 kilobyte = 1 megabyte

1024 megabyte = 1 gigabyte

1024 gigabyte = 1 terabyte

1024 terabyte = 1 petabyte

1024 petabyte = 1 exabyte

1024 exabyte = 1 zetabyte

 

teratabyteκΉŒμ§€λŠ” μΌμƒμƒν™œμ—μ„œ 많이 μ“°μ§€λ§Œ  petabyte, exabyte, zetabyteλŠ” νŠΉμˆ˜ν•œ μ‚°μ—…μ—μ„œ μ‚¬μš©ν•˜λŠ” κ²½μš°κ°€ λ§Žλ‹€.

 

2) 데이터 νƒ€μž… - 데이터 νƒ€μž…μ˜ 비ꡐ

 

2-1) μ •μˆ˜ν˜• (μ •μˆ˜ν˜•μ„ μ‚¬μš©ν• λ•ŒλŠ” λ³΄ν†΅μ˜ 수λ₯Ό ν¬ν•¨ν•˜λŠ” intλ₯Ό μ‚¬μš©, μ²˜λ¦¬μ†λ„κ°€ 빠름)

데이터 νƒ€μž… λ©”λͺ¨λ¦¬μ˜ 크기 ν‘œν˜„ κ°€λŠ₯ λ²”μœ„
byte 1 byte -128 ~ 127
short 2 byte -32,768 ~ 32,767
int 4 byte -2,147,483,648 ~ 2,147,483,647
long 8 byte -9,273,372,036,854,775,808 ~ 9,223,372,036,854,775,807

- byteλŠ” 128의 값을 ν¬ν•¨ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ 잘λͺ» μ‚¬μš©ν•˜μ—¬ 빨간쀄이 λ„μž„ => short, int, long으둜 λ°”κΎΈμ–΄ μ‚¬μš©ν•΄μ•Όν•¨

- 데이터가 같을 λ•ŒλŠ” λ˜‘κ°™μ€ λ©”λͺ¨λ¦¬μ˜ 양을 μ‚¬μš©ν•œλ‹€(λ“€μ–΄κ°„ 숫자의 ν¬κΈ°λŠ” λ‹€λ₯΄μ§€λ§Œ μ‹€μ§ˆμ μœΌλ‘œ μ‚¬μš©ν•˜κΈ° μœ„ν•΄ λΉ„μ›Œλ‘” μžλ¦¬λŠ” κ°™μœΌλ―€λ‘œ λ©”λͺ¨λ¦¬μ˜ 양은 동일 ν•˜λ‹€)

ex) long a = 2147483647

      long b = 1

 

- 같은 λ³€μˆ˜λ₯Ό μ €μž₯ν•˜κ³  μžˆλ”λΌλ„ λ°μ΄ν„°μ˜ νƒ€μž…μ΄ λ‹€λ₯΄λ©΄ μ‚¬μš©ν•˜λŠ” λ©”λͺ¨λ¦¬μ˜ 양이 λ‹€λ₯΄λ‹€(λ³€μˆ˜μ— λ“€μ–΄μžˆλŠ” μˆ«μžλŠ” κ°™μ§€λ§Œ longλŠ” 8byte이고 intλŠ” 4byteμ΄λ―€λ‘œ λ‘λ°°μ˜ 양을 μ‚¬μš©ν•œλ‹€)

ex) int a = 2147483647

      long b = 2147483647

 

2-2) μ‹€μˆ˜ν˜•(λŒ€λΆ€λΆ„ μ‹€μˆ˜ν˜•μ„ μ‚¬μš©ν•  λ•Œμ—λŠ” double을 μ‚¬μš©ν•œλ‹€)

float 4 byte
double 8 byte

2-3) 문자

char - 2 byte : λͺ¨λ“  μœ λ‹ˆμ½”λ“œ 문자

ex) "AB" : 2+2 : 4 byte

 

3) μƒμˆ˜μ˜ 데이터 νƒ€μž…

 

3-1) μƒμˆ˜μ˜ 의미

λ¨Όμ € λ³€μˆ˜λŠ” λ³€ν•˜λŠ” 값을 μ˜λ―Έν•˜κ³ , μƒμˆ˜λŠ” κ·Έ λŒ€μ²™μ μ— μžˆλŠ” κ²ƒμœΌλ‘œ λ³€ν•˜μ§€ μ•ŠλŠ” 값을 μ˜λ―Έν•œλ‹€.

 

ex) int a = 1;

=> λ³€μˆ˜ a λŠ” λŒ€μž… μ—°μ‚°μž(=)에 μ˜ν•΄μ„œ 1이 λ˜μ—ˆλ‹€. aλŠ” λ³€μˆ˜μ΄κ³  1은 μƒμˆ˜

 

ex2) 1 = 2;

=> 컴파일이 λ˜μ§€ μ•ŠλŠ”λ‹€. 1은 2κΈ° 될 수 μ—†μœΌλ―€λ‘œ... 1은 1이고 2λŠ” 2이닀. κ³ μœ ν•œ 값을 가지고 있고, κ·Έ 값을 λ³€κ²½ ν•  수 μ—†λŠ” 데이터 νƒ€μž…μ„ μƒμˆ˜λΌκ³  ν•œλ‹€.

 

3-2) μ‹€μˆ˜μ˜ ν‘œν˜„

 

μ•žμ—μ„œ λ³€μˆ˜λ₯Ό λ§Œλ“€ λ•Œ 데이터 νƒ€μž…μ„ μ§€μ •ν–ˆμ—ˆλŠ”λ°, 그것은 λ³€μˆ˜κ°€ λ©”λͺ¨λ¦¬λ₯Ό μ–Όλ§ˆλ‚˜ μ‚¬μš©ν•  것인가λ₯Ό μ§€μ •ν•˜λŠ” 의미λ₯Ό κ°–λŠ”λ°, μƒμˆ˜μ—λ„ 데이터 νƒ€μž…μ΄ μžˆμ–΄ μ½”λ“œμ˜ 였λ₯˜κ°€ λ°œμƒν•œλ‹€.

 

 μ˜€λ₯˜ λ°œμƒμ˜ μ˜ˆμ‹œ

ex) int a = 2.2; => 2.2λŠ” μ‹€μˆ˜μ΄λ―€λ‘œ μ •μˆ˜ νƒ€μž…μ˜ λ³€μˆ˜ a에 μ €μž₯ν•˜λ €κ³  ν–ˆκΈ° λ•Œλ¬Έμ— 였λ₯˜κ°€ λ°œμƒν–ˆλ‹€.(=μƒμˆ˜μ—λ„ 데이터 νƒ€μž…μ΄ μ‘΄μž¬ν•œλ‹€)

     float a = 2.2; μ—­μ‹œ μ—λŸ¬κ°€ λ‚˜μ˜€κ³  float a = 2.2F; ν˜Ήμ€ double a = 2.2;λ₯Ό μ‚¬μš©ν•˜μ—¬μ•Ό ν•œλ‹€.

μ •ν™•νžˆ μ΄ν•΄ν•˜μ§€λŠ” λͺ»ν–ˆμ§€λ§Œ μ‹€μˆ˜μ˜ λΆ€λΆ„μ—μ„œλŠ” double을 μ‚¬μš©ν•˜λΌλŠ” 걸둜..

      

 

728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

1. 객체지ν–₯ ?

- κ°œλ… : μ†Œν”„νŠΈμ›¨μ–΄ κ°μ²΄λŠ” ν˜„μ‹€ μ„Έκ³„μ˜ 객체λ₯Ό ν•„λ“œμ™€ λ©”μ„œλ“œλ‘œ λͺ¨λΈλ§ν•œ 것

μ†Œν”„νŠΈμ›¨μ–΄ κ°μ²΄λŠ” ν•„λ“œ(Field)둜 μ •μ˜ν•˜κ³ , λ™μž‘μ€ λ©”μ„œλ“œ(Method)둜 μ •μ˜

ν•„λ“œλŠ” 객체 내뢄에 μ„ μ–Έλœ λ³€μˆ˜λ₯Ό μ˜λ―Έν•˜κ³ , λ©”μ„œλ“œλŠ” 객체 내뢀에 μ •μ˜λœ λ™μž‘

 

- ν”„λ‘œκ·Έλž˜λ° : μ†Œν”„νŠΈμ›¨μ–΄μ˜ 규λͺ¨κ°€ μ»€μ§€λ©΄μ„œ λ™μž‘κ³Ό λΆ„λ¦¬λ˜μ–΄ μ „ κ³Όμ •μ—μ„œ μ„œλ‘œ λ³΅μž‘ν•˜κ²Œ μ–½ν˜€ μžˆλŠ” 데이터λ₯Ό μ‚¬μš©ν–ˆκΈ° λ•Œλ¬Έμ— 절파 지ν–₯ ν”„λ‘œκ·Έλž˜λ° λ°©μ‹μ˜ ν•œκ³„λ‘œ 생성

절차 지ν–₯ ν”„λ‘œκ·Έλž¨μ€ μΆ”ν›„ λ³€κ²½ν•˜κ±°λ‚˜ ν™•μž₯ν•˜κΈ°λ„ 어렀움

ν˜„μ‹€μ„Έκ³„λ₯Ό 객체 λ‹¨μœ„λ‘œ ν”„λ‘œκ·Έλž˜λ°ν•˜λ©°, κ°μ²΄λŠ” ν•„λ“œμ™€ λ©”μ„œλ“œλ₯΄ ν•˜λ‚˜λ‘œ λ¬Άμ–΄ ν‘œν˜„

 

- νŠΉμ§•(μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬ λ¬Έμ œλ‘œλ„ 자주 좜제됨!!)

1. μΊ‘μŠν™”(정보은닉) : κ΄€λ ¨λœ ν•„λ“œμ™€ λ©”μ„œλ“œλ₯Ό ν•˜λ‚˜μ˜ 캑슐처럼 포μž₯ν•΄ μ„ΈλΆ€ λ‚΄μš©μ„ μ™ΈλΆ€μ—μ„œ μ•Œ 수 없도둝 κ°μΆ”λŠ” 것

2. 상속 : μžλ…€κ°€ λΆ€λͺ¨ μž¬μ‚°μ„ 상속받아 μ‚¬μš©ν•˜λ“―μ΄ μƒμœ„ 객체λ₯Ό 상속받은 ν•˜μœ„ 객체가 μƒμœ„ 객체의 λ©”μ„œλ“œμ™€ ν•„λ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 것

3. λ‹€ν˜•μ„± : λŒ€μž…λ˜λŠ” 객체에 λ”°λΌμ„œ λ©”μ„œλ“œλ₯Ό λ‹€λ₯΄κ²Œ λ™μž‘ν•˜λ„λ‘ κ΅¬ν˜„ν•˜λŠ” 기술, μ‹€ν–‰ 도쀑 λ™μΌν•œ μ΄λ¦„μ˜ λ‹€μ–‘ν•œ κ΅¬ν˜„μ²΄ μ€‘μ—μ„œ λ©”μ„œλ“œλ₯Ό 선택 κ°€λŠ₯(λ‹€μ–‘μ„±κ³ΌλŠ” 닀름)

4. 좔상화 : ν˜„μ‹€ μ„Έκ³„μ˜ κ°μ²΄μ—μ„œ λΆˆν•„μš”ν•œ 속성을 μ œκ±°ν•˜κ³  μ€‘μš”ν•œ μ •λ³΄λ§Œ 클래슀둜 ν‘œν˜„ν•˜λŠ” μΌμ’…μ˜ λͺ¨λΈλ§ 기법

 

더보기

- 클래슀 μ„ μ–Έ

class 클래슀 이름 {       => 클래슀λ₯Ό μ„ μ–Έν•˜κΈ° μœ„ν•œ ν‚€μ›Œλ“œ

  // ν•„λ“œ                         => 객체의 속성을 λ‚˜νƒ€λ‚Έλ‹€

  // λ©”μ„œλ“œ                     => 객체의 λ™μž‘μ„ λ‚˜νƒ€λ‚Έλ‹€

 

ex)

public class Ball {

   double radius = 2.0;

   double getVolume() {

      return 4 / 3 * 3.14 * radius * radius * radius;

    }

}

 

public : 클래슀 μ ‘κ·Ό κΆŒν•œμœΌλ‘œ λˆ„κ΅¬λ‚˜ μ‚¬μš©ν•  수 μžˆλ‹€

class : 클래슀 ν‚€μ›Œλ“œ

Ball : 클래슀 μ΄λ¦„μœΌλ‘œ μ†ŒμŠ€ 파일 이름과 동일해야 ν•œλ‹€

double radius = 2.0;  : ν•„λ“œ

return 4 / 3 * 3.14 *radius * radius * radius;  =>  λ©”μ„œλ“œ : () κ°€ λ“€μ–΄κ°€λ©΄ λ©”μ„œλ“œλΌκ³  μƒκ°ν•˜κΈ°

- 객체 생성과 μ°Έμ‘° λ³€μˆ˜

- ν•œ λ¬Έμž₯으둜 λ³€μˆ˜ μ„ μ–Έκ³Ό 객체 생성

 ν΄λž˜μŠ€ 이름 λ³€μˆ˜ = new 클래슀 이름();

  • μƒμ„±μž 이름은 클래슀 이름과 κ°™λ‹€
  • μƒμ„±μžμ˜ λ°˜ν™˜ νƒ€μž…μ€ μ—†λ‹€
  • μƒμ„±μžλŠ” new μ—°μ‚°μžμ™€ ν•¨κ»˜ μ‚¬μš©ν•˜λ©°, 객체λ₯Ό 생성할 λ•Œ ν˜ΈμΆœν•œλ‹€
  • μƒμ„±μžλŠ” μ˜€λ²„λ‘œλ”© ν•  수 μžˆλ‹€.(μ˜€λ²„λ‘œλ”©(Overloading) : 같은 μ΄λ¦„μ˜ λ©”μ„œλ“œ μ—¬λŸ¬κ°œλ₯Ό κ°€μ§€λ©΄μ„œ λ§€κ°œλ³€μˆ˜μ˜ μœ ν˜•κ³Ό κ°œμˆ˜κ°€ λ‹€λ₯΄λ„둝 ν•˜λŠ” 기술)

 

- 클래슀 μ„ μ–Έκ³Ό 객체 생성 μ˜ˆμ‹œ 문제 (기초 νƒ€μž…κ³Ό μ°Έμ‘°νƒ€μž…)

package java0316;

public class PhoneDemo {

    public static void main(String[] args) {

       Phone myPhone = new Phone();

       myPhone.model = "κ°€λŸ­μ‹œ S8";

       myPhone.value = 100;

       myPhone.print();

       Phone yourPhone = new Phone();

       yourPhone.model = "G6";

        yourPhone.value = 85;

        yourPhone.print();

     }

}

class Phone {

     String model;

     int value;

     void print() {

            System.out.println(value + "λ§Œμ› 짜리" + model + "슀마트폰");

     }

}

κ²°κ³ΌλŠ” μ΄λ ‡μŠ΅λ‹ˆλ‹€!!

100λ§Œμ› μ§œλ¦¬κ°€λŸ­μ‹œ S8슀마트폰

85λ§Œμ› 짜리G6슀마트폰

- ν•„λ“œμ™€ 지역 λ³€μˆ˜μ˜ 차이 : ν•„λ“œλŠ” κΈ°λ³Έ 값이 μžˆμ§€λ§Œ, 지역 λ³€μˆ˜λŠ” κΈ°λ³Έ 값이 μ—†μ–΄ λ°˜λ“œμ‹œ μ΄ˆκΈ°ν™”(기본값이 0)

ν•„λ“œλŠ” 클래슀 μ „μ²΄μ—μ„œ μ‚¬μš©ν•  수 μžˆμ§€λ§Œ, 지역 λ³€μˆ˜λŠ” μ„ μ–Έλœ 블둝 λ‚΄λΆ€μ˜ μ„ μ–Έλœ ν›„μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯

ν•„λ“œμ™€ 달리 지역 λ³€μˆ˜λŠ” final둜만 지정 κ°€λŠ₯ (λ°°μ—΄μ—μ„œλ§Œ null값을 가짐)

 

- μ ‘κ·Όμžμ™€ μ„€μ •μž

ν•„μš”μ„± : 클래슀 내뢀에 μΊ‘μŠν™”λœ 멀버λ₯Ό μ™ΈλΆ€μ—μ„œ μ‚¬μš©ν•  ν•„μš”

μ ‘κ·Όμžμ™€ μ„€μ •μž

private으둜 μ§€μ •λœ ν•„λ“œμ— 값을 λ°˜ν™˜ν•˜λŠ” μ ‘κ·Όμžμ™€ 값을 λ³€κ²½ν•˜λŠ” μ„€μ •μžλŠ” 곡개된 λ©”μ„œλ“œ

일반적으둜 μ ‘κ·ΌμžλŠ” get, μ„€μ •μžλŠ” set으둜 μ‹œμž‘ν•˜λŠ” 이름을 μ‚¬μš©

ν•„λ“œ 이름을 외뢀와 μ°¨λ‹¨ν•΄μ„œ λ…λ¦½μ‹œν‚€κΈ° λ•Œλ¬Έμ— ν•„λ“œ 이름 λ³€κ²½μ΄λ‚˜ 데이터 검증도 κ°€λŠ₯

package java0316;

public class CircleDemo2 {

        public static void main(String[] args) {

                Circle1 myCircle = new Circle1();

                myCircle.setRadius(10.0);

                myCircle.show(myCircle.getRadius(), myCircle.findArea());

         }

}

class Circle1 {

        private double radius;

        public double getRadius() {

               return radius;

        }

        public void setRadius(double r) {

               this.radius = r;

         }

         double findArea() {

              return 3.14 * radius * radius;

         }

         void show(double x, double y) {

               System.out.printf("λ°˜μ§€λ¦„ = %.1f, 넓이 = %.1f\n", x, y);

         }

}

κ²°κ³ΌλŠ” ) λ°˜μ§€λ¦„ = 10.0, 넓이 = 314.0

- λ””ν΄νŠΈ μƒμ„±μž

  • λͺ¨λ“  ν΄λž˜μŠ€λŠ” μ΅œμ†Œν•œ ν•˜λ‚˜μ˜ μƒμ„±μžκ°€ 있음
  • λ§Œμ•½ μƒμ„±μžλ₯Ό μ„ μ–Έν•˜μ§€ μ•ŠμœΌλ©΄ μ»΄νŒŒμΌλŸ¬κ°€ μžλ™μœΌλ‘œ λ””ν΄νŠΈ μƒμ„±μžλ₯Ό μΆ”κ°€

 

728x90
λ°˜μ‘ν˜•

+ Recent posts