728x90
반응형

추상화 3

객체 지향 프로그래밍(Object-Oriented Programming, OOP)

객체지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍 패러다임 중 하나로, 현실 세계의 객체들을 모델링하여 프로그래밍하는 방법입니다. 객체지향 프로그래밍의 주요 특징 1. 캡슐화: 데이터와 그 데이터를 다루는 코드를 함께 묶어서 외부의 접근을 제한하는 것을 의미합니다. public class Car { private String model; private int price; // getter, setter public String getModel() { return model; } public void setModel(String model) { this.model = model; } public int getPrice() { return price; } p..

CS 2023.04.07

[Effective Java] 아이템 73. 추상화 수준에 맞는 예외를 던지라.

🎯 아이템 73. 추상화 수준에 맞는 예외를 던지라. 수행하려는 일과 관련 없어 보이는 예외가 튀어나오면 당황스러울 것이다. 메서드가 저수준 예외를 처리하지 않고 바깥으로 전파해버릴 때 종종 일어나는 일이다. 사실 이는 단순히 프로그래머를 당황시키는 데 그치지 않고, 내부 구현 방식을 드러내어 윗 레벨 API를 오염시킨다. 다음 릴리스에서 구현 방식을 바꾸면 다른 예외가 튀어나와 기존 클라이언트 프로그램을 깨지게 할 수도 있는 것이다. 이 문제를 피하려면 상위 계층에서는 저수준 예외를 잡아 자신의 추상화 수준에 맞는 예외로 바꿔 던져야 한다. 이를 예외 번역(exception translation)이라 한다. 참고 자료 Joshua Bloch, 『Effective Java 3/E』, 개앞맵시 옮김, 프로..

Java 2023.04.03

[Effective Java] 아이템 25. 톱레벨 클래스는 한 파일에 하나만 담으라.

🎯 아이템 25. 톱레벨 클래스는 한 파일에 하나만 담으라. javac Main.java Dessert.java // // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // package com.quecode.chapter4; public class Main { public Main() { } public static void main(String[] var0) { System.out.println("pancake"); } } javac Main.java Utensil.java // // Source code recreated from a .class file by Intelli..

Java 2023.03.20
728x90
반응형