2주차 회고
- 학습했던 내용들을 포스팅하면서 나만의 방식으로 이해도를 상승시켰다. 이를 통하여 방향성을 찾아가고 있다는 느낌을 받았고, 복습를 통한 이해는 기초를 더 단단하게 만드는 과정인 것 같다.
- 자바에 대한 본격적인 학습이 시작된 만큼 과제 역시 이제는 학습한 것을 토대로 이해를 하고 응용해서 문제 해결해나가는 방향으로 난이도가 올라가고 있다는 느낌을 받았다. 현재 이해하고 있는 정도를 판단할 수 있는 좋은 과정이라고 생각햇다.
- 지금 정리하는 포스팅의 내용이 당장 지금도 과제 수행 시 참고하는 만큼 훗날 개발 시에도 많은 도움을 받을 것 같다.
주요 학습 내용
JAVA의 클래스와 객체 [링크]
- 클래스는 객체를 정의하는 설계도라고 하며, 객체의 속성과 기능을 필드와 메서드로 변환하여 만든다.
- 객체는 속성과 기능으로 이뤄있고, 속성은 객체가 지닌 특징이나 상태를 말하고, 기능은 객체가 수행하는 동작 또는 행위, 기능을 말한다.
- 인스턴스는 클래스와 객체의 관계를 의미하며, 클래스로부터 객체를 선언한다. 이를 인스턴스화라고 말한다.
- 오버로딩은 한 클래스 내에서 같은 이름의 메소드를 여러 개 정의하고 매개변수의 수나 타입을 달리하여 기능을 구현하는 것을 말한다.
- 접근제어자는 클래스의 변수나 메소드에 대한 접근에 제한을 두는 키워드이다.
- static 키워드는 변수나 메소드의 특성을 바꾸는 키워드로써, 메모리에 한번만 할당되며, 공유되는 특성을 지닌다.
- static 클래스 변수는 해당 클래스의 각 개체들이 값을 공유하고, 함수는 객체를 생성하지 않아도 호출이 가능하다.
JAVA의 상속 [링크]
- 기존 클래스에 기능 추가 및 재정의하여 새로운 클래스를 정의하는 것을 말한다.
- 부모 클래스는 상속의 대상이 되는 상위 클래스라고 하며, 자식 클래스는 부모 클래스를 상속하는 하위 클래스라고 한다.
- 자식 클래스는 부모 클래스의 필드와 메소드만 상속받으며, 생성자나 초기화 블록은 상속되지 않는다.
- 다중 상속은 불가능하며, private, default를 지닌 멤버에 대해서는 자식 클래스에서 접근이 불가능하다.
- super는 부모 클래스와 자식 클래스의 멤버 이름이 같을 때 구분하는 키워드로, super.멤버 이름을 하면 부모 클래스의 멤버가 호출되고, super()를 호출하면 부모 클래스의 생성자가 호출된다.
- 오버라이딩은 부모 클래스의 메소드를 자식 클래스에서 재정의하는 것을 의미한다.
JAVA의 다형성 [링크]
- 한 객체가 여러 가지 타입을 가질 수 있는 것을 말하며, 부모클래스 타입의 참조 변수로 자식클래스 인스턴스를 참조하는 것을 말한다.
- instanceof 연산자를 사용하면 실제 참조하고 있는 인스턴스의 타입을 확인할 수 있다.
JAVA의 추상 클래스 [링크]
- 추상 메소드는 자식클래스에서 반드시 오버라이딩 해야하는 메소드를 말하며, 선언만하고 구현한 내용은 없는 것이 특징이다.
- 추상 클래스는 하나 이상의 추상 메소드를 포함하는 클래스로써 반드시 구현해야하는 부분에 대해서 명시적으로 표현하고 자체 객체는 생성이 불가능하다.
과제 수행
콘솔 화면에 구구단 출력하기
핵심 사항
- 다중 반복문 사용과 String.format 함수를 사용하여 출력하기
해결 방안
- 이중 for문을 사용하여 N단 * M를 수행하도록 하였다.
- String.format를 사용하여 한자리의 숫자인 경우 앞을 0으로 채우도록 서식을 지정하고, 1단부터 8번까지는 탭을 적용하고, 9단은 개행을 하도록 구현하였다.
결과 소스 [링크]
- 결과 예시
결제 금액 캐시백 계산 프로그램
핵심사항
- 결재 금액의 10%를 적립하되, 100원 단위로만 캐시백 적립.
- 결재 금액과 상관없이 한 건당 캐시백 접립 한도는 300원.
- 결재 금액을 입력하면 계산 후 결과를 출력.
해결 방안
- 다중 if문을 통하여 구매 금액을 기준으로 캐시백 계산 로직을 구현하였다.
- 1000원 미만에 대해 10%를 계산하여도 최대가 99원이기에 캐시백이 0원으로 적용
- 3000원 이상인 경우에는 최소가 300원이므로 캐시백을 300으로 적용
- 1000원이상 3000원 미만인 경우, 구매금액 * 0.1를 하고 100으로 나누어 몫을 구한 뒤 그 몫에 100을 곱한 값을 적용
결과 소스 [링크]
- 핵심 로직
- 결과 예시
사람은 누구나 자신이 할 수 있다고 생각하는 그 이상의 일을 할 수 있다.
- 헨리 포드