diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..5f58a24
Binary files /dev/null and b/.DS_Store differ
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index e6216fd..8fc1e53 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -3,23 +3,22 @@
## 기능 요구사항
-- [ ] 탐사선은 탐사 대원을 가질 수 있습니다.
- [ ] 탐사선은 다음과 같은 속성을 가집니다.
- - 이름, 모델, 탐사 임무, 연료 수준
-- [ ] 탐사선의 연료을 충전할 수 있습니다.
-- [ ] 탐사선의 연료를 소모할 수 있습니다.
+ - 이름
+- [ ] 탐사선의 이름을 변경할 수 있습니다.
+- [ ] 무인 탐사선은 탐사 대원을 가질 수 없습니다.
+- [ ] 유인 탐사선은 탐사 대원을 가질 수 있습니다.
- [ ] 탐사선의 정보를 확인할 수 있습니다.
-- [ ] 탐사 대원은 여러대의 탐사선에 탑승할 수 있습니다.
+ - 탐사선 정보, 탐사 대원 등
+- [ ] 탐사 대원은 탐사선에 탑승할 수 있습니다.
- [ ] 탐사 대원은 탐사선에서 내릴 수 있습니다.
- [ ] 탐사 대원은 다음과 같은 속성을 가집니다.
- - 이름, 대원 ID, 소속된 탐사선 목록
-- [ ] 탐사 대원의 정보를 확인할 수 있습니다.
+ - 이름
+- [ ] 탐사 대원의 이름을 변경할 수 있습니다.
## 제한 사항
-- [ ] 연료가 모두 충전되면 연료를 충전할 수 없습니다.
-- [ ] 연료가 모두 소모되면 연료를 소모할 수 없습니다.
-- [ ] 연료는 양으로 충전할 수도 있고, 퍼센트로 충전할 수도 있습니다.
-- [ ] 연료는 양으로 소모할 수도 있고, 퍼센트로 소모할 수도 있습니다.
+- [ ] 모든 변수는 'private'으로 선업합니다.
+- [ ] 각각의 변수는 'getter', 'setter'로 접근 합니다.
## 코드 작성 시 유의사항
- [ ] 클래스별로 파일을 구분해야 합니다.
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..c3f502a
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# 디폴트 무시된 파일
+/shelf/
+/workspace.xml
+# 에디터 기반 HTTP 클라이언트 요청
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..c1c2a99
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..d4c1c8d
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/space.iml b/.idea/space.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/space.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index f84af68..a17c9bc 100644
--- a/README.md
+++ b/README.md
@@ -1,28 +1,25 @@
-# 1️⃣ 과제안내
-> 당신은 우주 탐사 관리 시스템을 개발하는 소프트웨어 개발자로 고용되었습니다. 탐사선과 탐사 대원들을 관리하는 시스템을 구현하는 것이 당신의 첫 번째 과제입니다. 다음 요구사항을 충족하는 클래스를 작성하세요.
->
+# 1️⃣ 과제 안내
+> 당신은 유인 및 무인 우주 탐사선 시스템을 개발하는 소프트웨어 개발자로 고용되었습니다. 유인 및 무인 탐사선 시스템을 구현하는 것이 당신의 첫 번째 과제입니다. 다음 요구사항을 충족하는 클래스를 작성하세요.
-## 기능 요구사항
-- [ ] 탐사선은 탐사 대원을 가질 수 있습니다.
+## 2️⃣ 기능 요구 사항
- [ ] 탐사선은 다음과 같은 속성을 가집니다.
- - 이름, 모델, 탐사 임무, 연료 수준
-- [ ] 탐사선의 연료을 충전할 수 있습니다.
-- [ ] 탐사선의 연료를 소모할 수 있습니다.
+ - 이름
+- [ ] 탐사선의 이름을 변경할 수 있습니다.
+- [ ] 무인 탐사선은 탐사 대원을 가질 수 없습니다.
+- [ ] 유인 탐사선은 탐사 대원을 가질 수 있습니다.
- [ ] 탐사선의 정보를 확인할 수 있습니다.
-- [ ] 탐사 대원은 여러대의 탐사선에 탑승할 수 있습니다.
+ - 탐사선 정보, 탐사 대원 등
+- [ ] 탐사 대원은 탐사선에 탑승할 수 있습니다.
- [ ] 탐사 대원은 탐사선에서 내릴 수 있습니다.
- [ ] 탐사 대원은 다음과 같은 속성을 가집니다.
- - 이름, 대원 ID, 소속된 탐사선 목록
-- [ ] 탐사 대원의 정보를 확인할 수 있습니다.
+ - 이름
+- [ ] 탐사 대원의 이름을 변경할 수 있습니다.
## 제한 사항
-- [ ] 연료는 0보다 작을 수 없고 300보다 클 수 없습니다.
-- [ ] 연료가 모두 충전되면 연료를 충전할 수 없습니다.
-- [ ] 연료가 모두 소모되면 연료를 소모할 수 없습니다.
-- [ ] 연료는 양으로 충전할 수도 있고, 퍼센트로 충전할 수도 있습니다.
-- [ ] 연료는 양으로 소모할 수도 있고, 퍼센트로 소모할 수도 있습니다.
+- [ ] 모든 변수는 'private'으로 선업합니다.
+- [ ] 각각의 변수는 'getter', 'setter'로 접근 합니다.
## 코드 작성 시 유의사항
- [ ] 클래스별로 파일을 구분해야 합니다.
@@ -30,18 +27,17 @@
## 예시 출력 결과
```java
-탐사 대원 Neil의 정보:
-
-소속된 탐사선:
-- Apollo 탐사선
- - 모델: Model-X
- - 임무: 태양계 탐사
- - 연료 수준: 130
-
-- Odyssey 탐사선
- - 모델: Voyager
- - 임무: 외계 생명체 탐사
- - 연료 수준: 190
+Spaceship: Voyager 1
+우주선 속 탐사대원이 존재하지 않습니다.
+
+ Spaceship: BSSM 1
+우주선 속 탐사대원이 존재하지 않습니다.
+
+ Spaceship: Apollo 11
+Neil Armstrong 우주대원이 탐사 중 입니다.
+
+Spaceship: Apollo 11
+OYC 우주대원이 탐사 중 입니다.
```
@@ -90,7 +86,7 @@ git commit
"**무엇**"을 변경했는지를 작성합니다.
-- 명령형, 현재 시제 사용: "변경"으로 작성 ("변경함", "변경했음" X)
+- 명령형, 현재 시제 사용 (예시): "변경"으로 작성 ("변경함", "변경했음" X)
- 끝에 마침표(.) 금지
- 한글 사용 권장
diff --git a/second/.DS_Store b/second/.DS_Store
new file mode 100644
index 0000000..6cc980c
Binary files /dev/null and b/second/.DS_Store differ
diff --git a/second/.gitignore b/second/.gitignore
new file mode 100644
index 0000000..f68d109
--- /dev/null
+++ b/second/.gitignore
@@ -0,0 +1,29 @@
+### IntelliJ IDEA ###
+out/
+!**/src/main/**/out/
+!**/src/test/**/out/
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+bin/
+!**/src/main/**/bin/
+!**/src/test/**/bin/
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/second/.idea/.gitignore b/second/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/second/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/second/.idea/misc.xml b/second/.idea/misc.xml
new file mode 100644
index 0000000..e6be3f1
--- /dev/null
+++ b/second/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/second/.idea/modules.xml b/second/.idea/modules.xml
new file mode 100644
index 0000000..a2a1111
--- /dev/null
+++ b/second/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/second/.idea/workspace.xml b/second/.idea/workspace.xml
new file mode 100644
index 0000000..eaef01a
--- /dev/null
+++ b/second/.idea/workspace.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "customColor": "",
+ "associatedIndex": 6
+}
+
+
+
+
+
+
+
+
+
+
+ 1723003773300
+
+
+ 1723003773300
+
+
+
+
\ No newline at end of file
diff --git a/second/out/production/second/Astronaut.class b/second/out/production/second/Astronaut.class
new file mode 100644
index 0000000..5ca4cc3
Binary files /dev/null and b/second/out/production/second/Astronaut.class differ
diff --git a/second/out/production/second/Main.class b/second/out/production/second/Main.class
new file mode 100644
index 0000000..b5a6ab3
Binary files /dev/null and b/second/out/production/second/Main.class differ
diff --git a/second/second.iml b/second/second.iml
new file mode 100644
index 0000000..c90834f
--- /dev/null
+++ b/second/second.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/second/src/Astronaut.java b/second/src/Astronaut.java
new file mode 100644
index 0000000..a35b30d
--- /dev/null
+++ b/second/src/Astronaut.java
@@ -0,0 +1,7 @@
+public class Astronaut extends Information{
+
+ Astronaut (String informationName){
+ super(informationName);
+ }
+
+}
\ No newline at end of file
diff --git a/second/src/Information.java b/second/src/Information.java
new file mode 100644
index 0000000..859c37b
--- /dev/null
+++ b/second/src/Information.java
@@ -0,0 +1,15 @@
+public class Information {
+ String informationName;
+
+ Information (String informationName){
+ this.informationName=informationName;
+ }
+
+ void getName(){
+ System.out.println(informationName);
+ }
+
+ void setName(String informationName){
+ this.informationName = informationName;
+ }
+}
\ No newline at end of file
diff --git a/second/src/Main.java b/second/src/Main.java
new file mode 100644
index 0000000..02f140c
--- /dev/null
+++ b/second/src/Main.java
@@ -0,0 +1,31 @@
+public class Main {
+ public static void main(String[] args) {
+ Spaceshipmanned sp1 = new Spaceshipmanned("Apollo");
+ Spaceshipunmanned sp2 = new Spaceshipunmanned("Odyssey");
+
+ Astronaut as1 = new Astronaut("Hello");
+ Astronaut as2 = new Astronaut("Bye");
+
+ //탐사선 이름 수정하기
+ sp1.setName("apollo");
+ sp2.setName("odyssey");
+
+ //탐사 대원 이름 수정하기
+ as1.setName("hello");
+ as2.setName("bye");
+
+ //탐사 대원 탐사선에 탑승
+ sp1.addAstronaut(as1);
+ sp1.addAstronaut(as2);
+
+ //탐사선 정보 출력
+ sp1.spaceshipPrintInformation();
+ sp2.spaceshipPrintInformation();
+
+ //탐사 대원 탐사선에서 내리기
+ sp1.removeAstronaut(as1);
+
+ //탐사 대원이 탐사선에서 내리면 탐사 대원 목록에서 사라진다.
+ sp1.spaceshipPrintInformation();
+ }
+}
\ No newline at end of file
diff --git a/second/src/Spaceshipmanned.java b/second/src/Spaceshipmanned.java
new file mode 100644
index 0000000..549157d
--- /dev/null
+++ b/second/src/Spaceshipmanned.java
@@ -0,0 +1,35 @@
+import java.util.ArrayList;
+import java.util.List;
+
+public class Spaceshipmanned extends Information {
+ private List astronauts = new ArrayList<>(); //탑승한 탐사 대원 리스트
+
+ Spaceshipmanned(String informationName){
+ super(informationName);
+ }
+
+ //탐사대원을 추가하는 메소드
+ void addAstronaut(Astronaut astronaut){
+ this.astronauts.add(astronaut);
+ }
+
+ //탐사대원이 탐사선에서 내릴 수 있게 만드는 메소드
+ void removeAstronaut(Astronaut astronaut){
+ this.astronauts.remove(astronaut);
+ }
+
+ //탐사선의 정보를 출력하는 메소드
+ //탐서선 이름, 유인인지 무인인지, 탑승한 탐사 대원들의 이름 출력
+ void spaceshipPrintInformation(){
+ System.out.println("\n--------------------------------------\n");
+ System.out.println("탐사선 정보:");
+ System.out.println("\t- 이름: "+informationName);
+ System.out.println("\t- 종류: 유인 탐사선");
+ System.out.println("\t- 탐사 대원: ");
+ for (Astronaut astronaut : astronauts) {
+ System.out.print("\t\t- ");
+ astronaut.getName();
+ }
+ System.out.println("\n--------------------------------------\n");
+ }
+}
diff --git a/second/src/Spaceshipunmanned.java b/second/src/Spaceshipunmanned.java
new file mode 100644
index 0000000..dd60678
--- /dev/null
+++ b/second/src/Spaceshipunmanned.java
@@ -0,0 +1,17 @@
+public class Spaceshipunmanned extends Information {
+
+ Spaceshipunmanned(String informationName){
+ super(informationName);
+ }
+
+ //탐사선의 정보를 출력하는 메소드
+ //탐서선 이름, 유인인지 무인인지, 탑승한 탐사 대원들의 이름 출력
+ void spaceshipPrintInformation(){
+ System.out.println("\n--------------------------------------\n");
+ System.out.println("탐사선 정보:");
+ System.out.println("\t- 이름: "+informationName);
+ System.out.println("\t- 종류: 무인 탐사선");
+ System.out.println("\t- 탐사 대원: 없음");
+ System.out.println("\n--------------------------------------\n");
+ }
+}
\ No newline at end of file