객체지향 프로그래밍 3

복사 생성자와 싱글톤

이번 포스팅은 자바를 이용하여 간단한 Kiosk 프로토타입을 만들어 보던중 발생한 몇가지 버그에 대한 글이다. (Git : https://github.com/Mason3144/burger_shop-kiosk-practice ) 복사 생성자(Copy Constructor) 장바구니 기능을 구현하던중 발생한 버그이다. 처음 의도한 결과로는 메뉴에서 하나의 제품을 선택한뒤 옵션을 선택해주고 장바구니에 넣는다. 다시 동일한 제품을 선택하게되면 모든 옵션들이 초기화되어 다시 옵션을 선택해준다. 이었다. 하지만 처음 의도한 것과는 달리 동일한 제품을 선택하게 되면 옵션들이 전에 선택했던 옵션 그대로 저장되어 나타나게 되었다. 문제의 발단은 메뉴의 모든 제품(음식 객체)들의 정보를 담은 배열에서 하나의 객체를 선택,..

Java/Java 2023.03.05

객체지향 프로그래밍 심화(다형성, 추상화)

다형성 다형성이란 하나의 객체가 여러가지 형태를 가질수 있는 성질을 의미하며 상위 클래스 타입의 참조 변수를 통해서 하위 클래스의 객체를 참조할 수 있도록 한 것 이라 할 수 있다. Person programmer = new Programmer(); (상위클래스타입) (참조변수명) = new (하위클래스생성자); 위와 같이 상위클래스 타입으로 하위클래스 객체를 만들수 있다. 또 다른 예제를 보자면 public class Main { public static void main(String[] args) { Person programmer = new Programmer(); programmer.test(); //programmer.test2(); 사용불가 System.out.println(programmer..

Java/Java 2023.03.01

객체지향 프로그래밍 심화(상속, 캡슐화)

상속화 상속화란 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법요소이다. 보통 부모(상위), 자식(하위) 클래스로 나누어 부모클래스의 멤버(필드, 메서드, 이너클래스)를 자식 클래스와 공유하는 것을 의미힌다. 이때 이 두 클래스를 상속 관계라고 하며, 자식 클래스는 부모 클래스가 가진 모든 멤버를 상속 받는 상태라고 한다. 또한, 자식 클래스는 하나의 부모 클래스만 가질수 있지만 부모 클래스는 여러 자식 클래스를 가질수 있다. 상속 방법으로는 자식 클래스 이름 옆에 extends 키워드를 사용 하여 부모 클래스로부터 멤버들을 상속 받는다. class Person { String name; int age; void learn(){ System.out.println("공부를 합니다."); }..

Java/Java 2023.02.28