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 + + + + \ 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