profile
꿈을 이루는 사람

[Java] Collections framework (3) (feat. Map)

아래 코드를 통해 Map 컬렉션을 알아보자. Map에서 데이터를 추가할 때 사용하는 API는 put이다. put의 첫번째 인자는 값의 key이고, 두번째 인자는 key에대한 값이다. key를 이용해서 값을 가져올 수 있다. Map에 저장된 데이터를 열거할 때는 아래처

2022년 6월 10일
·
0개의 댓글

[Java] Collections framework (2) (feat. iterator)

iterator는 반복자다. collections 의 클래스들이 공통적으로 가지고 있는 API다. 컨테이너에 담긴 값들을 하나씩 꺼내서 하나 하나 기능을 처리할 수 있도록 한다. 아래 코드를 통해 자세히 알아보자. iterator는 hasNext와 next라는 메소드

2022년 6월 10일
·
0개의 댓글

[Java] Collections framework (1)

컬렉션즈 프레임워크(Collections framework)란, 컨테이너라고도 부른다. 즉 값을 담는 그릇을 의미한다. 그런데 그 값의 성격에 따라서 컨테이너의 성격이 조금씩 달라진다. Java에서는 다양한 상황에서 사용할 수 있는 다양한 컨테이너를 제공하는데 이것을

2022년 6월 10일
·
0개의 댓글

[Java] Generic (3) (feat. 제한)

extends를 통해 제네릭으로 올 수 있는 데이터 타입을 특정 클래스의 자식으로 제한할 수 있다.erson의 T는 Info 클래스나 그 자식 외에는 올 수 없다.extends는 상속(extends)뿐 아니라 구현(implements)의 관계에서도 사용할 수 있다.

2022년 6월 9일
·
0개의 댓글

[Java] Generic (2) (feat. 특성)

(1) 복수의 제네릭아래 코드를 살펴보자. 복수의 제네릭을 사용할 때는 <T, S>와 같은 형식을 사용한다. 여기서 T와 S 대신 어떠한 문자를 사용해도 된다. 하지만 묵시적인 약속(convention)이 있기는 하다. 위 코드는 오류를 발생시키는데 아래 코드를

2022년 6월 9일
·
0개의 댓글
post-thumbnail

[Java] Generic (1)

도입제네릭(Generic)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다.먼저 아래 코드를 살펴보자.위 코드를 아래와 같은 그림으로 표현할 수도 있다. p1.info와 p2.info의 데이터 타입은 각각 String과 StringBuilder

2022년 6월 9일
·
0개의 댓글

[Java] 참조 (4) (feat. 메소드의 매개변수와 참조)

위 코드의 결과는 아래와 같다.runValue, 1 메소드 value의 인자로 a를 전달했다. 인자 a는 매개변수 b가 되어서 value 안으로 전달되고 있다. value 안에서 b의 값을 변경했다. value가 실행된 후에 runValue에서 a값을 출력해본 결과 값

2022년 6월 9일
·
0개의 댓글
post-thumbnail

[Java] 참조 (3) (feat. 비교)

참조와 복제를 비교해보자. 복제는 파일을 복사하는 것이고 참조는 심볼릭 링크(symbolic link) 혹은 바로가기(윈도우)를 만드는 것과 비슷하다. 원본 파일에 대해서 심볼릭 링크를 만들면 원본이 수정되면 심볼릭 링크에도 그 내용이 실시간으로 반영되는 것과 같은 효

2022년 6월 9일
·
0개의 댓글

[Java] 참조 (2) (feat. 참조)

참조아래 코드를 먼저 살펴보자.위 코드의 결과는 아래와 같다.runValue, 1runReference, 2 a에 1을 대입하고, 1을 복제하여 b에 담았다. 변수 a와 변수 b의 데이터 타입은 A이다. 이때 인스턴스 A가 생긴다. b가 생성되면서 인스턴스 A를 가지

2022년 6월 9일
·
0개의 댓글
post-thumbnail

[Java] 참조 (1) (feat. 복제)

복제결과는 아래와 같다.runValue, 1 값을 변경한 것은 변수 b이기 때문에 변수 a에 담겨있는 값은 그대로이다. 변수 b의 값에 변수 a의 값이 복제된 것이다. 아래 그림을 확인하면 더 이해가 쉽다.

2022년 6월 9일
·
0개의 댓글

[Java] 상수와 enum (3) (feat. 열거)

enum은 클래스이므로 생성자를 가질 수 있다. 그러나 enum의 생성자는 접근 제어자 private만을 허용한다. 이때 방식이 좀 특이한데 아래 코드를 살펴보자.또한 열거형은 메소드를 가질 수 도 있다.아래 코드는 위의 코드와 다르지만 동일한 결과를 출력한다.그리고

2022년 6월 9일
·
0개의 댓글

[Java] 상수와 enum (2) (feat. 문법)

Fruit와 Company 클래스를 만들고 클래스 변수로 해당 클래스의 인스턴스를 사용하고 있다. 각각의 변수가 final이기 때문에 불변이고, Static이므로 인스턴스로 만들지 않아도 된다. 결과는 17행에서 에러가 발생한다. 이것이 우리가 바라던 것이다. 서로

2022년 6월 9일
·
0개의 댓글

[Java] 상수와 enum (1) (feat. 도입과 배경)

위와 같은 로직에서 숫자 1에 해당하는 과일은 언제나 사과여야 한다. 그러므로 변하지 않는 값인 상수값에 따라서 그 값에 해당하는 과일의 의미를 고정하고 있다. 그런데 주석으로 상수의 의미를 전달하고 있지만 주석이 없어졌거나, 주석이 상수를 사용하는 코드와 멀어진다면

2022년 6월 9일
·
0개의 댓글

[Java] object (3) (feat. clone)

clone은 복제라는 뜻이다. 어떤 객체가 있을 때 그 객체와 똑같은 객체를 복제해주는 기능이 clone 메소드의 역할이다. 우선 clone이라는 메소드를 통해 복제를 할 수 있는데, 그 복제하려는 객체가 복제 가능한 객체라는 사실을 Java에게 알려줘야 한다.clon

2022년 6월 8일
·
0개의 댓글

[Java] object (2) (feat. equals)

오늘은 객체 지향에서 equals에 대해 알아보자.아래 코드를 살펴보자.위 코드의 실행결과는 다음과 같다.falsetrueobject는 student의 부모타입인데, 이걸 풀어서 설명하면Object라는 데이터 타입에 obj라는 변수에 s2의 변수를 대입하려고 하는데,

2022년 6월 8일
·
0개의 댓글

[Java] object (1) (feat. toString)

소개위의 코드는 아래 코드와 같은 코드다.어떤 클래스를 정의했는데, 그 클래스가 아무런 클래스도 상속하고 있지 않다면Java는 암시적으로 extends Ojbect()를 정의한다.Object는 모든 클래스의 조상이라고 할 수 있는데, 이는 모든 클래스가 공통으로 포함하

2022년 6월 8일
·
0개의 댓글

[Java] 예외 (7)

나만의 예외 만들기표준 예외 클래스로도 많은 예외 상황을 표현할 수 있다. 하지만 그렇지 않은 경우도 있을 것이다. 이런 때는 직접 예외를 만들면 된다.예외를 만들기 전에 해야 할 것은 자신의 예외를 checked로 할 것인가? unchecked로 할 것인가를 정해야

2022년 5월 9일
·
0개의 댓글
post-thumbnail

[Java] 예외 (6) (feat. checked & unchecked)

예외의 선조 - Throwable우선 ArithmeticException의 API 문서를 통해서 예외들의 가계도를 살펴보자. 이것을 통해서 ArithmeticException의 부모 클래스 중에 java.lang.Exception 클래스가 있다는 사실을 알 수 있다.

2022년 5월 9일
·
0개의 댓글
post-thumbnail

[Java] 예외 (5)

예외의 생성자 지금까지 배운 것은 API의 소비자로서 API측에서 던지는 예외를 처리하는 방법이다. 하지만 이제는 API의 생상자로서 내 프로그램을 이용하는 소비자들에게 예외처리를 제공하는 방법을 알아보자. 역시 코드 예시를 통해 알아본다.package org.open

2022년 5월 9일
·
0개의 댓글
post-thumbnail

[Java] 예외 (4) (feat.throw)

생활코딩님께서는 '예외 던지기'라고 소개했던 부분을 설명해보자.왜 던지기 라는 단어로 소개하는가봤더니, 외부에 있는 파일 하나 생성해서 이클립스 프로젝트내 기입해놓고 불러오고자 할때, 그 파일 호출 과정을 수행할 수 없어서 이를 위한 처리를 생성자의 사용자에게 위임하

2022년 5월 9일
·
0개의 댓글