자바 5

TIL #8 숫자 야구 게임 최종 회고

숫자 야구 게임이란?- 1~9 사이의 서로 다른 3자리 수가 정답으로 주어지면 정답을 유추해서 맞추는 게임- 야구 용어로 스트라이크, 볼, 아웃으로 힌트가 주어진다  * 정답과 자리, 수가 같으면 스트라이크, 자리는 다르고 수가 같으면 볼, 다 다르면 아웃으로 표시 이번에 숫자야구게임을 진행하면서 객체지향 설계에 신경을 써보려고 했는데,, 아직 실력이 많이 부족한지 떠오르지 않는다 - 객체의 상태, 행위, 책임을 생각해서 객체간 협력하는 이미지를 그릴 줄 알아야한다. (그리고 싶어요,,) 계산기와는 달리 메인에서 게임 진행을 하는 로직을 쓰기 싫어서 플레이어를 두고 플레이어가 게임을 진행하는 쪽으로 생각을 했다가 요구사항을 보고, 플레이어 객체는 안쓰기로 했다.그리고 힌트와 게임 기록을 보여주는 Base..

끄적끄적/TIL 2024.09.24

자바) 인스턴스 변수와 클래스 변수에 대해서 (+ 지역변수)

선언 위치에 따라서 변수의 종류가 달라진다.Class Variables { // 2~5 Line 클래스영역 int iv; // 인스턴스변수 static int cv; // 클래스변수(static변수) void method() { // 5~7 Line 메서드영역 int lv = 0; // 지역변수 }} 변수의 종류선언위치생성시기클래스변수클래스 영역클래스가 메모리에 올라갈 때인스턴스변수인스턴스 생성시지역변수메서드 영역변수 선언문 수행시 인스턴스변수(instance variable) - 각 인스턴스의 개별적인 저장공간. 인스턴스마다 다른 값 저장 가능 - 인스턴스 생성 후, '참조변수.인스턴스변수명' 으로 ..

개발/JAVA 2024.09.24

자바) 객체지향 개념 - 다형성에 대해서 (개념과 예시로 이해)

객체지향 개념은 캡슐화, 상속, 추상화, 다형성 4가지 개념이 핵심이다.오늘은 4가지 중 다형성에 대해서 알아볼 예정이다.다형성은 하나의 객체가 여러가지 형태를 가질 수 있는 능력을 말합니다. -> 이렇게 말하면 솔직히 이해가 전혀 안된다.. 하나의 참조변수로 여러 타입의 객체를 참조할 수 있는 것 -> 이또한 어렵다.그리고 상속과 인터페이스 개념까지 합하여 들어간다. 예시로 이해를 해보려고 한다. // 부모 클래스 Animalclass Animal { // 동물의 소리를 내는 메서드 public void sound() { System.out.println("동물이 소리를 냅니다."); }}// Animal의 자식 클래스 Dogclass Dog extends Animal { ..

개발/JAVA 2024.09.14

자바) Setter의 사용성

자바를 공부하면서 객체지향 개념에 대해서 배우면서 캡슐화, 상속, 추상화, 다형성 4가지 개념이 핵심 개념인 것을 배울텐데오늘은 캡슐화의 주요 기능인 getter와 setter 중 setter에 대해서 설명을 하려고 한다. 결론부터 얘기하면, Setter의 사용을 지양하라는 말이다. 먼저 계산기 프로젝트를 했을때, 계산기 클래스에서 연산을 하는 메서드가 있었고, 연산 결과를 저장하는 컬렉션 필드가 있었다.컬렉션 필드 같은 경우, 거의 대부분 setter를 사용할 일이 없다고 한다. public class Calculator { private List resultList = new ArrayList(); public double arithmeticOperation(int firstInputNum..

개발/JAVA 2024.09.14

TIL #6 계산기프로젝트 - 클래스, 객체, 컬렉션, 예외처리

저번에는 절차지향적으로 단순한 사칙연산 계산이였다면, 이번엔 클래스와 객체를 설계해서 객체지향개념을 활용한 계산기 프로그램을 만들고자 한다.   Calculator.java처음엔 연산 결과를 저장하는 컬렉션 타입 필드를 생성하라고 했을땐, 떠오르기 힘들었고 어떻게 시작을 해야하나 막막했었다.그래서 사칙연산 메서드를 먼저 작성을 해보려고 했다.처음엔 하나의 메서드가 아닌 add, subtract, multiply, divide 4개의 메서드로 나누려고 했지만, App.java의 main에서 Scanner를 통해서 사칙연산을 입력받기에 메서드 호출에서 어떻게 하지? 라는 고민과 함께 메서드를 통합하였다.// 연산 결과를 저장하는 컬렉션 타입 필드private List resultList = new Array..

끄적끄적/TIL 2024.09.11