Yesoda Sanka 6 年之前
父節點
當前提交
9f9c5c04d0

+ 1
- 0
.idea/.name 查看文件

1
+interfaces-1

+ 16
- 0
.idea/compiler.xml 查看文件

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="CompilerConfiguration">
4
+    <annotationProcessing>
5
+      <profile name="Maven default annotation processors profile" enabled="true">
6
+        <sourceOutputDir name="target/generated-sources/annotations" />
7
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
8
+        <outputRelativeToContentRoot value="true" />
9
+        <module name="interfaces-1" />
10
+      </profile>
11
+    </annotationProcessing>
12
+    <bytecodeTargetLevel>
13
+      <module name="interfaces-1" target="1.5" />
14
+    </bytecodeTargetLevel>
15
+  </component>
16
+</project>

+ 6
- 0
.idea/encodings.xml 查看文件

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="Encoding">
4
+    <file url="file://$PROJECT_DIR$" charset="UTF-8" />
5
+  </component>
6
+</project>

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

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 查看文件

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>

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

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="MavenProjectsManager">
4
+    <option name="originalFiles">
5
+      <list>
6
+        <option value="$PROJECT_DIR$/pom.xml" />
7
+      </list>
8
+    </option>
9
+  </component>
10
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
11
+    <output url="file://$PROJECT_DIR$/classes" />
12
+  </component>
13
+</project>

+ 8
- 0
.idea/modules.xml 查看文件

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ProjectModuleManager">
4
+    <modules>
5
+      <module fileurl="file://$PROJECT_DIR$/interfaces-1.iml" filepath="$PROJECT_DIR$/interfaces-1.iml" />
6
+    </modules>
7
+  </component>
8
+</project>

+ 124
- 0
.idea/uiDesigner.xml 查看文件

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="Palette2">
4
+    <group name="Swing">
5
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
6
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
7
+      </item>
8
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
9
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
10
+      </item>
11
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
12
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
13
+      </item>
14
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
15
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
16
+      </item>
17
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
18
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
19
+        <initial-values>
20
+          <property name="text" value="Button" />
21
+        </initial-values>
22
+      </item>
23
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
24
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
25
+        <initial-values>
26
+          <property name="text" value="RadioButton" />
27
+        </initial-values>
28
+      </item>
29
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
30
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
31
+        <initial-values>
32
+          <property name="text" value="CheckBox" />
33
+        </initial-values>
34
+      </item>
35
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
36
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
37
+        <initial-values>
38
+          <property name="text" value="Label" />
39
+        </initial-values>
40
+      </item>
41
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
42
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
43
+          <preferred-size width="150" height="-1" />
44
+        </default-constraints>
45
+      </item>
46
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
47
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
48
+          <preferred-size width="150" height="-1" />
49
+        </default-constraints>
50
+      </item>
51
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
52
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
53
+          <preferred-size width="150" height="-1" />
54
+        </default-constraints>
55
+      </item>
56
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
57
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
58
+          <preferred-size width="150" height="50" />
59
+        </default-constraints>
60
+      </item>
61
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
62
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
63
+          <preferred-size width="150" height="50" />
64
+        </default-constraints>
65
+      </item>
66
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
67
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
68
+          <preferred-size width="150" height="50" />
69
+        </default-constraints>
70
+      </item>
71
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
72
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
73
+      </item>
74
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
75
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
76
+          <preferred-size width="150" height="50" />
77
+        </default-constraints>
78
+      </item>
79
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
80
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
81
+          <preferred-size width="150" height="50" />
82
+        </default-constraints>
83
+      </item>
84
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
85
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
86
+          <preferred-size width="150" height="50" />
87
+        </default-constraints>
88
+      </item>
89
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
90
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
91
+          <preferred-size width="200" height="200" />
92
+        </default-constraints>
93
+      </item>
94
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
95
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
96
+          <preferred-size width="200" height="200" />
97
+        </default-constraints>
98
+      </item>
99
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
100
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
101
+      </item>
102
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
103
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
104
+      </item>
105
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
106
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
107
+      </item>
108
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
109
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
110
+      </item>
111
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
112
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
113
+          <preferred-size width="-1" height="20" />
114
+        </default-constraints>
115
+      </item>
116
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
117
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
118
+      </item>
119
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
120
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
121
+      </item>
122
+    </group>
123
+  </component>
124
+</project>

+ 6
- 0
.idea/vcs.xml 查看文件

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="VcsDirectoryMappings">
4
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+  </component>
6
+</project>

+ 540
- 0
.idea/workspace.xml 查看文件

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ChangeListManager">
4
+    <list default="true" id="5f6232a3-651f-43e2-bfa7-23e343c01de2" name="Default Changelist" comment="">
5
+      <change afterPath="$PROJECT_DIR$/.idea/uiDesigner.xml" afterDir="false" />
6
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java" afterDir="false" />
7
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Learner.java" afterDir="false" />
8
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java" afterDir="false" />
9
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java" afterDir="false" />
10
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java" afterDir="false" />
11
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Teacher.java" afterDir="false" />
12
+      <change afterPath="$PROJECT_DIR$/src/test/java/InstructorTest.java" afterDir="false" />
13
+      <change afterPath="$PROJECT_DIR$/src/test/java/StudentsTest.java" afterDir="false" />
14
+      <change afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PeopleTest.java" afterDir="false" />
15
+      <change afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/StudentTest.java" afterDir="false" />
16
+      <change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
17
+      <change beforePath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java" afterDir="false" />
18
+      <change beforePath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestPerson.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestPerson.java" afterDir="false" />
19
+    </list>
20
+    <ignored path="$PROJECT_DIR$/target/" />
21
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
22
+    <option name="SHOW_DIALOG" value="false" />
23
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
24
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
25
+    <option name="LAST_RESOLUTION" value="IGNORE" />
26
+  </component>
27
+  <component name="FUSProjectUsageTrigger">
28
+    <session id="276411177">
29
+      <usages-collector id="statistics.lifecycle.project">
30
+        <counts>
31
+          <entry key="project.closed" value="2" />
32
+          <entry key="project.open.time.14" value="1" />
33
+          <entry key="project.open.time.2" value="1" />
34
+          <entry key="project.open.time.3" value="1" />
35
+          <entry key="project.open.time.52" value="1" />
36
+          <entry key="project.opened" value="4" />
37
+        </counts>
38
+      </usages-collector>
39
+      <usages-collector id="statistics.file.extensions.open">
40
+        <counts>
41
+          <entry key="java" value="21" />
42
+          <entry key="md" value="2" />
43
+        </counts>
44
+      </usages-collector>
45
+      <usages-collector id="statistics.file.types.open">
46
+        <counts>
47
+          <entry key="JAVA" value="21" />
48
+          <entry key="Markdown" value="2" />
49
+        </counts>
50
+      </usages-collector>
51
+      <usages-collector id="statistics.file.extensions.edit">
52
+        <counts>
53
+          <entry key="dummy" value="14" />
54
+          <entry key="java" value="3492" />
55
+          <entry key="md" value="1" />
56
+        </counts>
57
+      </usages-collector>
58
+      <usages-collector id="statistics.file.types.edit">
59
+        <counts>
60
+          <entry key="JAVA" value="3492" />
61
+          <entry key="Markdown" value="1" />
62
+          <entry key="PLAIN_TEXT" value="14" />
63
+        </counts>
64
+      </usages-collector>
65
+    </session>
66
+  </component>
67
+  <component name="FileEditorManager">
68
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
69
+      <file pinned="false" current-in-tab="false">
70
+        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java">
71
+          <provider selected="true" editor-type-id="text-editor">
72
+            <state relative-caret-position="192">
73
+              <caret line="22" column="38" selection-start-line="22" selection-start-column="32" selection-end-line="22" selection-end-column="38" />
74
+            </state>
75
+          </provider>
76
+        </entry>
77
+      </file>
78
+      <file pinned="false" current-in-tab="true">
79
+        <entry file="file://$PROJECT_DIR$/src/test/java/InstructorTest.java">
80
+          <provider selected="true" editor-type-id="text-editor">
81
+            <state relative-caret-position="432">
82
+              <caret line="55" column="29" selection-start-line="55" selection-start-column="21" selection-end-line="55" selection-end-column="29" />
83
+              <folding>
84
+                <element signature="imports" expanded="true" />
85
+              </folding>
86
+            </state>
87
+          </provider>
88
+        </entry>
89
+      </file>
90
+      <file pinned="false" current-in-tab="false">
91
+        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Learner.java">
92
+          <provider selected="true" editor-type-id="text-editor">
93
+            <state relative-caret-position="225">
94
+              <caret line="15" column="20" selection-start-line="15" selection-start-column="15" selection-end-line="15" selection-end-column="20" />
95
+            </state>
96
+          </provider>
97
+        </entry>
98
+      </file>
99
+      <file pinned="false" current-in-tab="false">
100
+        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java">
101
+          <provider selected="true" editor-type-id="text-editor">
102
+            <state relative-caret-position="85">
103
+              <caret line="18" column="13" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" />
104
+            </state>
105
+          </provider>
106
+        </entry>
107
+      </file>
108
+      <file pinned="false" current-in-tab="false">
109
+        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Teacher.java">
110
+          <provider selected="true" editor-type-id="text-editor">
111
+            <state relative-caret-position="360">
112
+              <caret line="24" column="19" selection-start-line="24" selection-start-column="19" selection-end-line="24" selection-end-column="19" />
113
+            </state>
114
+          </provider>
115
+        </entry>
116
+      </file>
117
+      <file pinned="false" current-in-tab="false">
118
+        <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/StudentTest.java">
119
+          <provider selected="true" editor-type-id="text-editor">
120
+            <state relative-caret-position="312">
121
+              <caret line="22" lean-forward="true" selection-start-line="22" selection-end-line="22" />
122
+            </state>
123
+          </provider>
124
+        </entry>
125
+      </file>
126
+      <file pinned="false" current-in-tab="false">
127
+        <entry file="file://$PROJECT_DIR$/README.md">
128
+          <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
129
+            <state split_layout="FIRST">
130
+              <first_editor relative-caret-position="58">
131
+                <caret line="56" lean-forward="true" selection-start-line="56" selection-end-line="56" />
132
+              </first_editor>
133
+              <second_editor />
134
+            </state>
135
+          </provider>
136
+        </entry>
137
+      </file>
138
+      <file pinned="false" current-in-tab="false">
139
+        <entry file="file://$PROJECT_DIR$/src/test/java/StudentsTest.java">
140
+          <provider selected="true" editor-type-id="text-editor">
141
+            <state relative-caret-position="419">
142
+              <caret line="29" column="42" selection-start-line="29" selection-start-column="31" selection-end-line="29" selection-end-column="42" />
143
+              <folding>
144
+                <element signature="imports" expanded="true" />
145
+              </folding>
146
+            </state>
147
+          </provider>
148
+        </entry>
149
+      </file>
150
+      <file pinned="false" current-in-tab="false">
151
+        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java">
152
+          <provider selected="true" editor-type-id="text-editor">
153
+            <state relative-caret-position="300">
154
+              <caret line="20" column="20" selection-start-line="20" selection-start-column="13" selection-end-line="20" selection-end-column="20" />
155
+              <folding>
156
+                <element signature="e#1181#1182#0" expanded="true" />
157
+                <element signature="e#1212#1213#0" expanded="true" />
158
+              </folding>
159
+            </state>
160
+          </provider>
161
+        </entry>
162
+      </file>
163
+      <file pinned="false" current-in-tab="false">
164
+        <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java">
165
+          <provider selected="true" editor-type-id="text-editor">
166
+            <state relative-caret-position="150">
167
+              <caret line="10" column="36" selection-start-line="10" selection-start-column="30" selection-end-line="10" selection-end-column="36" />
168
+              <folding>
169
+                <element signature="e#166#167#0" expanded="true" />
170
+                <element signature="e#200#201#0" expanded="true" />
171
+              </folding>
172
+            </state>
173
+          </provider>
174
+        </entry>
175
+      </file>
176
+    </leaf>
177
+  </component>
178
+  <component name="FileTemplateManagerImpl">
179
+    <option name="RECENT_TEMPLATES">
180
+      <list>
181
+        <option value="Singleton" />
182
+        <option value="Class" />
183
+      </list>
184
+    </option>
185
+  </component>
186
+  <component name="Git.Settings">
187
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
188
+  </component>
189
+  <component name="IdeDocumentHistory">
190
+    <option name="CHANGED_PATHS">
191
+      <list>
192
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/learninterface.java" />
193
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestPerson.java" />
194
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Learninterface.java" />
195
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/StudentTest.java" />
196
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Teacher.java" />
197
+        <option value="$PROJECT_DIR$/src/test/java/PeopleTest.java" />
198
+        <option value="$PROJECT_DIR$/README.md" />
199
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java" />
200
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PeopleTest.java" />
201
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java" />
202
+        <option value="$PROJECT_DIR$/src/test/java/StudentsTest.java" />
203
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java" />
204
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java" />
205
+        <option value="$PROJECT_DIR$/src/test/java/InstructorTest.java" />
206
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java" />
207
+      </list>
208
+    </option>
209
+  </component>
210
+  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
211
+  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
212
+  <component name="JsGulpfileManager">
213
+    <detection-done>true</detection-done>
214
+    <sorting>DEFINITION_ORDER</sorting>
215
+  </component>
216
+  <component name="ProjectFrameBounds">
217
+    <option name="y" value="23" />
218
+    <option name="width" value="1280" />
219
+    <option name="height" value="709" />
220
+  </component>
221
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
222
+  <component name="ProjectView">
223
+    <navigator proportions="" version="1">
224
+      <foldersAlwaysOnTop value="true" />
225
+    </navigator>
226
+    <panes>
227
+      <pane id="Scope" />
228
+      <pane id="PackagesPane" />
229
+      <pane id="ProjectPane">
230
+        <subPane>
231
+          <expand>
232
+            <path>
233
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
234
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
235
+            </path>
236
+            <path>
237
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
238
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
239
+              <item name="src" type="462c0819:PsiDirectoryNode" />
240
+            </path>
241
+            <path>
242
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
243
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
244
+              <item name="src" type="462c0819:PsiDirectoryNode" />
245
+              <item name="main" type="462c0819:PsiDirectoryNode" />
246
+            </path>
247
+            <path>
248
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
249
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
250
+              <item name="src" type="462c0819:PsiDirectoryNode" />
251
+              <item name="main" type="462c0819:PsiDirectoryNode" />
252
+              <item name="java" type="462c0819:PsiDirectoryNode" />
253
+            </path>
254
+            <path>
255
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
256
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
257
+              <item name="src" type="462c0819:PsiDirectoryNode" />
258
+              <item name="main" type="462c0819:PsiDirectoryNode" />
259
+              <item name="java" type="462c0819:PsiDirectoryNode" />
260
+              <item name="interfaces" type="462c0819:PsiDirectoryNode" />
261
+            </path>
262
+            <path>
263
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
264
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
265
+              <item name="src" type="462c0819:PsiDirectoryNode" />
266
+              <item name="test" type="462c0819:PsiDirectoryNode" />
267
+            </path>
268
+            <path>
269
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
270
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
271
+              <item name="src" type="462c0819:PsiDirectoryNode" />
272
+              <item name="test" type="462c0819:PsiDirectoryNode" />
273
+              <item name="java" type="462c0819:PsiDirectoryNode" />
274
+            </path>
275
+            <path>
276
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
277
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
278
+              <item name="src" type="462c0819:PsiDirectoryNode" />
279
+              <item name="test" type="462c0819:PsiDirectoryNode" />
280
+              <item name="java" type="462c0819:PsiDirectoryNode" />
281
+              <item name="interfaces" type="462c0819:PsiDirectoryNode" />
282
+            </path>
283
+          </expand>
284
+          <select />
285
+        </subPane>
286
+      </pane>
287
+    </panes>
288
+  </component>
289
+  <component name="PropertiesComponent">
290
+    <property name="WebServerToolWindowFactoryState" value="false" />
291
+    <property name="aspect.path.notification.shown" value="true" />
292
+    <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1541392027729" />
293
+    <property name="last_directory_selection" value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces" />
294
+    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
295
+    <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
296
+    <property name="nodejs_npm_path_reset_for_default_project" value="true" />
297
+    <property name="settings.editor.selected.configurable" value="vcs.Git" />
298
+  </component>
299
+  <component name="RunDashboard">
300
+    <option name="ruleStates">
301
+      <list>
302
+        <RuleState>
303
+          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
304
+        </RuleState>
305
+        <RuleState>
306
+          <option name="name" value="StatusDashboardGroupingRule" />
307
+        </RuleState>
308
+      </list>
309
+    </option>
310
+  </component>
311
+  <component name="RunManager">
312
+    <configuration name="PeopleTest.testFindById" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
313
+      <module name="interfaces-1" />
314
+      <extension name="coverage">
315
+        <pattern>
316
+          <option name="PATTERN" value="io.zipcoder.interfaces.*" />
317
+          <option name="ENABLED" value="true" />
318
+        </pattern>
319
+      </extension>
320
+      <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
321
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.PeopleTest" />
322
+      <option name="METHOD_NAME" value="testFindById" />
323
+      <option name="TEST_OBJECT" value="method" />
324
+      <method v="2">
325
+        <option name="Make" enabled="true" />
326
+      </method>
327
+    </configuration>
328
+    <recent_temporary>
329
+      <list>
330
+        <item itemvalue="JUnit.PeopleTest.testFindById" />
331
+      </list>
332
+    </recent_temporary>
333
+  </component>
334
+  <component name="SvnConfiguration">
335
+    <configuration />
336
+  </component>
337
+  <component name="TaskManager">
338
+    <task active="true" id="Default" summary="Default task">
339
+      <changelist id="5f6232a3-651f-43e2-bfa7-23e343c01de2" name="Default Changelist" comment="" />
340
+      <created>1541193721792</created>
341
+      <option name="number" value="Default" />
342
+      <option name="presentableId" value="Default" />
343
+      <updated>1541193721792</updated>
344
+      <workItem from="1541193725370" duration="7522000" />
345
+      <workItem from="1541212363048" duration="5772000" />
346
+      <workItem from="1541253792019" duration="54000" />
347
+      <workItem from="1541375456843" duration="16001000" />
348
+    </task>
349
+    <servers />
350
+  </component>
351
+  <component name="TimeTrackingManager">
352
+    <option name="totallyTimeSpent" value="29349000" />
353
+  </component>
354
+  <component name="ToolWindowManager">
355
+    <frame x="0" y="23" width="1280" height="709" extended-state="0" />
356
+    <editor active="true" />
357
+    <layout>
358
+      <window_info content_ui="combo" id="Project" order="0" weight="0.26171243" />
359
+      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
360
+      <window_info id="Designer" order="2" />
361
+      <window_info id="Image Layers" order="3" />
362
+      <window_info id="Capture Tool" order="4" />
363
+      <window_info id="UI Designer" order="5" />
364
+      <window_info id="Learn" order="6" />
365
+      <window_info id="Favorites" order="7" side_tool="true" />
366
+      <window_info anchor="bottom" id="Messages" weight="0.32901135" />
367
+      <window_info anchor="bottom" id="Message" order="0" />
368
+      <window_info anchor="bottom" id="Find" order="1" />
369
+      <window_info anchor="bottom" id="Run" order="2" />
370
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
371
+      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
372
+      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
373
+      <window_info anchor="bottom" id="TODO" order="6" />
374
+      <window_info anchor="bottom" id="Version Control" order="7" show_stripe_button="false" />
375
+      <window_info anchor="bottom" id="Database Changes" order="8" show_stripe_button="false" />
376
+      <window_info anchor="bottom" id="Terminal" order="9" />
377
+      <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
378
+      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
379
+      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
380
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
381
+      <window_info anchor="right" id="Palette" order="3" />
382
+      <window_info anchor="right" id="Capture Analysis" order="4" />
383
+      <window_info anchor="right" id="Theme Preview" order="5" />
384
+      <window_info anchor="right" id="Palette&#9;" order="6" />
385
+      <window_info anchor="right" id="Database" order="7" />
386
+      <window_info anchor="right" id="Maven Projects" order="8" />
387
+    </layout>
388
+  </component>
389
+  <component name="TypeScriptGeneratedFilesManager">
390
+    <option name="version" value="1" />
391
+  </component>
392
+  <component name="VcsContentAnnotationSettings">
393
+    <option name="myLimit" value="2678400000" />
394
+  </component>
395
+  <component name="XDebuggerManager">
396
+    <breakpoint-manager>
397
+      <breakpoints>
398
+        <line-breakpoint enabled="true" type="java-line">
399
+          <url>file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestPerson.java</url>
400
+          <line>4</line>
401
+          <properties />
402
+          <option name="timeStamp" value="1" />
403
+        </line-breakpoint>
404
+      </breakpoints>
405
+    </breakpoint-manager>
406
+  </component>
407
+  <component name="editorHistoryManager">
408
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestPerson.java">
409
+      <provider selected="true" editor-type-id="text-editor">
410
+        <state relative-caret-position="210">
411
+          <caret line="14" column="9" selection-start-line="14" selection-start-column="9" selection-end-line="14" selection-end-column="9" />
412
+        </state>
413
+      </provider>
414
+    </entry>
415
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PeopleTest.java">
416
+      <provider selected="true" editor-type-id="text-editor">
417
+        <state relative-caret-position="447">
418
+          <caret line="107" column="44" selection-start-line="107" selection-start-column="44" selection-end-line="107" selection-end-column="44" />
419
+          <folding>
420
+            <element signature="imports" expanded="true" />
421
+          </folding>
422
+        </state>
423
+      </provider>
424
+    </entry>
425
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java">
426
+      <provider selected="true" editor-type-id="text-editor">
427
+        <state relative-caret-position="162">
428
+          <caret line="16" column="17" selection-start-line="16" selection-start-column="11" selection-end-line="16" selection-end-column="17" />
429
+          <folding>
430
+            <element signature="e#878#879#0" expanded="true" />
431
+            <element signature="e#906#907#0" expanded="true" />
432
+          </folding>
433
+        </state>
434
+      </provider>
435
+    </entry>
436
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Teacher.java">
437
+      <provider selected="true" editor-type-id="text-editor">
438
+        <state relative-caret-position="360">
439
+          <caret line="24" column="19" selection-start-line="24" selection-start-column="19" selection-end-line="24" selection-end-column="19" />
440
+        </state>
441
+      </provider>
442
+    </entry>
443
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/StudentTest.java">
444
+      <provider selected="true" editor-type-id="text-editor">
445
+        <state relative-caret-position="312">
446
+          <caret line="22" lean-forward="true" selection-start-line="22" selection-end-line="22" />
447
+        </state>
448
+      </provider>
449
+    </entry>
450
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java">
451
+      <provider selected="true" editor-type-id="text-editor">
452
+        <state relative-caret-position="192">
453
+          <caret line="22" column="38" selection-start-line="22" selection-start-column="32" selection-end-line="22" selection-end-column="38" />
454
+        </state>
455
+      </provider>
456
+    </entry>
457
+    <entry file="file://$PROJECT_DIR$/README.md">
458
+      <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
459
+        <state split_layout="FIRST">
460
+          <first_editor relative-caret-position="58">
461
+            <caret line="56" lean-forward="true" selection-start-line="56" selection-end-line="56" />
462
+          </first_editor>
463
+          <second_editor />
464
+        </state>
465
+      </provider>
466
+    </entry>
467
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java">
468
+      <provider selected="true" editor-type-id="text-editor">
469
+        <state relative-caret-position="300">
470
+          <caret line="20" column="20" selection-start-line="20" selection-start-column="13" selection-end-line="20" selection-end-column="20" />
471
+          <folding>
472
+            <element signature="e#1181#1182#0" expanded="true" />
473
+            <element signature="e#1212#1213#0" expanded="true" />
474
+          </folding>
475
+        </state>
476
+      </provider>
477
+    </entry>
478
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Learner.java">
479
+      <provider selected="true" editor-type-id="text-editor">
480
+        <state relative-caret-position="225">
481
+          <caret line="15" column="20" selection-start-line="15" selection-start-column="15" selection-end-line="15" selection-end-column="20" />
482
+        </state>
483
+      </provider>
484
+    </entry>
485
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java">
486
+      <provider selected="true" editor-type-id="text-editor">
487
+        <state relative-caret-position="85">
488
+          <caret line="18" column="13" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" />
489
+        </state>
490
+      </provider>
491
+    </entry>
492
+    <entry file="file://$PROJECT_DIR$/src/test/java/StudentsTest.java">
493
+      <provider selected="true" editor-type-id="text-editor">
494
+        <state relative-caret-position="419">
495
+          <caret line="29" column="42" selection-start-line="29" selection-start-column="31" selection-end-line="29" selection-end-column="42" />
496
+          <folding>
497
+            <element signature="imports" expanded="true" />
498
+          </folding>
499
+        </state>
500
+      </provider>
501
+    </entry>
502
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Students.java">
503
+      <provider selected="true" editor-type-id="text-editor">
504
+        <state relative-caret-position="150">
505
+          <caret line="10" column="36" selection-start-line="10" selection-start-column="30" selection-end-line="10" selection-end-column="36" />
506
+          <folding>
507
+            <element signature="e#166#167#0" expanded="true" />
508
+            <element signature="e#200#201#0" expanded="true" />
509
+          </folding>
510
+        </state>
511
+      </provider>
512
+    </entry>
513
+    <entry file="file://$PROJECT_DIR$/src/test/java/InstructorTest.java">
514
+      <provider selected="true" editor-type-id="text-editor">
515
+        <state relative-caret-position="432">
516
+          <caret line="55" column="29" selection-start-line="55" selection-start-column="21" selection-end-line="55" selection-end-column="29" />
517
+          <folding>
518
+            <element signature="imports" expanded="true" />
519
+          </folding>
520
+        </state>
521
+      </provider>
522
+    </entry>
523
+  </component>
524
+  <component name="masterDetails">
525
+    <states>
526
+      <state key="ProjectJDKs.UI">
527
+        <settings>
528
+          <last-edited>1.8</last-edited>
529
+          <splitter-proportions>
530
+            <option name="proportions">
531
+              <list>
532
+                <option value="0.2" />
533
+              </list>
534
+            </option>
535
+          </splitter-proportions>
536
+        </settings>
537
+      </state>
538
+    </states>
539
+  </component>
540
+</project>

+ 1
- 1
README.md 查看文件

80
 * Create a `testRemoveByPerson` method which ensures that the `personList` in a `People` object is **depopulated** with a respective `Person` object following the invokation of the `remove` method.
80
 * Create a `testRemoveByPerson` method which ensures that the `personList` in a `People` object is **depopulated** with a respective `Person` object following the invokation of the `remove` method.
81
     * The class should define a method named `remove` which makes use of a `Person person` parameter to remove a respective `Person` object.
81
     * The class should define a method named `remove` which makes use of a `Person person` parameter to remove a respective `Person` object.
82
 * Create a `testRemoveById` method which ensures that the `personList` in a `People` object is **depopulated** with a respective `Person` object following the invokation of the `remove` method.
82
 * Create a `testRemoveById` method which ensures that the `personList` in a `People` object is **depopulated** with a respective `Person` object following the invokation of the `remove` method.
83
-	* The class should define a method named `remove` which makes use of a `long id` parameter to remove a `Person` object with the respective `id` field.
83
+	
84
 * Create a `testFindById` method which ensures that a respective `Person` object with a respective `id` field is returned upon invokation of the `findById` method on a respective `People` object.
84
 * Create a `testFindById` method which ensures that a respective `Person` object with a respective `id` field is returned upon invokation of the `findById` method on a respective `People` object.
85
     * The class should define a method named `findById` which makes use of a `long id` parameter to return a `Person` object with the respective `id` field.
85
     * The class should define a method named `findById` which makes use of a `long id` parameter to return a `Person` object with the respective `id` field.
86
 *  Create a `testGetArray` which ensures the array has all the people added
86
 *  Create a `testGetArray` which ensures the array has all the people added

+ 16
- 0
interfaces-1.iml 查看文件

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
3
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5">
4
+    <output url="file://$MODULE_DIR$/target/classes" />
5
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
6
+    <content url="file://$MODULE_DIR$">
7
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
8
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
9
+      <excludeFolder url="file://$MODULE_DIR$/target" />
10
+    </content>
11
+    <orderEntry type="inheritedJdk" />
12
+    <orderEntry type="sourceFolder" forTests="false" />
13
+    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
14
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
15
+  </component>
16
+</module>

+ 41
- 0
src/main/java/io/zipcoder/interfaces/Instructor.java 查看文件

1
+package io.zipcoder.interfaces;
2
+
3
+/*
4
+--
5
+### Part 5.0 - Test `Instructor`
6
+
7
+        * Create an `Instructor` class such that:
8
+            * `Instructor` implements the `Teacher` interface
9
+
10
+
11
+        * In the `Instructor` class, add a concrete implementation of the `teach` method which invokes the
12
+        * `learn` method on the specified `Learner` object.
13
+        * `Instructor` should have a concrete implementation of the `lecture` method which invokes the `learn`
14
+        * method on each of the elements in the specified array of `Learner` objects.
15
+            * `numberOfHours` should be evenly split amongst the learners.
16
+                * `double numberOfHoursPerLearner = numberOfHours / learners.length;`
17
+
18
+---
19
+ */
20
+
21
+
22
+
23
+public class Instructor extends Person implements Teacher  {
24
+
25
+
26
+    public void teach(Learner learner, double numberOfhours) {
27
+
28
+        learner.learn(numberOfhours);
29
+
30
+    }
31
+
32
+    public void lecture(Learner[] learners, double numberOfHours) {
33
+
34
+        double numberOfHoursPerLearner = numberOfHours / learners.length;
35
+        //  for(String tvShow: tvShows) {
36
+        for (Learner l : learners) {
37
+            l.learn(numberOfHoursPerLearner);
38
+        }
39
+    }
40
+
41
+}

+ 20
- 0
src/main/java/io/zipcoder/interfaces/Learner.java 查看文件

1
+package io.zipcoder.interfaces;
2
+
3
+/*
4
+---
5
+### Part 2.0 - Create `Learner` Interface
6
+* Create a `Learner` interface.
7
+	* `Learner` should declare one method signature:
8
+		* Method name: `learn`
9
+		* Method parameters: `double numberOfHours`
10
+		* Method return-type: `void`
11
+
12
+---
13
+ */
14
+public  interface Learner {
15
+
16
+   public void learn(double numberofHours);
17
+  
18
+    
19
+}
20
+

+ 101
- 0
src/main/java/io/zipcoder/interfaces/People.java 查看文件

1
+package io.zipcoder.interfaces;
2
+/*
3
+ * Create a `People` class.
4
+ * The `People` class should instantiate an `ArrayList` field of `Person` objects named `personList`.
5
+ * The `People` class should define a method named `add` which adds a `Person` to the `personList`.
6
+ * The `People` class should define a method named `getCount` which returns the size of `personList`.
7
+ * * The class should define a method named `remove` which makes use of a `long id` parameter to
8
+ * remove a `Person` object with the respective `id` field.
9
+ * The class should define a method named `remove` which makes use of a `Person person` parameter
10
+ * to remove a respective `Person` object.
11
+ *     * The class should define a method named `findById` which makes use of a `long id` parameter to
12
+ *     return a `Person` object with the respective `id` field.
13
+ *
14
+ */
15
+
16
+
17
+import java.util.ArrayList;
18
+
19
+public class People {
20
+
21
+    ArrayList<Person> personList;
22
+
23
+    public People() {
24
+        personList = new ArrayList<Person>();
25
+    }
26
+
27
+    public void addPerson(Person p) {
28
+        personList.add(p);
29
+    }
30
+
31
+    public int getCount() {
32
+        return personList.size();
33
+    }
34
+
35
+/*
36
+ * Create a `testRemoveByPerson` method which ensures that the `personList` in a `People` object is **depopulated** with a respective `Person` object following the invokation of the `remove` method.
37
+ * The class should define a method named `remove` which makes use of a `Person person` parameter to remove a respective `Person` object.
38
+
39
+ */
40
+
41
+    public void testRemoveByPerson(Person p) {
42
+            personList.remove(p);
43
+    }
44
+
45
+ /*
46
+  * Create a `testRemoveById` method which ensures that the `personList` in a `People` object is **depopulated** with a respective
47
+  * `Person` object following the invokation of the `remove` method.
48
+
49
+  */
50
+ public void testRemoveById(long id) {
51
+
52
+     for (Person p : personList) {
53
+
54
+         if (p.getId() == id) {
55
+
56
+             personList.remove(p);
57
+             break;
58
+         }
59
+
60
+     }
61
+ }
62
+
63
+    /*
64
+     *     * The class should define a method named `findById` which makes use of a `long id` parameter to
65
+     *     return a `Person` object with the respective `id` field.
66
+     *
67
+     */
68
+    public Person findById(long id) {
69
+        Person tempPerson = null;
70
+
71
+        for (Person p : personList) {
72
+
73
+            if (p.getId() == id) {
74
+
75
+              tempPerson =p;
76
+              break;
77
+            }
78
+
79
+        }
80
+
81
+        return tempPerson;
82
+    }
83
+/*
84
+  In the `People` class,
85
+   define a method named
86
+    `getArray` which returns an array
87
+    representation of the `personList` field.
88
+ */
89
+  public ArrayList<Person>  getArray ()
90
+  {
91
+      return personList ;
92
+  }
93
+   /*
94
+    * In the `People` class, define a method named `removeAll` which clears our `personList` field.
95
+
96
+    */
97
+   public void removeAll()
98
+    {
99
+        personList.clear();
100
+    }
101
+}

+ 38
- 0
src/main/java/io/zipcoder/interfaces/Person.java 查看文件

1
 package io.zipcoder.interfaces;
1
 package io.zipcoder.interfaces;
2
 
2
 
3
+/*
4
+ * Create a `Person` class.
5
+ * In the `Person` class, declare a `final` field named `id` of type `long`.
6
+ * Create a getter for the id field
7
+ *  In the `Person` class, declare a field named `name` of type `String`.
8
+ * The `Person` class should define a `getName()` method which returns the `Person` object's `name` field.
9
+ * The `Person` class should define a `setName()` method which sets the `Person` object's `name` field.
10
+
11
+ */
12
+
3
 public class Person {
13
 public class Person {
14
+    private  long id ;
15
+    private String name;
16
+
17
+    public Person() {
18
+    }
19
+
20
+    public Person(String name, long id) {
21
+        this.name = name;
22
+        this.id = id;
23
+    }
24
+
25
+    public long getId() {
26
+        return id;
27
+    }
4
 
28
 
29
+    public String getName() {
30
+        return name;
31
+    }
32
+
33
+    public void setName(String name) {
34
+        this.name = name;
35
+    }
36
+
37
+    public void setId(long id) {
38
+        this.id = id;
39
+    }
5
 }
40
 }
41
+
42
+
43
+

+ 46
- 0
src/main/java/io/zipcoder/interfaces/Student.java 查看文件

1
+package io.zipcoder.interfaces;
2
+/*
3
+---
4
+### Part 3.0 - Test `Student`
5
+* Create a `StudentTest` class.
6
+	* Create a `testImplementation` method that asserts that a `Student` is an `instanceof` a `Learner`.
7
+        * Create a `Student` class
8
+        * `Student` implements the `Learner` interface
9
+        * Add a dummy implementation for the `learn` method
10
+	* Create a `testInheritance` method that asserts that a `Student` is an `instanceof` a `Person`.
11
+        * Make the `Student` class inherit from `Person`
12
+        * In the `Student` class, add a field called `totalStudyTime` of type `double`
13
+        * In the `Student` class, implementate the `learn` method which increments the `totalStudyTime` variable by
14
+        * the specified `numberOfHours` argument.`
15
+        * In the `Student` class, add a `getTotalStudyTime()` method which returns the `totalStudyTime` instance variable.
16
+
17
+---
18
+ */
19
+
20
+
21
+public class Student  extends Person  implements Learner {
22
+    double totalStudyTime;
23
+
24
+    public Student(double totalStudyTime) {
25
+        this.totalStudyTime = totalStudyTime;
26
+    }
27
+
28
+    public Student() {
29
+        totalStudyTime =0.0;
30
+    }
31
+
32
+    public Student(String name, long id ) {
33
+        super(name, id);
34
+    }
35
+
36
+    public void learn(double numberofHours) {
37
+
38
+        totalStudyTime +=numberofHours ;
39
+    }
40
+    public double  getTotalStudyTime()
41
+    {
42
+      // double totalStudyTime;
43
+        return totalStudyTime;
44
+    }
45
+
46
+}

+ 67
- 0
src/main/java/io/zipcoder/interfaces/Students.java 查看文件

1
+package io.zipcoder.interfaces;
2
+
3
+/*
4
+ * Create a `Students` class.
5
+ * The class should be an _unextendable_ subclass of the `People` class.
6
+ * The class should _statically instantiate_ a `final` field named `INSTANCE` of type `Students`.
7
+ * The class should define a _private nullary constructor_
8
+ * The class should define a `getInstance` method which returns the `INSTANCE` field.
9
+ */
10
+
11
+public class Students extends People{
12
+    private static final Students ourInstance = new Students();
13
+
14
+    public static Students getInstance() {
15
+        return ourInstance;
16
+    }
17
+
18
+    private Students() {
19
+        ourInstance.addPerson(new Student("Ned Redmond", 1));
20
+        ourInstance.addPerson(new Student("Seth Abrams", 2));
21
+        ourInstance.addPerson(new Student("Akeem Cherry", 3));
22
+        ourInstance.addPerson(new Student("Whitney Martinez", 4));
23
+        ourInstance.addPerson(new Student("Nira Parikh", 5));
24
+        ourInstance.addPerson(new Student("Connor Dunnigan", 6));
25
+        ourInstance.addPerson(new Student("Christian Sheridan", 7));
26
+        ourInstance.addPerson(new Student("Curtis Cook", 8));
27
+        ourInstance.addPerson(new Student("Nuridalia Hernandez", 9));
28
+        ourInstance.addPerson(new Student("Brandon DeFrancis", 10));
29
+        ourInstance.addPerson(new Student("De'Jon Johnson", 11));
30
+        ourInstance.addPerson(new Student("Demetrius Murray", 12));
31
+        ourInstance.addPerson(new Student("Elliott Stansbury", 13));
32
+        ourInstance.addPerson(new Student("Nathan Hall", 14));
33
+        ourInstance.addPerson(new Student("Jae Joson", 15));
34
+        ourInstance.addPerson(new Student("Jacob Anderson", 16));
35
+        ourInstance.addPerson(new Student("Jose Bedolla", 17));
36
+        ourInstance.addPerson(new Student("Jenn Chao", 18));
37
+        ourInstance.addPerson(new Student("Jennifer Tinkler", 19));
38
+        ourInstance.addPerson(new Student("Jonathan Hinds", 20));
39
+        ourInstance.addPerson(new Student("Jay Samuels", 21));
40
+        ourInstance.addPerson(new Student("Jevit Tith", 22));
41
+        ourInstance.addPerson(new Student("Lauren Green", 23));
42
+        ourInstance.addPerson(new Student("Kate Moore", 24));
43
+        ourInstance.addPerson(new Student("Michelle DiMarino", 25));
44
+        ourInstance.addPerson(new Student("Maggie Pierse", 26));
45
+        ourInstance.addPerson(new Student("Nick Satinover", 27));
46
+        ourInstance.addPerson(new Student("Chaitali Patel", 28));
47
+        ourInstance.addPerson(new Student("Yesoda Sanka", 29));
48
+        ourInstance.addPerson(new Student("Saurav Kamath", 30));
49
+        ourInstance.addPerson(new Student("Sam Bhutani", 31));
50
+        ourInstance.addPerson(new Student("Soujanya Buragapu", 32));
51
+        ourInstance.addPerson(new Student("Steffon Williams", 33));
52
+        ourInstance.addPerson(new Student("Zavon Malone", 34));
53
+        ourInstance.addPerson(new Student("Thuy Kong", 35));
54
+        ourInstance.addPerson(new Student("Thulasi Puppala", 36));
55
+        ourInstance.addPerson(new Student("Trinh Tong", 37));
56
+        ourInstance.addPerson(new Student("William Brown", 38));
57
+        ourInstance.addPerson(new Student("Xzavia Cuello", 39));
58
+
59
+    }
60
+ /*
61
+  * In the constructor of the `Students` class,
62
+  * add all the students from your class so that calling `getArray` will return all the students from your cohort
63
+  * Each student should have a _relatively_ unique `id` field.
64
+  */
65
+
66
+
67
+}

+ 28
- 0
src/main/java/io/zipcoder/interfaces/Teacher.java 查看文件

1
+package io.zipcoder.interfaces;
2
+
3
+/*### Part 4.0 - Create `Teacher` Interface
4
+        * Create a `Teacher` interface.
5
+        * `Teacher` should declare a `teach` method signature:
6
+        * Method name: `teach`
7
+        * Method parameters:
8
+        * `Learner learner`
9
+        * `double numberOfHours`
10
+        * Method return-type: `void`
11
+
12
+        * `Teacher` should declare a `lecture` method signature:
13
+        * Method name: `lecture`
14
+        * Method parameters:
15
+        * `Learner[] learners`
16
+        * `double numberOfHours`
17
+        * Method return-type: `void`
18
+
19
+        ---
20
+
21
+*/
22
+public interface Teacher {
23
+    public void teach( Learner learner,
24
+                               double numberOfHours);
25
+    public void lecture(Learner[] learners,
26
+			double numberOfHours);
27
+
28
+}

+ 58
- 0
src/test/java/InstructorTest.java 查看文件

1
+import io.zipcoder.interfaces.*;
2
+import org.junit.Assert;
3
+import org.junit.Test;
4
+import static org.hamcrest.CoreMatchers.instanceOf;
5
+import static org.junit.Assert.assertThat;
6
+
7
+/*
8
+ * Create a `InstructorTest` class.
9
+ * Create a `testImplementation` method that asserts that an `Instructor` is an `instanceof` a `Teacher`.
10
+ * Create a `testInheritance` method that asserts that a `Instructor` is an `instanceof` a `Person`.
11
+
12
+ */
13
+public class InstructorTest {
14
+    @Test
15
+    public void testImplementation()
16
+    {
17
+        Instructor ins=new Instructor();
18
+        assertThat(ins, instanceOf(Teacher.class));
19
+    }
20
+
21
+
22
+/*
23
+ * Create a `testInheritance` method that asserts that a `Instructor` is an `instanceof` a `Person`.
24
+ * Make the `Instructor` a subclass of `Person`
25
+
26
+ */
27
+    @Test
28
+    public void testInheritance()
29
+    {
30
+        Instructor ins=new Instructor();
31
+        assertThat(ins, instanceOf(Person.class));
32
+    }
33
+
34
+/*
35
+
36
+ * 	Create a `testTeach` method that ensures when an `Instructor` invokes the `teach` method, a respective student's
37
+ * `totalStudyTime` instance variable is incremented by the specified `numberOfHours`.
38
+ */
39
+    @Test
40
+    public void testTeach()
41
+    {
42
+        Instructor in=new Instructor() ;
43
+
44
+        in.teach( new Student() , 10);
45
+    }
46
+
47
+/*
48
+ * Create a `testLecture` method that ensures when an `Instructor` invokes the `lecture` method, a respective array
49
+ * of students' `totalStudyTime` instance variables is incremented by `numberOfHours/students.length`.
50
+ */
51
+    @Test
52
+    public void testLecture()
53
+    {
54
+        //Students students = Students.getInstance ();
55
+        Instructor in=new Instructor() ;
56
+        in.lecture(  Students.getInstance(), 100.0);
57
+    }
58
+}

+ 77
- 0
src/test/java/StudentsTest.java 查看文件

1
+import io.zipcoder.interfaces.Student;
2
+import io.zipcoder.interfaces.Students;
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+import static io.zipcoder.interfaces.Students.*;
7
+
8
+public class StudentsTest {
9
+ /*
10
+  * Create a `testSingletonInstance` method which ensures that calling `Students.getInstance()`
11
+   * twice will return the same instance. You can check if they are the same instance by calling
12
+   * the `Assert.assertSame(instance1, instance2)` method.
13
+  *
14
+  */
15
+    @Test
16
+    public void testSingletonInstance() {
17
+        Students s1= Students.getInstance();
18
+        Students s2= Students.getInstance() ;
19
+        Assert.assertEquals(s1,s2);
20
+    }
21
+
22
+    /*
23
+     * Create a `testInitializationSetupStudents` method
24
+     * which ensures that each of the students in your current cohort
25
+     * are in your `Students` singleton when `getArray` is called.
26
+     */
27
+    @Test
28
+    public void testInitializationSetupStudents () {
29
+
30
+        Students sl = Students.getInstance();
31
+       /* sl.addPerson(new Student("Ned Redmond", 1));
32
+        sl.addPerson(new Student("Seth Abrams", 2));
33
+        sl.addPerson(new Student("Akeem Cherry", 3));
34
+        sl.addPerson(new Student("Whitney Martinez", 4));
35
+        sl.addPerson(new Student("Nira Parikh", 5));
36
+        sl.addPerson(new Student("Connor Dunnigan", 6));
37
+        sl.addPerson(new Student("Christian Sheridan", 7));
38
+        sl.addPerson(new Student("Curtis Cook", 8));
39
+        sl.addPerson(new Student("Nuridalia Hernandez", 9));
40
+        sl.addPerson(new Student("Brandon DeFrancis", 10));
41
+        sl.addPerson(new Student("De'Jon Johnson", 11));
42
+        sl.addPerson(new Student("Demetrius Murray", 12));
43
+        sl.addPerson(new Student("Elliott Stansbury", 13));
44
+        sl.addPerson(new Student("Nathan Hall", 14));
45
+        sl.addPerson(new Student("Jae Joson", 15));
46
+        sl.addPerson(new Student("Jacob Anderson", 16));
47
+        sl.addPerson(new Student("Jose Bedolla", 17));
48
+        sl.addPerson(new Student("Jenn Chao", 18));
49
+        sl.addPerson(new Student("Jennifer Tinkler", 19));
50
+        sl.addPerson(new Student("Jonathan Hinds", 20));
51
+        sl.addPerson(new Student("Jay Samuels", 21));
52
+        sl.addPerson(new Student("Jevit Tith", 22));
53
+        sl.addPerson(new Student("Lauren Green", 23));
54
+        sl.addPerson(new Student("Kate Moore", 24));
55
+        sl.addPerson(new Student("Michelle DiMarino", 25));
56
+        sl.addPerson(new Student("Maggie Pierse", 26));
57
+        sl.addPerson(new Student("Nick Satinover", 27));
58
+        sl.addPerson(new Student("Chaitali Patel", 28));
59
+        sl.addPerson(new Student("Yesoda Sanka", 29));
60
+        sl.addPerson(new Student("Saurav Kamath", 30));
61
+        sl.addPerson(new Student("Sam Bhutani", 31));
62
+        sl.addPerson(new Student("Soujanya Buragapu", 32));
63
+        sl.addPerson(new Student("Steffon Williams", 33));
64
+        sl.addPerson(new Student("Zavon Malone", 34));
65
+        sl.addPerson(new Student("Thuy Kong", 35));
66
+        sl.addPerson(new Student("Thulasi Puppala", 36));
67
+        sl.addPerson(new Student("Trinh Tong", 37));
68
+        sl.addPerson(new Student("William Brown", 38));
69
+        sl.addPerson(new Student("Xzavia Cuello", 39));
70
+        */
71
+        // calling the getArray()
72
+
73
+        Assert.assertEquals(39, sl.getArray().size());
74
+    }
75
+
76
+
77
+}

+ 110
- 0
src/test/java/io/zipcoder/interfaces/PeopleTest.java 查看文件

1
+package io.zipcoder.interfaces;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+import java.security.Permission;
7
+import java.util.ArrayList;
8
+
9
+
10
+/** Create a `PeopleTest` class.
11
+ * Create a `testAdd` method which ensures that our `personList` in our `People`
12
+ * class populated with respective `Person` objects
13
+ * Create a `testRemoveByPerson` method which ensures that the `personList` in a `People`
14
+ * object is **depopulated** with a respective `Person` object following the invokation of the `remove` method.
15
+ * * Create a `testFindById` method which ensures that a respective `Person` object with a respective `id`
16
+ * field is returned upon invokation of the `findById` method on a respective `People` object.
17
+*/
18
+
19
+public class PeopleTest {
20
+    @Test
21
+    public void testAdd()
22
+    {
23
+       People pl=new People();
24
+        Person p=new Person("John_1",1);
25
+        pl.addPerson(p ) ;
26
+        Assert.assertEquals(1, pl.getCount() );
27
+    }
28
+
29
+
30
+  @Test
31
+  public void testRemoveByPerson()
32
+  {
33
+      People pl=new People();
34
+      Person p=new Person("John_1",1);
35
+      pl.addPerson(new Person("john_1", 1)) ;
36
+      pl.addPerson(new Person("john_2", 2)) ;
37
+      pl.addPerson(new Person("john_3", 3)) ;
38
+      pl.addPerson(new Person("john_4", 4)) ;
39
+      pl.addPerson(new Person("john_5", 5)) ;
40
+      pl.addPerson(new Person("john_6", 6)) ;
41
+      pl.addPerson(new Person("john_7", 7)) ;
42
+      pl.addPerson(new Person("john_8", 8)) ;
43
+
44
+      pl.testRemoveByPerson(p) ;
45
+      Assert.assertEquals(7,pl.getCount() ) ;
46
+  }
47
+  /*
48
+   * * Create a `testFindById` method which ensures that a respective `Person` object with a respective `id`
49
+   * field is returned upon invokation of the `findById` method on a respective `People` object.
50
+
51
+   */
52
+    @Test
53
+    public void testFindById()
54
+    {
55
+        People pl=new People();
56
+        Person expected=new Person("John_1",1);
57
+        pl.addPerson(new Person("john_1", 1)) ;
58
+        pl.addPerson(new Person("john_2", 2)) ;
59
+        pl.addPerson(new Person("john_3", 3)) ;
60
+        pl.addPerson(new Person("john_4", 4)) ;
61
+        pl.addPerson(new Person("john_5", 5)) ;
62
+        pl.addPerson(new Person("john_6", 6)) ;
63
+        pl.addPerson(new Person("john_7", 7)) ;
64
+        pl.addPerson(new Person("john_8", 8)) ;
65
+
66
+        Person actualPerson = pl.findById(expected.getId() );
67
+        Assert.assertEquals(expected,actualPerson  ) ;
68
+
69
+    }
70
+
71
+    /*
72
+      Create a `testGetArray` which ensures the array has all the people added
73
+
74
+     */@Test
75
+     public void testGetArray()
76
+     {
77
+         People pl=new People();
78
+         pl.addPerson(new Person("john_1", 1)) ;
79
+         pl.addPerson(new Person("john_2", 2)) ;
80
+         pl.addPerson(new Person("john_3", 3)) ;
81
+         pl.addPerson(new Person("john_4", 4)) ;
82
+         pl.addPerson(new Person("john_5", 5)) ;
83
+         pl.addPerson(new Person("john_6", 6)) ;
84
+         pl.addPerson(new Person("john_7", 7)) ;
85
+         pl.addPerson(new Person("john_8", 8)) ;
86
+
87
+        ArrayList < Person> expected= pl.getArray();
88
+        Assert.assertEquals(pl.getCount(),expected.size() ) ;
89
+
90
+     }
91
+
92
+   /* Create a `testRemoveAll` method which ensures you remove all the person added
93
+
94
+     */
95
+   @Test
96
+    public void testRemoveAll()
97
+   {
98
+       People pl=new People();
99
+       pl.addPerson(new Person("john_1", 1)) ;
100
+       pl.addPerson(new Person("john_2", 2)) ;
101
+       pl.addPerson(new Person("john_3", 3)) ;
102
+       pl.addPerson(new Person("john_4", 4)) ;
103
+       pl.addPerson(new Person("john_5", 5)) ;
104
+       pl.addPerson(new Person("john_6", 6)) ;
105
+       pl.addPerson(new Person("john_7", 7)) ;
106
+       pl.addPerson(new Person("john_8", 8)) ;
107
+       pl.removeAll() ;
108
+      Assert.assertEquals(0,pl.getCount() );
109
+   }
110
+}

+ 33
- 0
src/test/java/io/zipcoder/interfaces/StudentTest.java 查看文件

1
+package io.zipcoder.interfaces;
2
+
3
+import org.junit.Test;
4
+
5
+/** Create a `StudentTest` class.
6
+ * Create a `testImplementation` method that asserts that a `Student` is an `instanceof` a `Learner`.
7
+ * Create a `testLearn` method that ensures a `Student`'s `totalStudyTime` instance variable is incremented
8
+ * by the specified `numberOfHours` by invoking the `.learn` method.
9
+*/
10
+public class StudentTest {
11
+    @Test
12
+    public void testImplementation()
13
+    {
14
+      Student s=new Student();
15
+      if(s instanceof Learner ) {
16
+      }
17
+    }
18
+    @Test
19
+    public void testInheritance ()
20
+    {
21
+        Student sc=new Student() ;
22
+        if(sc instanceof Person ){
23
+
24
+        }
25
+    }
26
+    @Test
27
+    public void testLearn()
28
+    {
29
+        Student sc=new Student() ;
30
+
31
+       sc.learn(3.4) ;
32
+    }
33
+}

+ 27
- 0
src/test/java/io/zipcoder/interfaces/TestPerson.java 查看文件

1
 package io.zipcoder.interfaces;
1
 package io.zipcoder.interfaces;
2
 
2
 
3
+import org.junit.Test;
4
+
5
+/*
6
+---
7
+### Part 1.0 - Test `Person`
8
+* Create a `PersonTest` class.
9
+	* Create a `testConstructor` method
10
+	    * which ensures that a `Person` object's `id` field is being set upon construction.
11
+	 * To check if the id has been set, call the `getId()` method of the person class which will return a long
12
+
13
+	* Create a `testSetAndGetName` method which ensures that a `Person` object's `name` variable is being set by
14
+	* invoking the `.setName` method and when you call `getName()` it will return the name you set
15
+        *
16
+---
17
+
18
+ */
19
+
3
 public class TestPerson {
20
 public class TestPerson {
4
 
21
 
22
+    Person  p= new Person() ;
23
+    public TestPerson() {
24
+      p.getId() ;
25
+    }
26
+
27
+    @Test
28
+    public void testSetAndGetName(String  name)
29
+    {
30
+        p.setName(name) ;
31
+    }
5
 }
32
 }