이번에 배운 내용중 몰랐던 내용은 오버라이딩 이였다. 부모 클래스로부터 상속받은 메서드를 재정의하는 것을 말한다.
쉽게 말해서 오버로딩은 인자(매개 변수 타입,개수 순서)를 다르게 받을때의 메서드를 재정의 하고,
오버라이딩은 인자가 모두 같고 자식 메소드가 더 우선시 된다.
자바의 기본적인 코딩컨벤션을 확인하고 코드를 작성하였다.
- 클래스의 이름은 대문자로 시작한다.
- [O]
public class Car { … }
- [X.]
public class car { … }
- 메서드나 상태(필드, 멤버 변수)의 이름은 소문자로 시작한다.
- [O]
private String name;
- [X.]
private String Name;
- [O]
public void speedUp() { … }
- [X.]
public void SpeedUp() { … }
Ex1) 공학용 계산기
Calculator
), 공학용 계산기(ScientificCalculator
) 클래스를 만들어라.Main
의 파일에 작성하지 말고, 별도의 파일을 만들어라.)Ex1 코드
깃허브 링크1
상속을 활용해 코드를 구현하였다.
Ex2) 고양이 인형 만들기
Cat
) 클래스, 화난 고양이(AngryCat
) 클래스를 만들어라.상속
과 메서드 오버라이딩
을 활용해서 구현해라.Ex2 코드
깃허브 링크2
상속과 메서드 오버라이딩을 이용해 코드를 구현하였다.
Ex3) JSCODE 학교의 시험 채점기
ArrayList
를 사용하지 마라.삼항 연산자
를 쓰지 마라.합격입니다.
라는 문구를 출력해야 한다.불합격입니다.
라는 문구를 출력해야 한다.package ch5.practice.jscodeexam;
public class Main {
public static void main(String[] args) {
ExamProgram examProgram = new ExamProgram();
examProgram.execute();
}
}
ExamProgram
의 execute()
메서드의 길이도 10줄 이하여야 한다.Ex3 코드
깃허브 링크3
Ex3 문제를 Git 을 이용해 Git-Hub에 올려보았다.
깃허브 링크3
깃허브에 코드 파일이 제대로 업로드 되었다.
이번 미션을 통해 Git / GitHub 이용 방법에 좀 더 친숙해지게 되었다.
👨🏫 스타트업부터 대기업까지 정말 많은 기업에서 Git-Flow를 사용하고 있다. 당연히 Git-Flow 전략 대신에 다른 브랜치 전략을 사용하기도 한다. 하지만 가장 기본이 되는 Git-Flow를 익히게 된다면, 다른 브랜치 전략도 쉽게 활용할 수 있게 된다. 따라서 Git-Flow 전략부터 공부해보자.
Git Branch 전략에는 여러 종류가 있다. 그 중 Git-Flow 전략에 대해 익혀보자.
처음부터 Git-Flow에서 제시하는 master
, develop
, feature
, release
, hotfix
브랜치를 전부 사용해보려고 하면 복잡하고 막막하다. 그러니 master
, develop
, feature
브랜치만 사용하는 걸 목표로 잡고 시도해보자.
작은 프로젝트를 혼자 만들어서 Git-Flow를 직접 경험해보고, 어떻게 사용해야 하는 지 방법을 정리해놓자.
아직 Git이 완전히 익숙하지는 않아서, 좀 더 공부해볼 미션이다.
git-flow github flow gitlab-flow trunk-based 에 관해 검색을 하고 추후 내용을 보강하도록 하겠다.
배운 내용, 깨달은 점
오버라이딩에 대해 알게되었다. 오버로딩은 알고 있던 개념이였지만, 오버라이딩은 상속을 통해 자식의 메서드가 더 우선시 된다는 것을 알게 되고 사용법을 익히게 되었다.
또한, 클래스와 인스턴스에 대해 좀 더 명확히 알게 되는 미션이 되었고, 코딩 컨벤션을 통해 클래스 이름이나 메서드의 이름에서 주의해야할 부분을 알게 되었다.
또한 , 함수 이름을 설정할때 get/set 을 통해 함수 이름을 설정하여 , getter/setter 함수라는 개념을 알게 되었다.
어려웠던 점, 반성하고 싶은 점 / 개선할 방법
Ex3 번에서, 기수/점수 등을 입력받는 부분을 구현하는 것과, 메서드의 길이를 10줄 이내로 해결하는 부분이 애를 먹었던 부분이다. 처음에는 public static void main 안에서 Scanner 를 써야하는 줄 알고, main 함수에서 입력을 받아서 인자로 전달해야하나? 하고 접근하는 것이 시간이 걸렸다.
그러다가 그냥 getGeneration
과 같은 값을 입력받는 함수마다 Scanner 객체를 생성해서 입력받아보자! 했는데 다행히 제대로 구현이 되어 문제를 해결하게 되었다.
또한 메서드의 길이를 10줄 이내로 해야하는 조건 때문에 고민을 하였는데, 다행히 execute
함수에서 10줄 이내로 구현하라고 조건이 변경되어 printResult
에서 기수만 조건으로 받고, 그 기수에 해당하는 결과는 printDetails1/2
로 따로 작성하여 해당 함수를 호출하는 방식으로 해결하였다.
궁금한 점
이번에는 멘토님의 도움을 받아 모두 문제없이 구현하게 되어 질문할 점이 따로 없습니다! 감사합니다 ㅎㅎ
그런데 6회차에서는 미리 학습해올 내용이 없을까요?
안녕하세요 민혁님! 미션 수행해주시느라 고생 많으셨습니다:)
수행해주신 미션에서 피드백 하나 드릴게요~! 5회차 쪽집게 과외의 '접근 제어자' 부분을 학습하셔서, 'JSCODE 학교의 시험 채점기' 미션에 접근 제어자를 적용시켜서 코드를 수정해보시면 좋을 것 같습니다~~
그리고 이번 6회차에서는 미리 학습해올 내용은 따로 없습니다ㅎㅎㅎ 이번 6회차는 마음 편하게 오시면 될 것 같아요~!