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) λ¬Έμžμ—΄μ˜ μ„ μ–Έκ³Ό 생성

  • λ¬Έμžμ—΄μ€ String νƒ€μž…μ„ μ‚¬μš©ν•˜λ―€λ‘œ  String νƒ€μž…μ˜ λ³€μˆ˜λ₯Ό λ¨Όμ € μ„ μ–Έν•΄μ•Ό ν•œλ‹€
  • String νƒ€μž…μ˜ λ³€μˆ˜λŠ” λ‹€μŒκ³Ό 같이 ν°λ”°μŒν‘œ(" ")둜 κ°μ‹Έμ„œ λ‚˜νƒ€λ‚Έ λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄μ„ μ‚¬μš©ν•˜μ—¬ μ΄ˆκΈ°ν™”ν•  수 μžˆλ‹€

String νƒ€μž…λ„ λ³€μˆ˜ μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”ν•  수 μžˆλ‹€

  • λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄μ€ λ‚΄λΆ€μ μœΌλ‘œ new String()을 ν˜ΈμΆœν•΄ μƒμ„±ν•œ 객체이닀
  • λ”°λΌμ„œ s1은 new String("μ•ˆλ…•, μžλ°”!")λ₯Ό ν˜ΈμΆœν•΄μ„œ μƒμ„±ν•œ 객체λ₯Ό 가리킨닀
  • κ·ΈλŸ¬λ‚˜ λ‚΄μš©μ΄ 같은 λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄(ν”„λ‘œκ·Έλž¨μ—μ„œ 직접 ν‘œν˜„ν•œ κ°’)이라면 더 이상 μƒˆλ‘œμš΄ String 객체λ₯Ό μƒμ„±ν•˜μ§€ μ•Šμ€ 채 κΈ°μ‘΄ λ¦¬ν„°λŸ΄μ„ 곡유, λ”°λΌμ„œ s1κ³Ό s2λŠ” λ™μΌν•œ String객체λ₯Ό κ°€μ§„λ‹€

 

1-2) λ¬Έμžμ—΄μ˜ 비ꡐ

 

  • ==λ‚˜ != μ—°μ‚°μžλŠ” 두 λ¬Έμžμ—΄μ˜ λ‚΄μš©μ„ λΉ„κ΅ν•˜λŠ” 것이 μ•„λ‹ˆλΌ λ™μΌν•œ 객체인지λ₯Ό κ²€μ‚¬ν•œλ‹€

public class String1Demo {

       public static void main(String[] args) {

              String s1 = "Hi, Java!";

              String s2 = "Hi, Java!";

              String s3 = new String("Hi, Java!");

              String s4 = new String("Hi, Java!");

 

              System.out.println("s1 == s2 ->" + (s1 == s2));

              System.out.println("s1 == s3 ->" + (s1 == s3));

              System.out.println("s3 == s4 ->" + (s3 == s4));

 

               s1 = s3;

               System.out.println("s1 == s3 ->" + (s1 == s3));

       }

}

닡은

s1 == s2 ->true

s1 == s3 ->false

s3 == s4 ->false

s1 == s3 ->true

  • s1, s2 λ³€μˆ˜λŠ” λ‚΄μš©μ΄ 같은 λ¦¬ν„°λŸ΄μ΄λ―€λ‘œ λ™μΌν•œ 객체이닀
  • s3, s4 λ³€μˆ˜λŠ” λ‚΄μš©μ€ κ°™μ§€λ§Œ, μƒμ„±μžλ‘œ μƒμ„±ν•œ 객체이기 λ•Œλ¬Έμ— λ‹€λ₯Έ 객체이닀

 

1-3) λ¬Έμžμ—΄μ˜ λ‹€μ–‘ν•œ μ—°μ‚°

 

 

public class String3Demo {

       public static void main(String[] args) {

              String s1 = new String("Hi,");

              String s2 = new String(" Java");

 

              System.out.println("λ¬Έμžμ—΄ 길이(s1) : " + s1.length());

              System.out.println(s1.charAt(1));

 

               s1 = s1.concat(s2);

 

               System.out.println(s1.concat(s2) + "!");

               System.out.println(s1.toLowerCase() + "!");

               System.out.println(s1.substring(4, 8) + "!");

 

               String s3 = " ";

               System.out.println(s3.isEmpty());

               System.out.println(s3.isBlank());

 

               String s4 = "";

               System.out.println(s4.isEmpty());

               System.out.println(s4.isBlank());

 

               String s5 = "*-*";

               System.out.println(s5.repeat(10));

               System.out.println(s2.trim().indexOf("v"));

       }

}

닡은

λ¬Έμžμ—΄ 길이(s1) : 3

i

Hi, Java Java!

hi, java!

Java!

false

true

true

true

*-**-**-**-**-**-**-**-**-**-*

2

λ‚˜λ¨Έμ§€λŠ” μœ„μ— ν‘œλ₯Ό 보고 κ·ΈλŒ€λ‘œ 좜λ ₯ν•˜λ©΄ λ˜λŠ”λ° λ§ˆμ§€λ§‰ 좜λ ₯λ¬Έμ—μ„œ

System.out.println(s2.trim().indexOf("v"));

trim().indexOf()κ°€ 연달아 λ‚˜μ™€μ„œ μˆœμ„œλ₯Ό λ°”κΏ”μ„œ ν•˜λ©΄ 값이 λ‹¬λΌμ§€λ―€λ‘œ μ€‘μš”ν•˜λ‹€~~ 

항상 좜λ ₯은 μ•žμ—μ„œ λΆ€ν„° ν•˜λ―€λ‘œ trimλΆ€ν„°ν•΄μ„œ 곡백을 μ—†μ• κ³  indexOf둜 v의 μœ„μΉ˜λ₯Ό μ°ΎμœΌλ―€λ‘œ 닡은 222222

 

 

1-4) String ν΄λž˜μŠ€μ—μ„œ μ œκ³΅ν•˜λŠ” μœ μš©ν•œ 정적 λ©”μ„œλ“œ

 

정적 λ©”μ„œλ“œ μ„€λͺ…
String format() μ£Όμ–΄μ§„ ν¬λ§·μ—μ„œ 맞좘 λ¬Έμžμ—΄μ„ λ°˜ν™˜
String join() μ£Όμ–΄μ§„ κ΅¬λΆ„μžμ™€ μ—°κ²°ν•œ λ¬Έμžμ—΄μ„ λ°˜ν™˜(μžλ°” 8λΆ€ν„°)
String valueOf() 각쒅 기초 νƒ€μž…μ΄λ‚˜ 객체λ₯Ό λ¬Έμžμ—΄λ‘œ λ°˜ν™˜

public class String5Demo {

       public static void main(String[] args) {

              String version = String.format("%s %d", "JDK", 14);

              System.out.println(version);

 

              String fruits = String.join(",", "apple", "banana", "cherry", "durian");

              System.out.println(fruits);

 

              String pi = String.valueOf(3.14);

              System.out.println(pi);

      }

}

닡은

JDK 14

apple,banana,cherry,durian

3.14

 


2) λ°°μ—΄ 기초

 

2-1) λ°°μ—΄μ˜ κ°œλ…

 

  • λ°°μ—΄(array) : νƒ€μž…μ΄ λ™μΌν•œ μ—¬λŸ¬ λ°μ΄ν„°μ˜ μ—°μ†λœ κΈ°μ–΅ κ³΅κ°„μœΌλ‘œ, λͺ¨λ“  데이터가 같은 λ°°μ—΄ 이름을 μ‚¬μš©

2-2) λ°°μ—΄μ˜ μ„ μ–Έκ³Ό 생성

 

  • λ°°μ—΄μ˜ ν¬κΈ°λŠ” 배열이 생성될 λ•Œ μ •ν•΄μ§€λ©°, length ν•„λ“œμ— μ €μž₯ν•œλ‹€
  • scoresλŠ” 배열을 μ°Έμ‘°ν•  λ³€μˆ˜μ— λΆˆκ³Όν•˜λ―€λ‘œ λ°°μ—΄ 객체λ₯Ό μƒμ„±ν•΄μ•Όν•œλ‹€
  • λ°°μ—΄ κ°μ²΄λŠ” λ¬Έμžμ—΄μ²˜λŸΌ new μ—°μ‚°μžλ‘œ μƒμ„±ν•œλ‹€

 

2-3) 닀차원 λ°°μ—΄

 

  • λ°°μ—΄μ˜ λ°°μ—΄
  • ex) 학생 3λͺ…μ˜ 5κ³Όλͺ© 성적을 μ²˜λ¦¬ν•˜λŠ” μ •μˆ˜ νƒ€μž… 2차원 λ°°μ—΄(3ν–‰ * 5μ—΄)인 scorsesλ₯Ό μ„ μ–Έν•˜κ³  μƒμ„±ν•œλ‹€λ©΄..

2-4) 동적 λ°°μ—΄

 

  • μ²˜λ¦¬ν•  λ°μ΄ν„°μ˜ κ°œμˆ˜κ°€ κ³ μ •λœ κ²½μš°κ°€ μ•„λ‹ˆλΌλ©΄ 정적 배열은 μžμ›μ„ λ‚­λΉ„ν•˜κ±°λ‚˜ ν”„λ‘œκ·Έλž¨μ„ λ‹€μ‹œ 컴파일
  • μžλ°”λŠ” 크기가 μœ λ™μ μΈ 배열을 μ§€μ›ν•˜κΈ° μœ„ν•˜μ—¬ ArrayList 클래슀λ₯Ό 제곡
  • ArrayList 객체 생성
더보기

ArrayList<μ°Έμ‘°νƒ€μž…>μ°Έμ‘°λ³€μˆ˜ = new ArrayList<>();

μ°Έμ‘° νƒ€μž… : 기초 νƒ€μž…μ˜ 동적 배열이라면 Integer, Long, Short, Float, Double, Charater, Boolean 등을 μ‚¬μš©ν•œλ‹€

 

728x90
λ°˜μ‘ν˜•
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. λ¨Όμ € μ½”λ“œλ₯Ό gpt에 μž…λ ₯ν•˜λ“ , μžμ‹ μ΄ 찾아보든, λ§Œλ“€λ“ ν•΄μ„œ μ½”λ“œλ₯Ό μ™„μ„±ν•˜κ³  μ‹€ν–‰ μ‹œν‚΅λ‹ˆλ‹€. (μ½”λ“œ μ‹€ν–‰λ˜μ–΄μ•Ό κ°€λŠ₯)

import tkinter as tk
import datetime


class CountdownApp:
    def __init__(self, master):
        self.master = master
        self.master.title("μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬ ν•„κΈ° 합격 κ°€λ³΄μžκ³ !")
        self.master.attributes("-fullscreen", True)
        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", 96),
            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", 48),
            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="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()
 

κ²°κ³ΌλŠ” μ΄λ ‡κ²Œ λ‚˜μ˜€κ΅¬μ—¬~~ 이걸 파일둜 λ§Œλ“€μ–΄ λ³΄κ² μŠ΅λ‹ˆλ‹€!! (μ •μ²˜κΈ° μ€€λΉ„ν•˜μ‹œλŠ”λΆ„λ“€ 파이링)

 

2. 터미널에  pip install pyinstaller을 μž…λ ₯ν•΄μ€λ‹ˆλ‹€

 

3. κ·Έ 후에 pyinstaller -w 파일λͺ…(countdown_gosim.py)을 터미널에 μž…λ ₯ν•΄μ€λ‹ˆλ‹€

 

4. λ§ˆμ§€λ§‰μœΌλ‘œ dist μ•ˆμ— μžˆλŠ” μ±… λͺ¨μ–‘ μ‹€ν–‰ νŒŒμΌμ„ μ°Ύμ•„μ„œ μ—΄μ–΄μ£Όλ©΄ 파이썬이 없어도 μ‚¬μš© κ°€λŠ₯ν•œ μ‹€ν–‰ 파일 λ§Œλ“€κΈ° 끝!!!

 

 

2)  chat gptλ₯Ό vscode μ•ˆμœΌλ‘œ 데리고 μ˜€κΈ°πŸ‘

 

(421) ChatGPTλ₯Ό VSCodeμ•ˆμœΌλ‘œ 데리고 였자 | 인곡지λŠ₯ μ½”λ”© - YouTube

이 μ˜μƒμ„ μ°Έκ³ ν•˜μ˜€μŠ΅λ‹ˆλ‹€ γ…Žγ…Žγ…Ž λ˜‘λ˜‘ν•œ gptμ”ŒπŸ˜

 https://platform.openai.com/account/api-keys

 

OpenAI API

An API for accessing new AI models developed by OpenAI

platform.openai.com

1. μš” 링크 λ“€μ–΄κ°€μ…”μ„œ ν‚€λ₯Ό λ§Œλ“€κ³  볡사λ₯Ό ν•œν›„μ—

2. μ„€μ •(Setting) λ“€μ–΄κ°€μ…”μ„œ Goto Location: Alternative Definition Command 밑에 λ³΅μ‚¬ν•œ ν‚€λ₯Ό 볡사뢙여넣기 ν•˜λ©΄ 끝!!3.

 

++chat gptλ₯Ό λΆˆλŸ¬μ˜€λŠ” 방법은 μ΄λŸ¬μ΄λŸ¬ν•©λ‹ˆλ‹Ή

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
λ°˜μ‘ν˜•

+ Recent posts