#17 Khalil

開啟中
Ksaboor 請求將 3 次程式碼提交從 Ksaboor/ZCW-Inheritance-AbstractBankAccount:master 合併至 master

+ 1
- 1
.idea/compiler.xml 查看文件

@@ -10,7 +10,7 @@
10 10
       </profile>
11 11
     </annotationProcessing>
12 12
     <bytecodeTargetLevel target="1.8">
13
-      <module name="bankaccountlab" target="1.5" />
13
+      <module name="bankaccountlab" target="1.8" />
14 14
     </bytecodeTargetLevel>
15 15
   </component>
16 16
 </project>

+ 13
- 0
.idea/libraries/Maven__junit_junit_4_12.xml 查看文件

@@ -0,0 +1,13 @@
1
+<component name="libraryTable">
2
+  <library name="Maven: junit:junit:4.12">
3
+    <CLASSES>
4
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" />
5
+    </CLASSES>
6
+    <JAVADOC>
7
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-javadoc.jar!/" />
8
+    </JAVADOC>
9
+    <SOURCES>
10
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-sources.jar!/" />
11
+    </SOURCES>
12
+  </library>
13
+</component>

+ 13
- 0
.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml 查看文件

@@ -0,0 +1,13 @@
1
+<component name="libraryTable">
2
+  <library name="Maven: org.hamcrest:hamcrest-core:1.3">
3
+    <CLASSES>
4
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
5
+    </CLASSES>
6
+    <JAVADOC>
7
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" />
8
+    </JAVADOC>
9
+    <SOURCES>
10
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" />
11
+    </SOURCES>
12
+  </library>
13
+</component>

+ 0
- 61
.idea/misc.xml 查看文件

@@ -64,65 +64,4 @@
64 64
   <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
65 65
     <output url="file://$PROJECT_DIR$/out" />
66 66
   </component>
67
-  <component name="masterDetails">
68
-    <states>
69
-      <state key="GlobalLibrariesConfigurable.UI">
70
-        <settings>
71
-          <splitter-proportions>
72
-            <option name="proportions">
73
-              <list>
74
-                <option value="0.2" />
75
-              </list>
76
-            </option>
77
-          </splitter-proportions>
78
-        </settings>
79
-      </state>
80
-      <state key="JdkListConfigurable.UI">
81
-        <settings>
82
-          <last-edited>1.8</last-edited>
83
-          <splitter-proportions>
84
-            <option name="proportions">
85
-              <list>
86
-                <option value="0.2" />
87
-              </list>
88
-            </option>
89
-          </splitter-proportions>
90
-        </settings>
91
-      </state>
92
-      <state key="ProjectJDKs.UI">
93
-        <settings>
94
-          <last-edited>1.8</last-edited>
95
-          <splitter-proportions>
96
-            <option name="proportions">
97
-              <list>
98
-                <option value="0.2" />
99
-              </list>
100
-            </option>
101
-          </splitter-proportions>
102
-        </settings>
103
-      </state>
104
-      <state key="ProjectLibrariesConfigurable.UI">
105
-        <settings>
106
-          <splitter-proportions>
107
-            <option name="proportions">
108
-              <list>
109
-                <option value="0.2" />
110
-              </list>
111
-            </option>
112
-          </splitter-proportions>
113
-        </settings>
114
-      </state>
115
-      <state key="ScopeChooserConfigurable.UI">
116
-        <settings>
117
-          <splitter-proportions>
118
-            <option name="proportions">
119
-              <list>
120
-                <option value="0.2" />
121
-              </list>
122
-            </option>
123
-          </splitter-proportions>
124
-        </settings>
125
-      </state>
126
-    </states>
127
-  </component>
128 67
 </project>

+ 821
- 359
.idea/workspace.xml
文件差異過大導致無法顯示
查看文件


+ 1
- 0
Bank.xml 查看文件

@@ -0,0 +1 @@
1
+<mxfile userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36" version="8.8.4" editor="www.draw.io" type="device"><diagram id="5e5e50a6-6a83-957a-8cee-7913c257d040" name="Page-1">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</diagram></mxfile>

+ 26
- 1
pom.xml 查看文件

@@ -3,10 +3,35 @@
3 3
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 4
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5 5
     <modelVersion>4.0.0</modelVersion>
6
-
6
+    <build>
7
+        <plugins>
8
+            <plugin>
9
+                <groupId>org.apache.maven.plugins</groupId>
10
+                <artifactId>maven-compiler-plugin</artifactId>
11
+                <configuration>
12
+                    <source>1.8</source>
13
+                    <target>1.8</target>
14
+                </configuration>
15
+            </plugin>
16
+        </plugins>
17
+    </build>
7 18
     <groupId>com.zipcodewilmington</groupId>
8 19
     <artifactId>bankaccountlab</artifactId>
9 20
     <version>1.0-SNAPSHOT</version>
21
+    <dependencies>
22
+        <dependency>
23
+            <groupId>junit</groupId>
24
+            <artifactId>junit</artifactId>
25
+            <version>RELEASE</version>
26
+            <scope>test</scope>
27
+        </dependency>
28
+        <dependency>
29
+            <groupId>junit</groupId>
30
+            <artifactId>junit</artifactId>
31
+            <version>RELEASE</version>
32
+            <scope>test</scope>
33
+        </dependency>
34
+    </dependencies>
10 35
 
11 36
 
12 37
 </project>

+ 22
- 0
src/main/java/com/zipcodewilmington/bankaccountlab/Account.java 查看文件

@@ -0,0 +1,22 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+public abstract class Account{
4
+    //Field
5
+    protected int balance;
6
+
7
+    //Cons
8
+    public Account(int balance) {
9
+
10
+        this.balance = balance;
11
+    }
12
+
13
+    public int getBalance() { return balance; }
14
+    public void setBalance(int balance) {
15
+        this.balance = balance;
16
+    }
17
+
18
+    public void deposit(int deposit) { setBalance(getBalance() + deposit); }
19
+
20
+    public void withdraw(int withdraw){ setBalance(getBalance()-withdraw);}
21
+
22
+}

+ 0
- 7
src/main/java/com/zipcodewilmington/bankaccountlab/BankAccount.java 查看文件

@@ -1,7 +0,0 @@
1
-package com.zipcodewilmington.bankaccountlab;
2
-
3
-/**
4
- * Created by leon on 1/10/18.
5
- */
6
-public class BankAccount {
7
-}

+ 12
- 0
src/main/java/com/zipcodewilmington/bankaccountlab/BusinessAccount.java 查看文件

@@ -0,0 +1,12 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+public class BusinessAccount extends Account {
4
+
5
+    public BusinessAccount(int balance) {
6
+        super(balance);
7
+    }
8
+    public int getBalance() { return balance; }
9
+    public void setBalance(int balance) {
10
+        this.balance = balance;
11
+    }
12
+}

+ 12
- 0
src/main/java/com/zipcodewilmington/bankaccountlab/CheckingAccount.java 查看文件

@@ -0,0 +1,12 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+public class CheckingAccount extends Account{
4
+
5
+    public CheckingAccount(int balance) {
6
+        super(balance);
7
+    }
8
+    public int getBalance() { return balance; }
9
+    public void setBalance(int balance) {
10
+        this.balance = balance;
11
+    }
12
+}

+ 43
- 1
src/main/java/com/zipcodewilmington/bankaccountlab/MainApplication.java 查看文件

@@ -1,7 +1,49 @@
1 1
 package com.zipcodewilmington.bankaccountlab;
2
-
2
+import java.util.Scanner;
3 3
 /**
4 4
  * Created by leon on 1/10/18.
5 5
  */
6 6
 public class MainApplication {
7
+    static BusinessAccount businessAccount = new BusinessAccount(20000);
8
+    static CheckingAccount checkingAccount = new CheckingAccount(500);
9
+    static SavingsAccount savingsAccount = new SavingsAccount(2000);
10
+
11
+    public static void main(String []args){
12
+        System.out.println("What type of account do you want to access?");
13
+        System.out.println("Type 1 for Checking Account");
14
+        System.out.println(" 2 for Savings");
15
+        System.out.println(" 3 for Business");
16
+        Scanner sc = new Scanner(System.in);
17
+            int access = sc.nextInt();
18
+        while (access != 0){
19
+         switch (access){
20
+             case 1:
21
+                checking();
22
+                 break;
23
+             case 2:
24
+                saving();
25
+                 break;
26
+             case 3:
27
+                business();
28
+                 break;
29
+             case 4:
30
+                 break;
31
+          }
32
+            System.out.println("Thanks! Would you like to access another account? \n (1)Checking \n (2)Savings \n (3)Business \n (4)Exit ");
33
+            access = sc.nextInt();
34
+            if (access == 4){
35
+                access = 0;
36
+            }
37
+        }
38
+    }
39
+
40
+    private static void checking() {
41
+        System.out.println("Your balance for checking is "+ checkingAccount.getBalance());
42
+    }
43
+    private static void saving() {
44
+        System.out.println("Your balance for saving is "+ savingsAccount.getBalance());
45
+    }
46
+    private static void business() {
47
+        System.out.println("Your balance for business is "+ businessAccount.getBalance());
48
+    }
7 49
 }

+ 13
- 0
src/main/java/com/zipcodewilmington/bankaccountlab/SavingsAccount.java 查看文件

@@ -0,0 +1,13 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+public class SavingsAccount extends Account{
4
+
5
+    public SavingsAccount(int balance) {
6
+        super(balance);
7
+    }
8
+    public int getBalance() { return balance; }
9
+    public void setBalance(int balance) {
10
+        this.balance = balance;
11
+    }
12
+    public void deposit(int deposit) { setBalance(getBalance() + deposit); }
13
+}

+ 0
- 7
src/test/java/com/zipcodewilmington/bankaccountlab/BankAccountTest.java 查看文件

@@ -1,7 +0,0 @@
1
-package com.zipcodewilmington.bankaccountlab;
2
-
3
-/**
4
- * Created by leon on 1/10/18.
5
- */
6
-public class BankAccountTest {
7
-}

+ 28
- 0
src/test/java/com/zipcodewilmington/bankaccountlab/CheckingAccountTest.java 查看文件

@@ -0,0 +1,28 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+import static org.junit.Assert.*;
7
+
8
+public class CheckingAccountTest {
9
+    CheckingAccount ca = new CheckingAccount(500);
10
+    @Test
11
+    public void getBalance() {
12
+        //given
13
+        int expected = 500;
14
+        int actual = ca.getBalance();
15
+        Assert.assertEquals(expected,actual);
16
+    }
17
+    @Test
18
+    public void withdraw(){
19
+        int balance = 500;
20
+
21
+        ca.setBalance(balance);
22
+        ca.withdraw(500);
23
+        int expected = 0;
24
+        int actual = ca.getBalance();
25
+        Assert.assertEquals(expected,actual);
26
+    }
27
+
28
+}

+ 18
- 0
src/test/java/com/zipcodewilmington/bankaccountlab/SavingsAccountTest.java 查看文件

@@ -0,0 +1,18 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+import static org.junit.Assert.*;
7
+
8
+public class SavingsAccountTest {
9
+SavingsAccount sa = new SavingsAccount(1000);
10
+    @Test
11
+    public void deposit() {
12
+        sa.deposit(500);
13
+        int expected = 1500;
14
+        int actual = sa.getBalance();
15
+
16
+        Assert.assertEquals(expected,actual);
17
+        }
18
+    }