728x90
반응형
SMALL

JAVA의 가장 기본이 되는 내용 42

Wrapper Class

Wrapper Class는 특정 기본형을 감싸서 객체로 만들어 놓은 것을 말한다. Integer, Boolean, Long 등이 있다. 그럼 이 Wrapper 클래스는 왜 필요한걸까? 기본형의 한계 1. 객체가 아니다 우선 기본형은 객체가 아니다. 그 말은 객체가 가지는 장점을 활용할 수 없다는 얘기다. 가장 대표적인 것으로 본인의 속성을 사용하는 기능을 가질 수 없고 외부에서 만들어 사용해야 한다. 다음 코드를 보자. public class Main { public static void main(String[] args) { int intValue = 10; int i1 = compareTo(intValue, 5); int i2 = compareTo(intValue, 10); int i3 = compa..

Method Chaining

이번에는 굉장히 자주 사용되는 방식 중 하나인 메서드 체이닝에 대해 알아봤다. 대표적인 예시 중 하나가 StringBuilder, QueryDSL같은 라이브러리나 모듈이 이 기법을 사용하고 그 외 여러 라이브러리에서도 많이 사용하는 방법이다. 간단하다. 다음 코드를 보자. Value public class Value { private int value; public Value(int value) { this.value = value; } public Value add(int value) { this.value += value; return this; } public int getValue() { return value; } public void setValue(int value) { this.value ..

String 클래스

불변객체의 가장 대표적인 클래스인 String. 자바에서 문자열을 다룰 때 사용하곤 한다. 자바에서 문자를 다루는 대표적인 타입은 char, String 2가지가 있다. public class CharArrayMain { public static void main(String[] args) { char[] charArr = new char[]{'h', 'e', 'l', 'l', 'o'}; System.out.println(charArr); String str = "hello"; System.out.println("str = " + str); } } 실행결과: hello str = hello 보는 것과 같이 char 타입은 한 글자씩만 사용할 수 있기 때문에 문자열로 적합하지 않다. 그래서 String 클..

불변객체 (Immutable Object)

참고 자료: 김영한의 실전 자바 - 중급 1편 | 김영한 - 인프런 김영한 | 실무에 필요한 자바의 다양한 중급 기능을 예제 코드로 깊이있게 학습합니다., [사진]국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 www.inflearn.com 불변객체가 필요한 이유 불변객체에 대해서 완전히 제대로 알아보자. 불변객체가 뭔지 알기 전에 불변 객체가 왜 필요한 지부터 알아야 한다. 자바에서 가장 크게 변수는 두 가지 타입이 있다. 기본형 (Primitive type) 참조형 (Reference type) 기본형은 값의 공유가 절대로 일어나지 않는다. 즉, 특정값을 어떤 기본형 변수에 넣으면 변수끼리 그 값을 공유할 수 있는 방법은 없다. 언제나 자바에서 대입..

java.lang 패키지와 그 첫번째 - Object

참고 자료: 김영한의 실전 자바 - 중급 1편 | 김영한 - 인프런 김영한 | 실무에 필요한 자바의 다양한 중급 기능을 예제 코드로 깊이있게 학습합니다., [사진]국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 www.inflearn.com 패키지 중 java.lang이라는 패키지가 있다. 자바가 기본으로 제공하는 라이브러리(클래스 모음) 중에 가장 기본이 되는 것이 바로 java.lang 패키지이다. 여기서 lang은 Language의 줄임말이다. java.lang 패키지의 대표적인 클래스들 Object: 모든 자바 객체의 최상위 부모 클래스 String: 문자열 Integer, Long, Double: Wrapper 타입, 기본형 데이터 타입을 객체..

OCP (Open-Closed Principle) 원칙

참고 자료: 김영한의 실전 자바 - 중급 1편 | 김영한 - 인프런 김영한 | 실무에 필요한 자바의 다양한 중급 기능을 예제 코드로 깊이있게 학습합니다., [사진]국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 www.inflearn.com 좋은 객체 지향 설계 원칙 중 하나로 OCP 원칙이라는 것이 있다. Open for extension: 새로운 기능의 추가나 변경 사항이 생겼을 때, 기존 코드는 확장할 수 있어야 한다. Closed for modification: 기존의 코드는 수정되지 않아야 한다. 확장에는 열려있고, 변경에는 닫혀 있다는 뜻인데, 쉽게 이야기해서 기존의 코드 수정 없이 새로운 기능을 추가할 수 있다는 의미다. 인터페이스(또는 순..

다형성 (Part.2) 사용하기 ✨

참고 자료: 김영한의 실전 자바 - 중급 1편 | 김영한 - 인프런 김영한 | 실무에 필요한 자바의 다양한 중급 기능을 예제 코드로 깊이있게 학습합니다., [사진]국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 www.inflearn.com 이제 Part.1 에서 배운 다형성 핵심 개념인 다형적 참조와 메서드 오버라이딩을 가지고 매우 강력한 기능을 사용해보자. 다형성 개념을 사용하기 전 코드를 보고 사용한 코드를 본 다음 얼마나 강력한 것인지를 체감해보자. 다형성을 도입하기 전 Dog public class Dog { public void sound() { System.out.println("멍멍"); } } Cat public class Cat { p..

다형성 (Part.1) 매우중요 ✨

참고 자료: 김영한의 실전 자바 - 중급 1편 | 김영한 - 인프런 김영한 | 실무에 필요한 자바의 다양한 중급 기능을 예제 코드로 깊이있게 학습합니다., [사진]국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 www.inflearn.com 객체지향 프로그래밍의 대표적인 특징으로는 캡슐화, 상속, 다형성이 있다. 그 중 다형성은 객체지향 프로그래밍의 꽃이라 불린다. 캡슐화나 상속은 직관적으로 이해하기 쉽다. 그러나 다형성은 제대로 이해하기도 어렵고, 잘 활용하기는 더 어렵다. 하지만 좋은 개발자가 되기 위해선 다형성에 대한 이해가 필수다. 다형성(Polymorphism) 이름 그대로 "다양한 형태"를 뜻한다. 자바에서 다형성은 한 객체가 여러 타입의 객..

상속 (Part.2)

참고 자료: 김영한의 실전 자바 - 중급 1편 | 김영한 - 인프런 김영한 | 실무에 필요한 자바의 다양한 중급 기능을 예제 코드로 깊이있게 학습합니다., [사진]국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 www.inflearn.com super 상속과 메모리 구조를 통해 봤다시피 어떤 타입으로 인스턴스를 생성했냐에 따라 참조값으로 들어가서 먼저 확인하는 인스턴스가 달라졌다. 그런데 만약 부모와 자식이 이름이 같은 필드를 가지고 있거나 오버라이딩 메서드가 있을 때 내가 자식 타입으로 인스턴스를 생성했는데 부모의 필드나 메서드에 접근하고 싶으면 어떻게 할까? 이때 사용하는 키워드가 super이다. Car public class Car { public..

상속 (Part.1)

참고 자료: 김영한의 실전 자바 - 중급 1편 | 김영한 - 인프런 김영한 | 실무에 필요한 자바의 다양한 중급 기능을 예제 코드로 깊이있게 학습합니다., [사진]국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 www.inflearn.com 덜 중요한 부분: 규칙 클래스는 다중 상속이 불가하다 다음 그림이 예시인데 만약, 다음 그림처럼 다중 상속을 했을 때 자식 입장에서 move()를 실행하면 어떤 부모의 move()를 실행해야 하는지 자바는 알 수 없기 때문이다. 인터페이스는 다중 상속이 가능하다 인터페이스는 여러 인터페이스를 상속받아도 결국 구현하는 구현체에서 그 쓰임새를 만들기 때문에 위와 같은 문제가 발생하지 않아서 그렇다. 상속 관계에서 화살표..

728x90
반응형
LIST