[Java] Enum
·
Java
Enum은 서로 관련 있는 상수들의 집합이다. 열거형이라고도 불린다.특정 값만으로 한정된 변수를 사용하기 때문에 코드의 가독성과 안전성이 향상된다. 우선 Enum을 사용하게 된 계기와 Enum 사용 전 불편사항들과 불안전성에 대해 정리해 보자, Enum을 사용하기 전, 어떠한 비즈니스 로직이 회원의 등급에 따라 할인된 금액을 출력하는 로직을 설계해야 한다.등급은 총: Bronze, Silver, Gold 세 개가 존재하고 각 할인율은 (B:10%, S:20%, G: 30%)이다. package enum_practice;public class DiscountService { public static void main(String[] args) { UserGrade gradeServ..
[Java] 래퍼 클래스
·
Java
Java에서는 기본형(Primary Type) 8개를 제외한 나머지는 모두 객체이다. 기본형 8가지정수형: byte, short, int, long실수형: float, double문자형: char논리형: boolean 기본형은 장점과 단점이 존재한다. 장점 1. 빠른 성능과 편리함, 메모리 사용량 적음기본형의 값은 스택에 저장된다. 덕분에 접근 속도가 빠르다.객체보다 메모리 사용량이 적다. 단점 1. 객체지향적이지 않다.Java는 객체지향 언어이다. 하지만 기본형을 사용하면 다양한 메서드들을 이용할 수 없다.컬랙션 프레임 워크(ArrayList, LinkedList)에 직접 이용이 불가하다. 2. null사용이 불가하다.기본형은 반드시 값이 존재한다.값이 없는 상황에 유연하지 못하다. 기본형의..
[Java] String, StringBuilder, 메서드 체이닝
·
Java
Stringjava에서 String을 만드는 방법에 대해 살펴보자. package stringBuilder;public class StringEx1 { public static void main(String[] args) { String str1 = "스트링1"; //스트링 생성 1 String str2 = new String("스트링2"); System.out.println("str1 = " + str1); System.out.println("str2 = " + str2); }} new String(); 으로 스트링을 생성한 것을 보면 String은 클래스라는 것을 확인할 수 있다. 그러면 str1은 객체가 아닐까? str1의 생성과..
[Java] 불변 객체
·
Java
자바에서 데이터 타입은 크게 기본형과 참조형으로 나뉜다. 기본형: 하나의 값을 여러 변수에서 공유하지 않는다.참조형: 하나의 객체를 참조값을 통해 여러 변수가 공유한다. 기본형 값 복사 package immutableBlog;public class CallByValue { public static void main(String[] args) { int a = 7; int b = a; System.out.println("a = " + a); System.out.println("b = " + b); b = 300; System.out.println("a = " + a); System.out.println("b =..
[Java] Object 클래스
·
Java
자바가 기본으로 제공하는 라이브러리 중에 가장 기본은 lang 패키지이다. java.lang package의 대표적인 클래스들은 Object, String, 래퍼 클래스들, Class 메타 정보, System 등이 있다.  1. import 생략 가능한 lang 패키지 java.lang은 모든 자바 애플리케이션에서 자동으로 임포트 해준다. 즉, import java.lang을 안 해도 된다.   2. 모든 객체의 최상위 부모 Object 클래스 자바에서 모든 클래스의 최상위 클래스는 항상 Object 클래스이다.   Parent class는 묵시적으로 Object 클래스를 상속받는다. 그래서 extends Object를 생략할 수 있다.  //묵시적으로 Object 클래스를 상속 받음class Paren..
[OOP] 다형성에 대해서
·
Java/OOP
다형성이란 무엇일까?  다형성은 (Polymorphism)으로 객체지향 프로그래밍에서 같은 이름의 메서드나 연산자가 다른 기능을 수행하는 것이다.  다형성은 개념이 매우 중요한 기술적 부분인 것 같다. 꾸준히 다시 복습해야 다형성을 완전히 이해할 수 있을 것 같다.   다형성으로 다양한 형태, 여러 형태를 지닐 수 있게 되며 다형성 덕분에 하나의 객체가 다른 타입으로 사용될 수 있다.    다형성의 핵심 이론은 크게 2가지이다.  1. 다형적 참조  2. 메서드 오버라이딩    1. 다형적 참조   다형적 참조를 공부하기 전 상속에 대해서 간략하게 공부해야 한다.   다형적 참조는 말 그대로 참조를 다양하게 할 수 있는 것이다. 하나에 국한되어 있지 않다 이 말이다.  예제 코드를 보면 다형적 참조를 이..
[OOP] 캡슐화 Encapsulation
·
Java/OOP
OOP의 큰 특징은 크게 4가지이다.  그중 캡슐화에 대해 자세히 알아보자.  캡슐화 (Encapsulation)   캡슐화는 자바 OOP의 핵심 개념 중 하나이다. 프로그래밍 패러다임중 하나이며  캡슐화는 데이터를 보호하는 원칙이다.  데이터를 외부로부터 숨기고 데이터를 조작하는 기능(메서드)은 무결성을 유지한다.  캡슐화를 통해 데이터를 직접 접근하고 변경을 방지하거나 제한할 수 있다.  캡슐화는 속성과 기능을 하나로 묶고, 외부에서 꼭 필요한 데이터만 노출시키고 나머지는 내부에 감추는 목적이다.  캡슐화의 특징1. 데이터 은닉  클래스 필드(멤버변수)의 접근제어자를 private로 설정하여 외부로부터 접근 못하게 한다. 2. 정보 은폐  클래스 내부의 세부 구현을 알필요가 없어진다. 제공된 메서드만..