Java programming

(22.10.11)๋‹ค์ฐจ์› ๋ฐฐ์—ด ์‹ค์Šต๊ณผ ๊ฐ์ฒด์™€ ๋ฉ”์†Œ๋“œ

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2022. 10. 11.

๋ฐฐ์—ด ๋ณ€์ˆ˜ ํ™œ์šฉ๋ฒ•

โ‘ ๋ฐฐ์—ด ๋ณ€์ˆ˜ ์„ ์–ธ

โ‘ก๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํ™•๋ณด

โ‘ข์›์†Œ ์ดˆ๊ธฐํ™”

โ‘ฃ์‚ฌ์šฉ

 

*๋ฌธ์ž์—ด ๋ฐฐ์—ด์— 5๋ช…์˜ ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฏธ๋ฆฌ ์ €์žฅํ•ด๋†“๊ณ  ํ‚ค๋ณด๋“œ์—์„œ ๋กœ๊ทธ์ธํ•  ๋•Œ ๋ฐฐ์—ด์— ์ €์žฅ๋œ ์•„์ด๋””, ์•”ํ˜ธ์™€ ๋น„๊ตํ•˜์—ฌ '๋กœ๊ทธ์ธ ์„ฑ๊ณต' ํ˜น์€ '๋กœ๊ทธ์ธ ์‹คํŒจ' ๋ฉ”์„ธ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋ผ.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.util.Scanner;
 
public class Study {
 
    public static void main(String[] args) {
        String[] infor = new String[5];
        infor[0= "paul 5641";
        infor[1= "jun 4564";
        infor[2= "may 8796";
        infor[3= "smith 1234";
        infor[4= "bob 1345";
        
        Scanner kbd = new Scanner(System.in);
        System.out.print("๋กœ๊ทธ์ธ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค:");
        String line = kbd.nextLine();
        String[] idpw = line.split(" ");
        String id = idpw[0];
        String pw = idpw[1];
        boolean success = false;
        for(int i=0;i<infor.length;i++) {
            String [] idid = infor[i].split(" ");
            String idck = idid[0];
            String pwck = idid[1];
            if(id.equals(idck) && pw.equals(pwck))
            { 
                System.out.println("๋กœ๊ทธ์ธ ์„ฑ๊ณต");
                success = true;
                break;
            }
        }
        if(!success){
            System.out.println("๋กœ๊ทธ์ธ ์‹คํŒจ");
        }
    }
}
cs

์ฝ˜์†” ๊ฐ’:

๋กœ๊ทธ์ธ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค:bob 1345
๋กœ๊ทธ์ธ ์„ฑ๊ณต

 

๋กœ๊ทธ์ธ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค:smith 5612
๋กœ๊ทธ์ธ ์‹คํŒจ

 

**๋กœ๊ทธ์ธ ์‹คํŒจ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” for ๋ฐ˜๋ณต ๋ฃจํ”„๊ฐ€ ๋‹ค ๋๋‚˜์•ผ์ง€๋งŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋ณต๋ฌธ ๋๊นŒ์ง€ ํ™•์ธ ๋„์ค‘์— ์‹คํŒจํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ์ˆ˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— for๋ฌธ์— ์†ํ•ด ์žˆ๋Š” if (๋กœ๊ทธ์ธ ์„ฑ๊ณต)else(๋กœ๊ทธ์ธ์‹คํŒจ)ํ˜•์‹์€ ์“ฐ์ง€๋ชปํ•˜๊ณ  for๋ฌธ์—์„œ ๋ฒ—์–ด๋‚˜ if๋ฌธ์„ ์„ ์–ธํ•ด์•ผํ•œ๋‹ค.(๋กœ๊ทธ์ธ์— ์‹คํŒจ ํ–ˆ๋‹ค๋ฉด)

** 22, 23ํ–‰์„ ์ƒ๋žตํ•˜๊ณ  24ํ–‰์—์„œ

if(id.equals(idid[0]) && pw.equals(idid[1]))

์ด๋ ‡๊ฒŒ ์จ๋„ ๋œ๋‹ค.


์œ„์— ํšŒ์› ์ •๋ณด๋Š” ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํ•œ ๋ฐฐ์—ด์— ๋“ค์–ด๊ฐ”์ง€๋งŒ ์ด๊ฒƒ์„ ๋”ฐ๋กœ ๋‚˜๋ˆ„์–ด 2์ฐจ์› ๋ฐฐ์—ด์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

[์„ธ๋กœ][๊ฐ€๋กœ]

String[][] infor = new String[5][2];
์•„์ด๋””1 ๋น„๋ฒˆ1
์•„์ด๋””2 ๋น„๋ฒˆ2
์•„์ด๋””3 ๋น„๋ฒˆ3
์•„์ด๋””4 ๋น„๋ฒˆ4
์•„์ด๋””5 ๋น„๋ฒˆ5

ex) infor[3][1] = ๋น„๋ฒˆ4

 

์œ„ ๋ฌธ์ œ๋ฅผ ๋‹ค์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’€๋ฉด

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.util.Scanner;
 
public class Study {
 
    public static void main(String[] args) {
        
        String[][] infor = new String[5][2];
        infor[0][0= "paul";
        infor[0][1= "5641";
        infor[1][0= "jun";
        infor[1][1= "4564";
        infor[2][0= "may";
        infor[2][1= "8796";
        infor[3][0= "smith";
        infor[3][1= "1234";
        infor[4][0= "bob";
        infor[4][1= "1345";
        
        Scanner kbd = new Scanner(System.in);
        System.out.print("๋กœ๊ทธ์ธ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค:");
        String line = kbd.nextLine();
        String[] idpw = line.split(" ");
        String id = idpw[0];
        String pw = idpw[1];
        boolean success = false;
        for(int i=0;i<5;i++) {
            for(int y=0;y<5;y++) {
                if(id.equals(infor[i][0]) && pw.equals(infor[y][1])) {
                    System.out.println("๋กœ๊ทธ์ธ ์„ฑ๊ณต");
                    success = true;
                    break;
                }
            }
        }    
        if(!success){  
            System.err.println("๋กœ๊ทธ์ธ ์‹คํŒจ");
        }
    }
}
cs

์ฝ˜์†” ๊ฐ’:

๋กœ๊ทธ์ธ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค:smith 1234
๋กœ๊ทธ์ธ ์„ฑ๊ณต

 

๋กœ๊ทธ์ธ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค:smith 4563
๋กœ๊ทธ์ธ ์‹คํŒจ


๋ฐฐ์—ด์˜ ๋ฐฐ์—ด์ธ ๊ฐœ๋…์œผ๋กœ ๋งŒ๋“  ์ฝ”๋“œ ๋ง๊ณ  ๊ฐ„๋žตํ•œ ์ฝ”๋“œ์‹์œผ๋กœ ๋งŒ๋“ค๋ฉด

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.Scanner;
public class Study {
    public static void main(String[] args) {        
        String[][] infor = new String[5][2];
        infor[0][0= "paul";
        infor[0][1= "5641";
        infor[1][0= "jun";
        infor[1][1= "4564";
        infor[2][0= "may";
        infor[2][1= "8796";
        infor[3][0= "smith";
        infor[3][1= "1234";
        infor[4][0= "bob";
        infor[4][1= "1345";
        
        Scanner kbd = new Scanner(System.in);
        System.out.print("๋กœ๊ทธ์ธ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค:");
        String line = kbd.nextLine();
        String[] idpw = line.split(" ");
        String id = idpw[0];
        String pw = idpw[1];
        boolean success = false;
        for(int i=0;i<infor.length;i++) {
            if(id.equals(infor[i][0]) && pw.equals(infor[i][1])) {
                System.out.println("๋กœ๊ทธ์ธ ์„ฑ๊ณต");
                success = true;
                break;
            }
        }    
        if(!success){   
            System.err.println("๋กœ๊ทธ์ธ ์‹คํŒจ");
        }
    }
}
cs

์ด์ฐจ์› ๋ฐฐ์—ด์˜ ์›์†Œ๋Š” ์ผ์ฐจ์› ๋ฐฐ์—ด

์ด์ฐจ์› ๋ฐฐ์—ด์˜ ๊ธธ์ด ".lengh" ๋Š” [5][2] ๋ฉด 5์ด๋‹ค. [5]๋Š” ์ด์ฐจ์› ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์ •๋ณด์ด๊ณ  [2]๋Š” ์ผ์ฐจ์› ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์ •๋ณด์ด๋‹ค.

String[][] infor = new String[5][2];
infor[0][0] = "paul";
infor[0][1] = "5641";

์ด๋ ‡๊ฒŒ 2์ค„๋กœ ๋‚˜ํƒ€๋‚ธ ๋‹ค์ค‘ ๋ฐฐ์—ด์„

String[][] infor = new String[5][];
infor[0] = new String[] {"paul","5641"};

์ด๋ ‡๊ฒŒ ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. String ๋’ค [ ]์€ ๋น„์›Œ์ค˜๋„ ๋ฌด๋ฐฉํ•˜๋‹ค.


Member variables

๋ฉค๋ฒ„ ๋ณ€์ˆ˜์—๋Š” Class๋ณ€์ˆ˜, Instance ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋‹ค.

class ๋ณ€์ˆ˜ : ststic  ํ‚ค์›Œ๋“œ๋ฅผ ๊ฐ€์ง„ ๋ณ€์ˆ˜

๊ฐœ๋ฐœ์ž๊ฐ€ ๋กœ๋“œํ•˜๋ผ๋Š” ๋ช…๋ น์„ ํ•˜์ง€ ์•Š์•„๋„ ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์ž๋™์œผ๋กœ ๋กœ๋“œ๋œ๋‹ค.

์—ด๊ฑฐํ˜• ์ž๋ฃŒํ˜• ์„ ์–ธ

์—ด๊ฑฐํ˜• ์ž๋ฃŒํ˜• ์„ ์–ธ์—” ํ•ญ์ƒ enum์ด ์™€์•ผํ•œ๋‹ค.

์ €๋ฒˆ์— ํ–ˆ๋˜ ํšŒ์›๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์„ ์—ด๊ฑฐํ˜• ์ž๋ฃŒํ˜• ์„ ์–ธ์„ ์ด์šฉํ•˜์—ฌ ๋‚˜ํƒ€๋‚ด๋ฉด

static enum Menu {ADD, LIST, UPDATE, FIND, DELETE, EXIT};

์ด๋ ‡๊ฒŒ ์—ด๊ฑฐํ˜• ์ž๋ฃŒํ˜•์„ ์„ ์–ธํ•ด์ฃผ๊ณ , if๋ฌธ์„ ๋” ๊น”๋”ํ•œ switch๋ฌธ์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

menu ๋ฉ”์†Œ๋“œ์—์„œ๋„ String ์ž๋ฃŒํ˜•์ด ์•„๋‹Œ Menu ์ž๋ฃŒํ˜•์œผ๋กœ ๋ฐ”๊ฟ”์ค˜์•ผํ•œ๋‹ค.

public static Menu menu()

 

๊ทธ๋ฆฌ๊ณ  return ๊ฐ’๋„ Menu ํ˜•์„ ๋ฆฌํ„ดํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž์˜ ํ‚ค๋ณด๋“œ์—์„œ ๋ฐ›์•„์˜จ ๊ฐ’๊ณผ ๊ฐ™์„ ๋•Œ ๊ทธ์— ๋งž๋Š” Menu ํ˜•์˜ menu๋ฅผ ๋งค์น˜ ์‹œ์ผœ์ค€๋‹ค.

String m = kbd.nextLine().strip();
Menu menu = null;
if(m.equals("a")) menu = Menu.ADD;
else if(m.equals("s")) menu = Menu.LIST;
else if(m.equals("u")) menu = Menu.UPDATE;
else if(m.equals("f")) menu = Menu.FIND;
else if(m.equals("d")) menu = Menu.DELETE;
else if(m.equals("x")) menu = Menu.EXIT;
else			menu = null;
return menu;

๋ฉ”์†Œ๋“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class MethodTest 
{
    public static void main(String[] args) {
        MethodTest mt= new MethodTest();
        mt.test(); // void - MethodTest
        //test(); -> ๊ทธ๋ƒฅ static ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ(call, invocation)ํ• ๋• ์ด๋ ‡๊ฒŒ ํ•œ๋‹ค.
        // static ํ‚ค์›Œ๋“œ๊ฐ€ ์—†๋Š” ๋ฉค๋ฒ„(๋ณ€์ˆ˜ ์™€ ๋ฉ”์†Œ๋“œ) => instance method
        // static ํ‚ค์›Œ๋“œ๊ฐ€ ์—†๋Š” ๋ฉค๋ฒ„๋Š” ๋กœ๋“œํ•˜์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ ๋กœ๋“œ๋œ๋‹ค.
        // instance method๋Š” ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด์„  class์— new๋กœ ๋ถˆ๋Ÿฌ์ค˜์•ผํ•œ๋‹ค.
        // static ๋ณ€์ˆ˜ : ํด๋ž˜์Šค ๋ณ€์ˆ˜, ์ •์ ๋ณ€์ˆ˜
        //non-static ๋ณ€์ˆ˜ : ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜(๊ฐ์ฒด๋ณ€์ˆ˜)
        // static ๋ฉ”์†Œ๋“œ : ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ, ์ •์  ๋ฉ”์†Œ๋“œ
        //non-static ๋ฉ”์†Œ๋“œ : ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ(๊ฐ์ฒด๋ฉ”์†Œ๋“œ)
    }
    public void test() {
        
    }
}
 
cs
public class MethodTest 
{
	static String msg = "๋ฉ”์†Œ๋“œ ์—ฐ์Šต";
	String name = "์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ ์—ฐ์Šต";
	
	public static void main(String[] args) {
		MethodTest mt= new MethodTest();
		mt.test();
		System.out.println(MethodTest.msg); // .์€ ๋ฒ”์œ„ ์—ฐ์‚ฐ์ž
		System.out.println(mt.name);
		
	}
	public void test() {
		
	}
}

static ๋ณ€์ˆ˜๋Š” ํด๋ž˜์Šค ๋ณ€์ˆ˜๋กœ์„œ ํ˜ธ์ถœํ•˜์ง€ ์•Š์•„๋„ ๋ฐ”๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

non-static ๋ณ€์ˆ˜๋Š” ํ˜ธ์ถœํ•ด์•ผ๋งŒ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

MethodTest mt= new MethodTest();

์ดํ›„์— mt.name >>> mt์— ์žˆ๋Š” name ( .์€ ๋ฒ”์œ„ ์—ฐ์‚ฐ์ž)

์ ‘๊ทผ ์ œํ•œ์ž(Access Modifier):

โ‘ public : ์™ธ๋ถ€ ํŒจํ‚ค์ง€์—์„œ๋„ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

โ‘ก์ ‘๊ทผ ์ œํ•œ์ž๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, ๋””ํดํŠธ ์ƒํƒœ : ํ˜„์žฌ ํŒจํ‚ค์ง€์—์„œ ํ˜ธ์ถœ ๊ฐ€๋Šฅ

โ‘ขprotected :  ์ž์‹ ํด๋ž˜์Šค์™€ ํ˜„์žฌ ํŒจํ‚ค์ง€์—์„œ ํ˜ธ์ถœ ๊ฐ€๋Šฅ

โ‘ฃprivate : ํ˜„์žฌ ํด๋ž˜์Šค์—์„œ๋งŒ ํ˜ธ์ถœ ๊ฐ€๋Šฅ


static :  ์ •์ ์ด๋‹ค.

void : ๋ฆฌํ„ดํ•˜๋Š” ๊ฒƒ์ด ์—†๋‹ค.

String[] args : ์ •๋ณด๋ฅผ ์—ฌ๊ธฐ์„œ ๋ฐ›์•„์„œ ์˜จ๋‹ค.

๋Œ“๊ธ€