在學(xué)習(xí)集合框架的時(shí)候,初學(xué)者很容易練習(xí)到學(xué)生管理系統(tǒng)、雇員管理體統(tǒng)等練習(xí)題。在學(xué)習(xí)集合框架之前,基本上java基本語法都學(xué)完了,集合框架也從側(cè)面的檢驗(yàn)對(duì)前面學(xué)習(xí)的理解。下面用一個(gè)曾經(jīng)做過的練習(xí)題,回顧集合框架,以及簡(jiǎn)要介紹面向?qū)ο缶幊趟枷?。我發(fā)現(xiàn)舊的知識(shí),當(dāng)你再回頭去看的時(shí)候,理解會(huì)更透徹。最近鞏固基礎(chǔ)ing。
工具:記事本,方便編譯和演示
環(huán)境:將代碼放在一個(gè)類當(dāng)中了(這個(gè)習(xí)慣很不好)
目的:回顧知識(shí),理解面向?qū)ο缶幊?/p>
代碼實(shí)例(分四塊,直接用即可)
1.導(dǎo)包
1
2
3
|
import java.util.arraylist; import java.io.bufferedreader; import java.io.inputstreamreader; |
2.測(cè)試類
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
public class guanli { public static void main(string[] args) throws exception { // todo auto-generated method stub // 創(chuàng)建empmanage對(duì)象 empmanage em = new empmanage(); bufferedreader br = new bufferedreader( new inputstreamreader(system.in)); // 做出一個(gè)簡(jiǎn)單的菜單 while ( true ) { system.out.println( "請(qǐng)輸入你要進(jìn)行的操作:" ); system.out.println( "1:表示要添加一個(gè)雇員" ); system.out.println( "2:表示要查找一個(gè)雇員" ); system.out.println( "3:表示要修改雇員工資" ); system.out.println( "4:表示要?jiǎng)h除一個(gè)雇員" ); system.out.println( "5:表示要您要退出操作" ); string opertype = br.readline(); if (opertype.equals( "1" )) { system.out.println( "請(qǐng)輸入編號(hào)" ); string num = br.readline(); system.out.println( "請(qǐng)輸入名字" ); string name = br.readline(); system.out.println( "請(qǐng)輸入工資" ); float sal = float .parsefloat(br.readline()); // 此時(shí)此刻,經(jīng)過輸入信息,對(duì)象創(chuàng)建好 emp2 emp = new emp2(num, name, sal); // 將它添加進(jìn)去 em.addemp(emp); } else if (opertype.equals( "2" )) { system.out.println( "請(qǐng)輸入編號(hào)" ); string num = br.readline(); em.showinfo(num); } else if (opertype.equals( "3" )) { system.out.println( "請(qǐng)輸入編號(hào)" ); string num = br.readline(); system.out.println( "請(qǐng)輸入工資" ); float sal = float .parsefloat(br.readline()); em.updatesal(num, sal); } else if (opertype.equals( "4" )) { system.out.println( "請(qǐng)輸入編號(hào)" ); string num = br.readline(); em.delemp(num); } else if (opertype.equals( "5" )) { system.exit( 0 ); } } } } |
3.雇員管理類(包括對(duì)雇員信息的動(dòng)態(tài)管理)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
// 創(chuàng)建雇員管理類 class empmanage { // 定義集合類(屬性) private arraylist<emp2> al = null ; // 構(gòu)造函數(shù),初始化成員變量 public empmanage() { al = new arraylist<emp2>(); } // 封裝的方法 // 1.加入員工 public void addemp(emp2 emp) { al.add(emp); } // 2.顯示員工相關(guān)信息 public void showinfo(string num) { // 遍歷整個(gè)arraylist for ( int i = 0 ; i < al.size(); i++) { // 取出emp2對(duì)象 emp2 emp = (emp2) al.get(i); // 比較編號(hào) if (emp.getnum().equals(num)) { system.out.println( "找到該員工,他的信息是:" ); system.out.println( "編號(hào):" + emp.getnum()); system.out.println( "名字:" + emp.getname()); system.out.println( "工資:" + emp.getsal()); } } } // 3.修改員工工資(依照編號(hào)來修改工資) // 即,第一個(gè)參數(shù)是編號(hào);第二個(gè)是用戶傳進(jìn)來“新的”薪水 public void updatesal(string num, float newsal) { // 遍歷 for ( int i = 0 ; i < al.size(); i++) { emp2 emp = (emp2) al.get(i); // 判斷編號(hào) if (emp.getnum().equals(num)) { // 修改薪水 emp.setsal(newsal); } } } // 4.刪除某個(gè)員工 public void delemp(string unm) { // 遍歷 for ( int i = 0 ; i < al.size(); i++) { emp2 emp = (emp2) al.get(i); if (emp.getnum().equals(unm)) { // 按編號(hào)刪除 al.remove(i); // 按對(duì)象刪除 // al.remove(emp); } } } } |
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
|
// 創(chuàng)建雇員類 class emp2 { private string name; public string getname() { return name; } public void setname(string name) { this .name = name; } public string getnum() { return num; } public void setnum(string num) { this .num = num; } public float getsal() { return sal; } public void setsal( float sal) { this .sal = sal; } // 學(xué)號(hào)里面可能出現(xiàn)字母,所以定義為string private string num; private float sal; // 構(gòu)造函數(shù),一堆初始化的工作 public emp2(string num, string name, float sal) { this .num = num; this .name = name; this .sal = sal; } } |
在這里,雇員類和雇員管理類分開,方法、屬性都進(jìn)行了相應(yīng)的封裝,各司其職。
在測(cè)試類中,我們想用做什么,就調(diào)用其類中的方法即可,而不用操心方法是咋實(shí)現(xiàn)的呀,里面都有哪些函數(shù)呀,這即是很好的面向?qū)ο缶幊趟枷搿?/p>
在dos中編譯的時(shí)候發(fā)現(xiàn),.java文件中所有的類會(huì)被分別編譯成.class文件。在使用ide后,這一點(diǎn)沒注意。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://www.cnblogs.com/1693977889zz/p/8359828.html