티스토리챌린지 14

[Spring_4기 본캠프] 상속 & 다형성과 캐스팅 | Day 29

1. 상속 : 기존 클래스의 필드와 메서드를 새로운 클래스에서 물려받는 것. (extends 키워드를 이용)◆ 부모클래스 : 새로운 클래스에 필드와 메서드를 물려주는(상속해주는) 클래스 = 상위 클래스◆ 자식클래스 : 부모클래스가 상속을 해주는 클래스 = 하위 클래스- 자식 클래스는 부모 클래스의 기능을 상속받아 사용할 수 있지만 부모 클래스는 자식클래스에 접근할 수 없다.- 자바는 다중 상속을 지원하지 않아 부모 클래스는 하나만 가질 수 있다. 물론 부모 클래스도 부모를 가질 순 있다.  2. 상속과 메모리 구조- 부모 클래스로부터 상속을 받아 새로운 객체를 생성하면 상속 관계에 있는 부모 클래스까지 함께 포함해 인스턴스를 생성한다.즉, 참조값은 하나지만 실제로 그 안에는 두 가지 클래스 정보가 공존하..

[Spring_4기 본캠프] 자바 메모리 구조와 static | Day 28

1. JVM - 자바 메모리 구조 ▶ 자바 메모리 구조는 크게 메서드 영역, 스택 영역, 힙 영역으로 나눌 수 있다.메서드 영역 : 클래스 정보를 보관한다. 이 클래스 정보가 붕어빵 틀이다.클래스 정보 : 클래스의 실행 코드(바이트 코드), 필드, 메서드와 생성자 코드 등 모든 실행 코드 존재static 영역 : static 변수들을 보관런타임 상수 풀 : 프로그램을 실행하는데 필요한 공통 리터럴 상수를 보관한다. 예를 들어 프로그램에 “안녕” 이라는 문자가 있으면 이런 문자를 공통으로 묶어서 관리한다.스택 영역 : 실제 프로그램이 실행되는 영역. 메서드를 실행할 때 하나씩 쌓인다. (후입 선출)스택 프레임 : 스택 영역에 쌓이는 네모 박스가 하나의 스택 프레임이다. 메서드를 호출할 때마다 하나의 스택 ..

[Spring_4기 본캠프] 키오스크 과제&트러블 슈팅 | Day 27

1. 객체 지향 키오스크 프로그램을 설계해보자  키오스크 과제가 발제되고 처음 작성된 코드는 철저한 절차 지향의 프로그램이었다. 단순히 프로그램의 작동 순서대로 조건문과 반복문이 떡칠된 가독성이 매우 떨어지는 하드 코딩을 하고나서 깨달은 점을 바탕으로 설계를 새롭게 해 코드를 작성해봤다.   우선 가장 먼제 과제의 요구사항을 살펴봤다.- 객체 지향 개념을 학습하고, 데이터를 구조적으로 관리하며 프로그램을 설계하는 방법을 익힌다.- 메뉴를 MenuItem 클래스와 List를 통해 관리한다.- main 함수에서 MenuItem 클래스를 활용하여 햄버거 메뉴를 출력한다.- Kiosk 클래스를 생성해 전체 로직 제어를 관리한다.- 키오스크 프로그램을 시작하는 메서드가 구현되어야 한다.- Menu 클래스를 생성해..

[Spring_4기 본캠프] 기본형과 참조형, final | Day 26

1. 기본형과 참조형의 메서드 호출 ▶ 자바에서 메서드의 매개변수(파라미터)는 항상 값에 의해 전달된다. 그러나 이 값이 실제 값이냐, 참조값이냐에 따라 동작이 달라진다.     ▷ 기본형 : 메서드로 기본형 데이터를 전달하면 해당 값이 복사되어 전달된다. 이 경우 메서드 내부에서 매개변수의 값을 변경해도 호출              자의 변수 값에는 영향이 없다. -> 예를 들어 a의 값을 b에 담아두면 a의 값을 바꾼다고 해서 b가 변하지 않듯      ▷ 참조형 : 메서드로 참조형 데이터를 전달하면 참조값이 복사되어 전달된다. 이 경우, 메서드 내부에서 매개변수로 전달된 객체의 멤버              변수를 변경하면 호출자의 객체도 변경된다. -> 주소값을 복사해오는 거라 둘 다 바뀜▶ 참조형..

[Spring_4기 본캠프] 3주차 - 새로운 과제 키오스크 | Day 25

1. 키오스크 만들기 계산기 만들기 과제가 어제 끝났는데 새로운 과제가 발제되었다. 저번 과제는 단계가 세분화 되어있지 않았는데 이번 과제는 꽤나 세분화 되어있었다. 계산기 만들기 때와는 다르게 구현하고싶은 것도 많고 아이디어도 계속 떠올랐다. 다만 어떻게 구현해야할 지 내가 할 수 있을 지 걱정이 되었는데 우선 튜터님이 lv1 부터 차근차근 올라가보라고 하셔서 급하게 lv1 을 구현했다. 1) LV1 프로그래밍 가이드- 입력 처리와 간단한 흐름 제어 복습- Scanner를 사용하여 여러 햄버거 메뉴를 출력- 제시된 메뉴 중 입력받은 숫자에 따라 다른 로직을 실행하는 코드  작성 - 프로그램 시작 시 주문, 주문취소, 주문내역, 홈 네 가지 선택지가 출력된다.- 사용자가 주문을 선택하면 하위 선택지에 버..

[Spring_4기 본캠프] 3주차 - 계산기 lv2 | Day 23

1. 계산기를 lv2로 업그레이드 하자!계산기 lv1을 구현하고 나서 이어지는 lv2 구현하기. 이전에 구현했던 계산기에 몇 가지 기능을 추가하고 나면 lv2가 뚝딱-! 완성된다.- 사칙 연산을 수행 후 결과값을 반환하는 메서드를 구현하세요.- 연산 결과를 저장하는 컬렉션 타입 필드를 가진 Calculator 클래스를 생성하세요.- 연산 수행 역할은 Calculator 클래스가 담당, 연산 결과는 Calculator 클래스의 연산 결과를 저장하는 필드에 저장- App 클래스의 main 메서드에서 Calculator 클래스의 연산 결과를 저장하고 있는 컬렉션 필드에 직접 접근하지 못하도록 수정 (캡슐화)- 간접 접근을 통해 필드에 접근하여 값을 가져오는 Getter메서드, 값을 제거할 Setter메서드 활..

[Spring_4기 본캠프] 3주차 - 컬렉션 | Day 22

1. Collection, 컬렉션 (자료구조) : 기본형 변수가 아닌 참조형 변수를 저장한다.- List : 순서가 있는 데이터의 집합 (데이터 중복 허용). - Array 와 비슷- Queue : 한 쪽에서 데이터를 넣고 반대쪽에서 데이터를 뺄 수 있는 집합 ( First In First Out, 먼저 들어간 것이 먼저 조회된다.)- Set : 순서가 없는 데이터의 집합 (데이터 중복 불허) - 순서 X, 중복 X- Map : 순서가 없는 (Key, Value) 쌍으로 이루어진 데이터의 집합 - Key 값 중복 불허   1) Listⓐ ArrayList : 배열처럼 일렬로 데이터를 저장하고 조회하여 순번 값(인덱스)으로 값을 하나씩 조회- 크기가 정해져있지 않고 필요할 때마다 크기가 점점 더 늘어난다...

[Spring_4기 본캠프] 3주차 - 계산기 lv1 구현하기 | Day 21

1. 계산기 구현하기 과제- 필수 기능 -1) 양의 정수(0을 포함)를 입력받기2) 사칙연산 기호를 입력받기3) 입력받은 정수들의 연산 결과를 출력 package lv1;import java.util.Scanner;public class CalculatorApp { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { System.out.print("숫자를 입력하세요 : "); int num1 = sc.nextInt(); System.out.print("연산자를 입력하세요 (exit 입력 시 종료됩니다) ..

[Spring_4기 본캠프] 3주차 - 자바 문법 종합반[객체&필드&메서드] | Day 20

1. 객체: 객체란 세상에 존재하는 물체를 뜻하며 식별이 가능한 것을 의미한다. 강의,운동 등 개념적인 것 또한 식별이 가능하기 때문에 객체라 볼 수 있다. -> 객체는 속성과 행위로 구성이 되어있다     - 자동차는 회사, 모델, 색상, 속도 등의 속성을 가진다.     - 자동차는 가속, 브레이크, 경적 등의 행위를 가진다. -> Java에서는 이러한 속성과 행위를 필드와 메서드로 정의해 구현한다.  -> 이처럼 현실 세계에 있는 객체를 소프트웨어의 객체로 설계하는 것을 객체 모델링이라고 한다. 2. 객체 간 협력 -> 사람과 자동차는 객체끼리 서로 행위를 통해 상호작용을 하며 협력할 수 있다. -> 소프트웨어의 객체들은 메서드를 통해 데이터를 주고받을 수 있다.-> 예를 들어 사람이 자동차를 가속..

카테고리 없음 2024.11.14

[Spring_4기 본캠프] 2주차 - 자바 문법 종합반[배열과 클래스] | Day 19

1. 배열 (Array) : 자료 구조  - 여러 개의 변수를 모아 같은 곳에 저장하고 싶을 때 기본적으로 배열이라는 변수에 저장(표현)한다.     쉽게 표현하자면 배열은 변수를 담을 수 있는 분류통 중 가장 기본 형태라고 할 수 있다.   - 한 번에 많은 양의 데이터를 다루거나 계산할 때 사용한다.- 타입 [ ] 변수; - 타입 변수 [ ]; // 배열 선언// 일반적인 선언방식int[] intArray; // 정수 배열long[] longArray;double[] doubleArray; // 실수 배열 char[] charArray; // 문자 배열String[] stringArray; // 문자열 배열// 배열 선언// 2번째 선언방식int intArray[]; // 정수 배열lo..