오늘 ONEUL
오늘의 개발
오늘 ONEUL
전체 방문자
오늘
어제
  • 오늘의 개발 (248)
    • 📝 TIL (121)
    • 💡 Projects (6)
      • 드로잉 게임 [눈치 코치 캐치!] (4)
      • 익명고민상담소 [대나무숲] (2)
    • 🌎 Web (47)
      • Spring (3)
      • Java (14)
      • JavaScript (16)
      • CSS (10)
      • HTML (4)
    • 📚 Database (7)
    • 👾 Trouble Shooting (3)
    • 📊 Algorithm&SQL (39)
    • 😺 Git (1)
    • 📖 Books (7)
      • 자바 객체 지향의 원리와 이해 (7)
    • 📁 ETC (2)
    • 되돌아보기 (15)

블로그 메뉴

  • 😺 Github
  • 🍀 NAVER Blog

인기 글

최근 댓글

최근 글

태그

  • MySQL
  • 항해99
  • 자바
  • 알고리즘
  • 자바스크립트
  • Algorithm
  • Til
  • JavaScript
  • 프로그래머스
  • Java

티스토리

hELLO · Designed By 정상우.
오늘 ONEUL

오늘의 개발

📝 TIL

[TIL] Java 퀴즈파티, 생성자, 뱅킹 시스템

2022. 5. 13. 21:50

✍ Today I Learned

  • 오늘은 여러 퀴즈 문제를 풀었다. 확실히 자바스크립트로 한 번 풀어봤던 문제들이라 자바로도 어렵지 않게 풀 수 있었다. 가장 어려웠던 부분은 각 클래스를 연결하여 하나의 큰 개념을 만들어내는 것이었는데 클래스를 분석하는 작업이 선행되어야 한다는 걸 깨달았다.
  • 클래스를 분석하는 작업은 추상화를 의미한다. 생성하려는 객체가 무엇이고, 어떤 것들이 포함되어야 할지 항상 생각하자.
  • System.out.printf("%.2f"); - DecimalFormat 외에 소수점을 조정할 수 있는 방법. (추천 방식은 아님)
  • 하나의 패키지 안에 같은 이름의 클래스를 둘 이상 정의할 수 없다. (패키지가 다르면 같은 이름 가능)

 

[생성자 Constructor]

  • 생성자란? 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화할 수 있는 메서드이다.
  • 목표 객체를 명확히 하기 위해 생성자의 이름은 해당 클래스와 일치해야 한다.
  • 리턴 값이 없지만 리턴 타입을 void로 선언하지 않는다.
  • 패키지를 넘나들 수 있도록 public으로 선언한다.
  • 별도로 생성자를 정의하지 않으면 자바 컴파일러가 기본 생성자(default constructor)를 추가한다.
  • 매개변수를 가지는 생성자를 하나라도 정의했다면, 기본 생성자는 자동으로 추가되지 않는다.
  • 생성자는 초기화를 위한 데이터를 파라미터로 전달받을 수 있다.
  • 하나의 클래스가 여러 개의 생성자를 가질 수 있다. (메서드 오버 로딩)
  • 멤버 변수는 정적인 역할로 데이터를 정의하고 메서드는 동적인 역할로 데이터를 설정한다면, 클래스는 2가지 역할을 동시에 한다. 정적인 대상의 이름을 표시하고, 동적으로 객체를 생성한다.
  • 이클립스 생성자 단축키는 alt+shift+s>o
public class Main {
  int modelYear;
  String modelName;

  public Main(int year, String name) {
    modelYear = year;
    modelName = name;
  }

  public static void main(String[] args) {
    Main myCar = new Main(1969, "Mustang");
    System.out.println(myCar.modelYear + " " + myCar.modelName); // 1969 Mustang
  }
}

 

  • 하나의 .java 파일에 서로 다른 클래스가 존재하면 자바 컴파일러는 class를 중심으로 컴파일한다.
  • 클래스 앞에 아무것도 적지 않으면 default로 선언되어 같은 패키지 안에서만 접근할 수 있다.
  • 주로 변수는 private으로 선언하고, getter와 setter는 public으로 선언한다.
  • 하위 패키지는 .(점)으로 연결한다.
  • 이클립스에서 hierarchical 구조로 패키지를 보고 싶다면? Package Explorer menu > Package Presentation > Hierarchical로 설정한다.

 

[클래스를 분리하여 뱅킹 시스템 만들기]

  • BankAccount, Banker, User 클래스를 생성하여 계좌 개설, 잔액 조회, 입금 및 출금 기능을 다음과 같이 구현해보았다.
  • BankAccount 클래스 생성자 메서드에 파라미터로 현금 데이터를 전달하면 그 현금이 입금된 계좌 객체를 생성한다.
  • User 클래스 생성자 메서드에 파라미터로 이름, 현금 보유액, 위에서 만든 BankAccount 객체를 전달하면 고객의 정보가 담긴 객체를 생성한다.
  • Banker 클래스에 view, saving, withdraw 메서드를 생성하여 각 기능을 수행한다.
  • 메서드 내에서는 각 클래스의 getter와 setter를 이용하여 잔액을 조회하거나 설정한다.
저작자표시 비영리 변경금지 (새창열림)

'📝 TIL' 카테고리의 다른 글

[TIL] Java 뱅킹 시스템, 호텔 객실 관리 프로그램  (0) 2022.05.17
[TIL] Java 뱅킹 시스템, 은닉화  (0) 2022.05.16
[TIL] Java 메서드, 오버로딩, 재귀호출, 클래스  (0) 2022.05.12
[TIL] Java 버블정렬, 선택정렬, 퀴즈파티  (0) 2022.05.11
[TIL] Java 타입 변환, 연산자, 조건문, 반복문, 배열  (0) 2022.05.10
    오늘 ONEUL
    오늘 ONEUL
    Backend Engineer ㅣ 어제보다 나은 오늘, 재밌는 건 오늘부터!

    티스토리툴바