분류 전체보기

· TIL
· TIL
· TIL
사칙연산을 수행하는 계산기 ArithmeticCalculator 클래스와 원과 관련된 연산을 수행하는 계산기 CircleCalculator 클래스 2개를 구현합니다.기존에 만들어둔 Calculator 클래스를 수정합니다수정한 Calculator 클래스를 활용하여 ArithmeticCalculator, CircleCalculator 클래스를 구현 해봅니다. (상속)위 요구사항을 구현하게되면 App 클래스의 main 메서드에 오류가 발생할 겁니다.구현한 클래스들을 활용하여 오류가 발생하지 않고 활용될 수 있도록 수정 해보세요!기존에 사칙연산을 저장하던 컬렉션 필드의 타입을 Double로 변경해도 괜찮습니다.필드의 접근 제어자를 변경해도 괜찮습니다. 이 문제를 풀면서 상속에 대해 다시 생각해 보게 되었다.  ..
· TIL
1. 에러 vs 예외에러 : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류예외 : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 에러는 메모리부족이나 스택오버플로우와 같이 일단 발생하면 복구할 수 없는 오류이고, 예측이 불가능하다. 즉, JVM 실행에 문제가 생긴 것이므로, 개발자가 대처할 방법이 없다. 예외는 발생하더라도 수습할 수 있는 비교적 덜 심각한 오류를 말한다. 즉, 알고리즘 오류로 Exception 예외가 계속 발생한다 하더라도 Error처럼 프로그램이 죽거나 그럴 경우는 적다. 하지만, 예외에 대한 오류처리를 하지 않으면 프로그램에 문제를 야기할 수 있다. 대부분의 예외는 개발자가 구현한 로직에서 발생한 실수나 사용자의 영향에 의해 발생되는데, 이에 대한 대응 코드를 미리 ..
· TIL
public class MultiplyOperation extends AbstractOperation{ double operate(int x, int y){ return x * y; }}1)  AddOperation(더하기), SubstractOperation(빼기), MultiplyOperation(곱하기), DivideOperation(나누기) 연산 클래스를 만든 후 클래스 간의 관계를 고려하여 Calculator 클래스와 관계를 맺습니다.관계를 맺은 후 필요하다면 Calculator 클래스의 내부 코드를 변경합니다.나머지 연산자(%) 기능은 제외합니다.Step 2 와 비교하여 어떠한 점이 개선되었는지 스스로 생각해 봅니다.hint. 클래스의 책임(단일 책임 원칙) packag..
· TIL
1. 다형성 (Polymorphism)하나의 객체(Object) 혹은 메서드가 여러가지 타입을 가질 수 있는 것을 말한다. 자바에서 다형성은 한 타입의 참조 변수를 통해 여러 타입 객체를 참조할 수 있도록 하는 것이다. class Phone{ void sendMessage() {} void sendCall() {}}class IPhone extends Phone { void siri() {} void useAppleStore() {}} Phone 클래스와 IPhone는 상속관계를 맺고 있다.Phone 클래스 : 메시지/전화 송신 IPhone 클래스 : 시리 실행, 애플스토어 실행 메소드  Phone ph = new Phone();IPhone iPh = new IPhone(); 다형성..
· TIL
1. 객체 & 클래스 & 인스턴스현실 세계에서 자동차를 만들기 위해서는 설계도를 보고 자동차를 만든다.객체지향 프로그래밍에서도 설계도를 보고 자동차를 만든다.이 때, 객체지향 프로그래밍에서 설계도를 Class라고 한다.  클래스 (Class) : 객체를 만들어 내기 위한 틀객체가 가지는 공통적인 속성과 행동을 클래스에 정의객체 (Object) : 클래스의 모양 그대로 찍어낸 실체메모리 공간을 갖는 구체적인 실체개발자가 OOP에서 집중해야하는 부분은 객체를 "현실"과 "소프트웨어"의 중간지점을 바라보는 것인스턴스(Instance) : 객체를 실체화 시킨 것객체를 실체화 시킨것ex) 자동차객체 : 자동차라는 객체는 핸들, 타이어, 라이트 등이 있고 라이트가 켜지는 메소드..
· TIL
1. 얕은 복사 & 깊은 복사1) 얕은 복사// 얕은 복사int[] a = { 1, 2, 3, 4 };int[] b = a; b[0] = 3;System.out.println(a[0]);결과더보기 3얕은 복사는 주소값만 복사가 되어 변수명은 서로 달라도 같은 값을 공유하고 있다→ 얕은 복사를 한 변수가 변경이 되면 원래 변수 또한 변경이 된다.  2) 깊은 복사// 깊은 복사int[] a = { 1, 2, 3, 4 };int[] b = new int[a.length]; for (int i = 0; i  결과더보기1 깊은 복사는 '같은 값을 가지고 새로운 주소를 가진' 새로운 배열을 만든다.→ 깊은 복사를 한 배열을 변경한 경우 원래의 배열에는 ..
빨간망토감자도리
'분류 전체보기' 카테고리의 글 목록