728x90
๋ฐ˜์‘ํ˜•

1) ํŒจํ‚ค์ง€์™€ API ๋ฌธ์„œ

 

1-1) ์ž๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 

  • ๊ฐœ๋ฐœ์ž๊ฐ€ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํŒจํ‚ค์ง€ ํ˜น์€ ๋ชจ๋“ˆ์„ ์••์ถ•ํ•œ ํŒŒ์ผ

 

1-2) ํŒจํ‚ค์ง€์™€ ๋ชจ๋“ˆ

  • ํŒจํ‚ค์ง€ : ์ƒํ˜ธ ๊ด€๋ จ ์žˆ๋Š” ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ•œ ๊ณณ์— ๋ฌถ์–ด ๋†“์€ ๊ฒƒ
  • ๋ชจ๋“ˆ : ๋ฐ€์ ‘ํ•œ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ํŒจํ‚ค์ง€์™€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฌถ์–ด ๋†“์€ ๊ฒƒ, JDK๋ฅผ ์„ค์น˜ํ•˜๋ฉด jmods ํด๋”์— jmod ํŒŒ์ผ์„ ์ œ๊ณตํ•˜๋Š”๋ฐ jmod ํŒŒ์ผ์ด ๋ชจ๋“ˆ ํŒŒ์ผ

 

1-3) ์ž๋ฐ”์˜ ์ฃผ์š” ํŒจํ‚ค์ง€ ๋ฐ ๋ชจ๋“ˆ

 

1-4) API ๋ฌธ์„œ

  • ์ž๋ฐ”๋Š” ์ด๋Ÿฐ ํŒจํ‚ค์ง€๋ฅผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก API ํ˜•ํƒœ๋กœ ์ œ๊ณตํ•˜๋‹ค
  • ์‚ฌ์šฉ์ž๋Š” API๋กœ๋ถ€ํ„ฐ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์ž„ํฌํŠธํ•˜๋ฉด ๋ชจ๋‹ˆํ„ฐ์™€ ํ‚ค๋ณด๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์กฐ์ž‘ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค
  • JDK์— ํฌํ•จ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋งค์šฐ ๋ฐฉ๋Œ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ๋‘ ๊ธฐ์–ตํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ํŒจํ‚ค์ง€๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ฐœ๋ฐœ์ž๋Š” API ๋ฌธ์„œ๋ฅผ ์ž์ฃผ ์ฐธ์กฐํ•ด์•ผํ•œ๋‹ค

์ฃผ์†Œ : https://docs.oracle.com/en/java/javase/14/docs/api

- ๊ต์ˆ˜๋‹˜์ด ๊ณ„์† ๋ชจ๋ฅด๋Š”๊ฑฐ ์žˆ์œผ๋ฉด java.api ๋ณด๋ผ๊ณ  ๊ฐ•์กฐ๋ฅผ ํ•˜์‹ ๋‹ค. ๋Œ€๋ถ€๋ถ„ ์˜์–ด๋ผ ํ•ด์„ํ•˜๊ธฐ ํž˜๋“ค์–ด์„œ ๊ตฌ๊ธ€๋ง์ด๋‚˜ chat gpt๋ฅผ ๋งŽ์ด ์ฐพ์•„๋ณด๋Š”๋ฐ ์–ธ์  ๊ฐ€ ์˜์–ด ์‹ค๋ ฅ๊ณผ ์ฝ”๋”ฉ ์‹ค๋ ฅ์„ ํ‚ค์›Œ์„œ api๋งŒ๋“ค ์ด์šฉํ•˜์—ฌ ๋งŒ๋“ค์–ด๋„ ๋ณด๊ณ  ์‹ถ๋‹ค!!

 

2) java.lang ํŒจํ‚ค์ง€

 

2-1) ํ•„์ˆ˜ ํŒจํ‚ค์ง€

  • java.lang ํŒจํ‚ค์ง€๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ณด๊ด€
  • import ๋ฌธ ์—†์ด ์‚ฌ์šฉ

 

2-2) Object ํด๋ž˜์Šค

  • ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์กฐ์ƒ
  • Object ํด๋ž˜์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ฃผ์š” ๋ฉ”์„œ๋“œ

 

2-3) Class ํด๋ž˜์Šค

  • ์‹คํ–‰ ์ค‘์ธ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€์— ํฌํ•จ๋œ ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ ค๊ณ  getName(), getSimpleName() ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณต
  • Class ํด๋ž˜์Šค๋Š” ์ƒ์„ฑ์ž๊ฐ€ ์—†๊ณ  ์–ด๋–ค ๊ฐ์ฒด๋ผ๋„ ์ƒ์„ฑํ•˜๋ฉด  JVM์ด ๋Œ€์‘ํ•˜๋Š” Class ๊ฐ์ฒด๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑ
  • ์‹คํ–‰ ๋„์ค‘ ๊ฐ์ฒด ์ •๋ณด๋ฅผ ์–ป์œผ๋ ค๋ฉด  getClass()์˜ ๊ฒฐ๊ณผ์ธ Class ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉ
  • ex) ์ฃผ์–ด์ง„ obj๊ฐ์ฒด์—์„œ Class ๊ฐ์ฒด๋ฅผ ์–ป์œผ๋ ค๋ฉด 

 

2-4) Math ํด๋ž˜์Šค

  • ๋ชจ๋“  ๋ฉ”์„œ๋“œ๊ฐ€ static์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
  • Math ํด๋ž˜์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ฃผ์š” double ํƒ€์ž…์˜ ๋ฉ”์„œ๋“œ

public class MathDemo {

        public static void main(String[] args) {

              System.out.println("Math.pow(2,8):" + Math.pow(2, 8));

              System.out.println("Math.random():" + Math.random());

              System.out.println("Math.sin(Math.PI):" + Math.sin(Math.PI));

              System.out.println("Math.min(10,20):" + Math.min(10, 20));

       }

}

๋‹ต์€

Math.pow(2,8):256.0

Math.random():0.5957544835893684

Math.sin(Math.PI):1.2246467991473532E-16

Math.min(10,20):10

 

2-5) System ํด๋ž˜์Šค

  • ํ‘œ์ค€ ์ž…์ถœ๋ ฅ์„ ๋น„๋กฏํ•œ ์‹คํ–‰ ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ จ๋œ ํ•„๋“œ์™€ ๋ฉ”์„œ๋“œ๋ฅผ static์œผ๋กœ ์ œ๊ณต
  • System.out.println()๋„ System ํด๋ž˜์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์„œ๋“œ
  • System ํด๋ž˜์Šค์˜ ์„ธ๊ฐ€์ง€ ํ•„๋“œ

 

  • ์ž๋ฐ”์—์„œ ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ JVM์ด ๊ด€๋ฆฌ
  • JVM์€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ€๋น„์ง€๋ฅผ ์ˆ˜๊ฑฐ
  • ๊ฐ€๋น„์ง€๋ฅผ ์ˆ˜๊ฑฐํ•˜๋Š” ์ˆœ์„œ๋Š” ๊ฐ์ฒด์˜ ์ƒ์„ฑ ์ˆœ์„œ์™€๋Š” ๋ฌด๊ด€
  • ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋ฅผ ์ง์ ‘ ํ˜ธ์ถœ ๋ถˆ๊ฐ€, ๋Œ€์‹ ์— System.gc()๋กœ JVM์— ๊ฐ€๋Šฅํ•˜๋ฉด ๋นจ๋ฆฌ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ์š”์ฒญ ๊ฐ€๋Šฅ

class Garbage {

        public int no;

        public Garbage(int no) {

               this.no = no;

               System.out.printf("Garbage(%d)์ƒ์„ฑ\n", no);

         }

         protected void finalize() {

                 System.out.printf("Garbage(%d)์ˆ˜๊ฑฐ\n", no);

         }

         }

public class GarbageDemo {

       public static void main(String[] args) {

              for (int i = 0; i < 3; i++)

                    new Garbage(i);

       }

}

๋‹ต์€

Garbage(0)์ƒ์„ฑ

Garbage(1)์ƒ์„ฑ

Garbage(2)์ƒ์„ฑ

๊ฐ€๋น„์ง€์˜ ์ƒ์„ฑ ์ˆœ์„œ์™€ ์ˆ˜๊ฑฐ ์ˆœ์„œ๋Š” ๋ฌด๊ด€ํ•˜๋‹ค!!

 

2-6) ํฌ์žฅ ํด๋ž˜์Šค

  • ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋Š” ์ฐธ์กฐ ํƒ€์ž…์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์ดˆ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์˜ ํŠน์ง•์„ ์ด์šฉ ๋ถˆ๊ฐ€
  • ์ž๋ฐ”๋Š” ๊ธฐ์ดˆ ํƒ€์ž…์„ ํฌ์žฅํ•ด ํด๋ž˜์Šคํ™” ํ•œ ํฌ์žฅ ํด๋ž˜์Šค(wrapper class)๋ฅผ ์ œ๊ณตํ•ด์„œ ๊ธฐ์ดˆ ํƒ€์ž… ๋ฐ์ดํ„ฐ๋„ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€๋ฅผ ํ™œ์šฉํ•˜๋„๋ก ํ•จ
  • ๋ชจ๋“  ๊ธฐ์ดˆ ํƒ€์ž…์— ๋Œ€์‘ํ•˜๋Š” ํฌ์žฅ ํด๋ž˜์Šค๊ฐ€ ์žˆ์œผ๋ฉฐ, int์™€ char ํƒ€์ž…์— ๋Œ€์‘ํ•˜๋Š” ํฌ์žฅ ํด๋ž˜์Šค๋Š” ๊ฐ๊ฐ Integer์™€ Character์ด๋ฉฐ, ๋‚˜๋จธ์ง€ ํฌ์žฅ ํด๋ž˜์Šค์˜ ์ด๋ฆ„์€ ๊ธฐ์ดˆ ํƒ€์ž…์˜ ์ฒซ ์˜๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊พผ ๊ฒƒ์ด๋‹ค
  • Integer ํด๋ž˜์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ฃผ์š” ๋ฉ”์„œ๋“œ

  • ๊ธฐ์ดˆ ํƒ€์ž… ๋ฐ์ดํ„ฐ๋ฅผ ํฌ์žฅํ•ด ๊ฐ์ฒดํ™”ํ•˜๋Š” ๊ฒƒ์„ ๋ฐ•์‹ฑ(boxing), ๋ฐ˜๋Œ€ ๊ณผ์ •์„ ์–ธ๋ฐ•์‹ฑ(unboxing)

  • ๋ฐ•์‹ฑ์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ํฌ์žฅ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋‚˜ valueOf()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค
๋”๋ณด๊ธฐ

Interger bi = new Integer(10);      // ๋ฐ•์‹ฑ

Integer bi = Integer.valueOf(10)   // ๋ฐ•์‹ฑ

public class WrapperDemo {

       public static void main(String[] args) {

              Integer bi1 = new Integer(10);           // Integer ํƒ€์ž… ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค

              int i1 = bi1.intValue();                         // Integer ํƒ€์ž…์„ int ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค    

              double d = bi1.doubleValue();            // Integer ํƒ€์ž…์„ double ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค

              Integer bi2 = 20;                                 // ์ž๋™ ๋ฐ•์‹ฑ์ด๋‹ค

               int i2 = bi2 + 20;                                 // ์ž๋™ ์–ธ๋ฐ•์‹ฑ์ด๋‹ค

               String s1 = Double.toString(3.14);     // double ํƒ€์ž… ๋ฐ์ดํ„ฐ๋ฅผ String ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค

               Float pi = Float.parseFloat("3.14");   // String ํƒ€์ž… ๋ฐ์ดํ„ฐ๋ฅผ Float ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค

               Integer bi3 = Integer.valueOf("11", 16);  // 16์ง„์ˆ˜ ์ˆซ์ž ๋ฌธ์ž์—ด์„ 10์ง„์ˆ˜ Integer ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค

               System.out.println(bi3);

        }

}

๋‹ต์€

17

 

728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

1) ํŒจํ‚ค์ง€

 

1-1) ํŒจํ‚ค์ง€์˜ ์˜๋ฏธ

 

  • ํด๋ž˜์Šค ํŒŒ์ผ์„ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ์œผ๋กœ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํด๋”๋ฅผ ์ด์šฉ
  • ํŒจํ‚ค์ง€๋งˆ๋‹ค ๋ณ„๋„์˜ ์ด๋ฆ„ ๊ณต๊ฐ„์ด ์ƒ๊ธฐ๊ธฐ ๋•Œ๋ฌธ์— ํด๋ž˜์Šค ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์ž‘์„ฑํ•œ ํ›„ ํ†ตํ•ฉํ•œ๋‹ค๋ฉด ํด๋ž˜์Šค ํŒŒ์ผ์ด ์ค‘๋ณต๋˜์ง€ ์•Š๋Š”๋‹ค
  • ํด๋ž˜์Šค๋ฅผ ํŒจํ‚ค์ง€ ๋‹จ์œ„๋กœ๋„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ข€ ๋” ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ ‘๊ทผ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค

** ๋Œ€ํ‘œ์ ์ธ ํŒจํ‚ค์ง€

 

  • java.lang ํŒจํ‚ค์ง€๋Š” import ๋ฌธ์„ ์„ ์–ธํ•˜์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ ์ž„ํฌํŠธ๋˜๋Š” ์ž๋ฐ”์˜ ๊ธฐ๋ณธ ํด๋ž˜์Šค๋ฅผ ๋ชจ์•„๋‘” ๊ฒƒ
  • java.awt ํŒจํ‚ค์ง€๋Š” ๊ทธ๋ž˜ํ”ฝ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๊ด€๋ จ๋œ ํด๋ž˜์Šค๋ฅผ ๋ชจ์•„๋‘” ๊ฒƒ
  • java.io ํŒจํ‚ค์ง€๋Š” ์ž…์ถœ๋ ฅ๊ณผ ๊ด€๋ จ๋œ ํด๋ž˜์Šค๋ฅผ ๋ชจ์•„ ๋‘” ๊ฒƒ

 

1-2) ํŒจํ‚ค์ง€ ์„ ์–ธ

 

  • ์ฃผ์„๋ฌธ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ฐ˜๋“œ์‹œ ์ฒซ ํ–‰์— ์„ ์–ธ
  • ํŒจํ‚ค์ง€ ์ด๋ฆ„์€ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋ช…๋ช…ํ•˜๋Š” ๊ฒƒ์ด ๊ด€๋ก€์ด๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ ํŒจํ‚ค์ง€ ์ด๋ฆ„์ด ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ํšŒ์‚ฌ์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์—ญ์ˆœ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค

 

1-3) ํŒจํ‚ค์ง€์˜ ์‚ฌ์šฉ

  • ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์žˆ๋Š” ๊ณต๊ฐœ๋œ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ๋ฅผ ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ์•Œ๋ ค ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
  • ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ์ ‘๋‘์–ด๋กœ ์‚ฌ์šฉํ•ด ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์žˆ๋Š” ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•œ๋‹ค. ex) new com.usa.people.Lincoln();
  • ์ž๋ฐ”๋Š” ์‚ฌ์šฉํ•˜๋ ค๋Š” ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ๋ฅผ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋Ÿฌ์— ์•Œ๋ ค ์ค„ ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์Œ๊ณผ ๊ฐ™์ด import ๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค
  • import ๋ฌธ์€ ์†Œ์Šค ํŒŒ์ผ์—์„œ package ๋ฌธ๊ณผ ์ฒซ ๋ฒˆ์งธ ํด๋ž˜์Šค ์„ ์–ธ๋ถ€ ์‚ฌ์ด์— ์œ„์น˜ํ•œ๋‹ค

package java04;

import com.usa.people.Lincoln;

 

public class ShowWorldPeople {

      public static void main(String[] args) {

             Lincoln greatman = new Lincoln();

      }

}

  • ์ปดํŒŒ์ผ๋Ÿฌ์— Lincoln ํด๋ž˜์Šค์˜ ๊ฒฝ๋กœ๋ฅผ ์•Œ๋ ค์ค€๋‹ค
  • import ๋ฌธ์œผ๋กœ ๊ฒฝ๋กœ๋ฅผ ์•Œ๋ ค ์ฃผ์—ˆ์œผ๋ฏ€๋กœ com.usa.people์ด๋ผ๋Š” ๊ฒฝ๋กœ ์ •๋ณด๋Š” ํ•„์š” ์—†๋‹ค

 

2) ์ž์‹ ํด๋ž˜์Šค์™€ ๋ถ€๋ชจ ์ƒ์„ฑ์ž

 

  • ์ƒ์„ฑ์ž๋Š” ํด๋ž˜์Šค ๋ฉค๋ฒ„๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์ž์‹ ํด๋ž˜์Šค์— ์ƒ์†๋˜์ง€๋Š” ์•Š๋Š”๋‹ค
  • ํ•˜์ง€๋งŒ ๋ถ€๋ชจ์—๊ฒŒ์„œ ๋ฌผ๋ ค๋ฐ›์€ ๋ฉค๋ฒ„๊ฐ€ ์žˆ๋‹ค๋ฉด ์ž์‹ ํด๋ž˜์Šค๋Š” ์ด๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๊ฐ€ ํ•„์š”ํ•˜๋‹ค

์ž์‹ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋ถ€๋ชจ ์ƒ์„ฑ์ž๋„ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ

 

  • ์ž์‹ ์ƒ์„ฑ์ž์˜ ์ฒซ ํ–‰์— ๋ถ€๋ชจ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค

 

3) ์ƒ์†๊ณผ ์ ‘๊ทผ์ œ์–ด

 

3-1) ์ ‘๊ทผ ์ง€์ •์ž์˜ ์ ‘๊ทผ ๋ฒ”์œ„

 

  • ์ž๋ฐ”๋Š” ํด๋ž˜์Šค์™€ ํด๋ž˜์Šค ๋ฉค๋ฒ„๋ฅผ ๋‹ค๋ฅธ ๊ฐ์ฒด์— ๊ณต๊ฐœํ•˜๋Š” ๋ฒ”์œ„๋ฅผ ๋ช…์‹œํ•˜๋ ค๊ณ  private, protected, public์ด๋ผ๋Š” ์ ‘๊ทผ ์ง€์ •์ž(access modifier)๋ฅผ ์ œ๊ณตํ•œ๋‹ค
์ ‘๊ทผ ์ง€์ •์ž ๋™์ผ ํด๋ž˜์Šค ๋™์ผ ํŒจํ‚ค์ง€ ์ž์‹ ํด๋ž˜์Šค  ๋‹ค๋ฅธ ํŒจํ‚ค์ง€
public o o o o
protected o o o x
์—†์Œ(default) o o x x
private o x x x
  • ๋‹ค๋ฅธ ํด๋ž˜์Šค์— ๊ณต๊ฐœํ•˜๋ ค๋ฉด public, ์ž์‹ ํด๋ž˜์Šค์—๋งŒ ๊ณต๊ฐœํ•˜๋ ค๋ฉด protected, ๊ณต๊ฐœํ•˜์ง€ ์•Š์œผ๋ฉด private์œผ๋กœ ์ง€์ •ํ•œ๋‹ค.    ์ ‘๊ทผ ์ง€์ •์ž๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์„ ๋•Œ๋Š” ํ•ด๋‹น ํŒจํ‚ค์ง€์—์„œ๋งŒ ๊ณต๊ฐœ๋˜๋Š”๋ฐ, ์ด๋ฅผ ๋””ํดํŠธ ์ ‘๊ทผ ์ง€์ •์ด๋ผ๊ณ  ํ•œ๋‹ค
  • private ๋ฉค๋ฒ„๋Š” ์ž์‹ ํด๋ž˜์Šค์— ์ƒ์†๋˜์ง€ ์•Š๋Š”๋‹ค
  • ํด๋ž˜์Šค ๋ฉค๋ฒ„๋Š” ์–ด๋–ค ์ ‘๊ทผ ์ง€์ •์ž๋กœ๋„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํด๋ž˜์Šค๋Š” protected์™€ private์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค
  • ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•  ๋•Œ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ณด๋‹ค ๋” ์ข‹์€ ์ ‘๊ทผ ์ง€์ •์„ ํ•  ์ˆ˜ ์—†๋‹ค.

 

4) final ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ

 

4-1) final ํด๋ž˜์Šค

  • ๋” ์ด์ƒ ์ƒ์†ํ•  ์ˆ˜ ์—†๋Š” ์ข…๋‹จ ํด๋ž˜์Šค๋ฅผ ์˜๋ฏธ
  • final ํด๋ž˜์Šค์˜ ๋ชฉ์ ์€ ์ž์‹ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•ด ๋น„๊ณต๊ฐœ ์ •๋ณด์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์‹œ์Šคํ…œ์„ ํŒŒ๊ดดํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค
  • ์ž๋ฐ” ํ‘œ์ค€ API๊ฐ€ ์ œ๊ณตํ•˜๋Š” String ํด๋ž˜์Šค๋Š” ๋Œ€ํ‘œ์ ์ธ final ํด๋ž˜์Šค๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž์‹ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•œ๋‹ค๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค

ex) class ChildString extends String {..}  =>  String์€ final ํด๋ž˜์Šค์ด๋ฏ€๋กœ ๋ถ€๋ชจ ํด๋ž˜์Šค๊ฐ€ ๋  ์ˆ˜ ์—†๋‹ค

 

 

4-2) final ๋ฉ”์„œ๋“œ

 

  • final ๋ฉ”์„œ๋“œ๋Š” ๋” ์ด์ƒ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•  ์ˆ˜ ์—†๋Š” ์ข…๋‹จ ๋ฉ”์„œ๋“œ์ด๋‹ค
  • ๋”ฐ๋ผ์„œ ๋ถ€๋ชจ ํด๋ž˜์Šค์—์„œ ์ •์˜ํ•œ final ๋ฉ”์„œ๋“œ๋ฅผ ์ž์‹ ํด๋ž˜์Šค๋Š” ์ˆ˜์ • ์—†์ด ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค
  • ํŠน์ • ๋ฉ”์„œ๋“œ๋งŒ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋ ค๋ฉด final ๋ฉ”์„œ๋“œ๋กœ ์„ ์–ธํ•œ๋‹ค

class Chess {

       enum ChessPlayer {

               WHITE, BLACK

      }

      final ChessPlayer getFirstPlayer() {

            return ChessPlayer.WHITE;

      }

}

class WorldChess extends Chess {

       // ChessPlayer getFirstPlayer() {}

}

 

public class FinalMethodDemo {

       public static void main(String[] args) {

              WorldChess w = new WorldChess();

              w.getFirstPlayer();

        }

}

=> ์ฒด์Šค ๊ฒŒ์ž„์€ ํฐ์ƒ‰ ์„ ์ˆ˜๊ฐ€ ๋จผ์ € ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ๊ด€๋ก€์ด๋ฏ€๋กœ ์‹œ์ž‘ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š์•„์•ผ ํ•˜๋ฏ€๋กœ ์ฒด์Šค์˜ ์‹œ์ž‘ ์„ ์ˆ˜๋ฅผ ์ •ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ final๋กœ ์ง€์ •ใ…Žํ•ด์„œ ๊ฒŒ์ž„์˜ ์ˆœ์„œ๋ฅผ ๊ณ ์ •ํ•œ ์˜ˆ์ œ์ด๋‹ค

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
๋ฐ˜์‘ํ˜•

'java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

java ๊ธฐ์ดˆ(๋ฌธ์ž์—ด์˜ ์„ ์–ธ๊ณผ ์ƒ์„ฑ, ๋ฌธ์žฅ์—ด์˜ ๋น„๊ต, ๋ฌธ์ž์—ด์˜ ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ, String ํด๋ž˜์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ์œ ์šฉํ•œ ์ •์  ๋ฉ”์„œ๋“œ, ๋ฐฐ์—ด๊ธฐ์ดˆ)  (0) 2023.04.06
java ๊ธฐ์ดˆ (์ œ์–ด๋ฌธ, ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ, ๋ถ„๊ธฐ๋ฌธ...)  (0) 2023.04.02
์—ฐ์‚ฐ์ž, ์ƒ์†(์ƒ์†์˜ ํ•„์š”์„ฑ, ์ƒ์†์ด๋ž€, ์ƒ์†์˜ ์„ ์–ธ, ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ, ์˜ค๋ฒ„๋กœ๋”ฉ ๋น„๊ต)  (0) 2023.03.27
java ๊ธฐ์ดˆ(๋ฐฐ์—ด ์‘์šฉ, ๊ฐ€๋ณ€ ๊ฐœ์ˆ˜ ์ธ์ˆ˜, ๊ฐ์ฒด์˜ ํƒ€์ž…, ์—ด๊ฑฐ ํƒ€์ž… ), ํŠน์ˆ˜๋ฌธ์ž ์›์ฃผ์œจ(ฯ€) ์“ฐ๋Š” ๋ฒ•  (0) 2023.03.25
java ์˜ˆ์ œ ๋ฌธ์ œ ํ’€๊ธฐ(์ˆซ์ž ๋”ํ•˜๊ธฐ, ์ง์ˆ˜ ์ถœ๋ ฅํ•˜๊ธฐ, ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ, ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ์ž‘์„ฑํ•˜๊ธฐ, 10์ง„์ˆ˜๋ฅผ 2์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๊ธฐ)  (0) 2023.03.22

+ Recent posts