[Day8] Java 8 [8/18]

 

1.  ์ •๊ทœํ‘œํ˜„์‹ (regex)

String regex = [ํŠน์ •๋ฌธ์ž]

String regex = "100|[1-9]?\\d";    // 100 ํ˜น์€ 1~9๊ฐ€ 0๋ฒˆ ํ˜น์€ 1๋ฒˆ ๋ฐœ์ƒ + 1~9 = 0~99

char grade;	
	Scanner scanner = new Scanner(System.in);	
	int count = 0;
	String strGrade;
	String regex = "[์ˆ˜์šฐ๋ฏธ์–‘๊ฐ€]";  // "์ˆ˜" || "์šฐ" || "๋ฏธ" ~ 
	                        //  [0-9] == [0123456789]
	do {
		if( count != 0 )  System.out.printf("(์•Œ๋ฆผ) %d๋ฒˆ ์‹ค์ˆ˜ : ์ž…๋ ฅ์ด ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. \n", count); 
		// 
		if ( count == 5 ) {
			System.out.println("\t ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ!!!");
			// break; // ์ œ์–ด๋ฌธ ๋น ์ ธ๋‚˜๊ฐ.  do~ while
			// return ; // main () .๋น ์ ธ๋‚˜๊ฐ == ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ
			System.exit(-1);  // exit() ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒํ•˜๋Š” ํ•จ์ˆ˜ ( ๊ธฐ์–ต )
		}
		
		System.out.print("> ๋“ฑ๊ธ‰ ์ž…๋ ฅ(์ˆ˜,์šฐ,๋ฏธ,์–‘,๊ฐ€) ? ");
		strGrade = scanner.next();
	
		count++;
	} while (  !strGrade.matches(regex)  );
	
	grade = strGrade.charAt(0);
	System.out.println(  grade );

 

2.  ๋ฉ”์„œ๋“œ (ํ•จ์ˆ˜)

1) ์ •์˜ : ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฐ˜๋ณต๋˜๋Š” ๋ช…๋ น์–ด ๋ณ„๋„๋กœ ๋ฌถ์–ด์„œ ํ•„์š”ํ• ๋•Œ๋งˆ๋‹ค ๋ถˆ๋Ÿฌ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๊ฒƒ

2) ๊ตฌ์กฐํ™” ํ†ตํ•ด [๊ฐ€๋…์„ฑ, ์œ ์ง€๋ณด์ˆ˜ ํŽธ๋ฆฌ]

3) ์žฌ์‚ฌ์šฉ ํ†ตํ•ด [์„ฑ๋Šฅ ํ–ฅ์ƒ]

4) ์„ ์–ธํ˜•์‹ 

[์ ‘๊ทผ์ง€์ •์ž] [๊ธฐํƒ€์ œ์–ด์ž] ๋ฆฌํ„ด์ž๋ฃŒํ˜•  ํ•จ์ˆ˜๋ช…( [ ๋งค๊ฐœ๋ณ€์ˆ˜... ]){
		 *     
		 *          // ํ•˜๊ณ ์ž ํ•˜๋Š” ์ฝ”๋”ฉ
		 *          // ํ•˜๊ณ ์ž ํ•˜๋Š” ์ฝ”๋”ฉ          
		 *          // ํ•˜๊ณ ์ž ํ•˜๋Š” ์ฝ”๋”ฉ
		 *          // ํ•˜๊ณ ์ž ํ•˜๋Š” ์ฝ”๋”ฉ
		 *          
		 *          [return ๋ฆฌํ„ด๊ฐ’;]
		 *     }

5) ๋ฉ”์„œ๋“œ(ํ•จ์ˆ˜)์˜ 3๊ฐ€์ง€ ์ดํ•ด

- ๊ธฐ๋Šฅ(์—ญํ• )

- ๋งค๊ฐœ๋ณ€์ˆ˜

- ๋ฆฌํ„ด๊ฐ’(๋ฆฌํ„ด์ž๋ฃŒํ˜•)

6) ์žฅ์  :

+ ์ฝ”๋“œ๋Ÿ‰ ์ค„์–ด๋“ค์–ด -> ์ปดํŒŒ์ผ ์šฉ๋Ÿ‰ ์ž‘์•„์ ธ -> ์‹คํ–‰ ์„ฑ๋Šฅ ํ–ฅ์ƒ

+ ํŒ€์ž‘์—… ๊ฐ€๋Šฅ -> ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ -> ๋งค์ถœ ํ–ฅ์ƒ

7) ์žฌ๊ท€ํ•จ์ˆ˜ (์–ด์ฉ”์ˆ˜์—†์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ)

์ •์˜: ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜

 

 

3.  ์˜ค๋ฒ„๋กœ๋”ฉ

overloading( ์˜ค๋ฒ„๋กœ๋”ฉ  ) ?  

1) ํ•จ์ˆ˜๋ช…์ด ๊ฐ™์€ ์ค‘๋ณต ์„ ์–ธ๋œ ํ•จ์ˆ˜( ์ค‘๋ณตํ•จ์ˆ˜ )

2) ๋™์ผํ•œ ํ•จ์ˆ˜๋ช…์œผ๋กœ ์ค‘๋ณต ์„ ์–ธํ•˜๋Š” ๊ฒƒ์„ ์˜ค๋ฒ„๋กœ๋”ฉ์ด๋ผ๊ณ  ํ•œ๋‹ค. 

3) ์กฐ๊ฑด 

- ํ•จ์ˆ˜๋ช… ๋™์ผ == ์ค‘๋ณตํ•จ์ˆ˜

- ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐฏ์ˆ˜, ํƒ€์ž… ๋‹ฌ๋ผ์•ผ ํ•œ๋‹ค.

- ๋ฆฌํ„ด์ž๋ฃŒํ˜• X 

 

* ํ•จ์ˆ˜๋ช… ๋™์ผํ•˜๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๊ฐ™์œผ๋ฉด ์ค‘๋ณตํ•จ์ˆ˜๋กœ ์„ ์–ธํ•  ์ˆ˜ ์—†๋‹ค.

4. swap

// Call By Value           :  ๋งค๊ฐœ๋ณ€์ˆ˜

// Call By Reference   : ์ฐธ์กฐ๋ณ€์ˆ˜

// Call By Name   ๋งค๊ฐœ๋ณ€์ˆ˜ X  ํ•จ์ˆ˜ ์ด๋ฆ„๋งŒ ๊ฐ€์ง€๊ณ  ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ 

// Call By Point       X

 

Call by Reference ์ฐธ์กฐํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜ ์ฒ˜๋ฆฌ.  - ๋ฐฐ์—ด , ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค

public static void swap( int [] xy  ){
    int temp = xy[0];
    xy[0] = xy[1];
    xy[1] = temp;
    }
  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ์— ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ ํ•˜๊ธฐ