광고 클릭, 하트, 댓글은 필자에게 큰 힘이 됩니다! 오늘은 자바 열거형 타입 (Enum Type)에 대한 글을 준비했습니다. 자바를 알고 계시고 활용하고 계신 분들이라면 개념은 익히 알고 계시겠지만 어떨 때 활용하면 좋을지, 그리고 실제 프로젝트에 녹여낼 때 고민이 되었던 점들과 그 문제들을 어떻게 해결했는지 등등 제 경험을 토대로 이야기를 진행해 보겠습니다. 참, 이번 포스팅은 Java 8 기준으로 설명합니다. 우선 개념부터 짚고 넘어가볼까요? #1> 정의 / Enum Type이란? java.lang.Enum은 형식을 제한한 보다 안전한 상수 목록을 제공하기 위해 Java 1.5부터 추가되었습니다. Java의 Enum은 각 인스턴스가 속성과 로직을 구현할 수 있는 완전한 객체라는 점에서 다른 언어의 ..
#_ Condition Operator, What the fun!? 삼항연산자의 활용에 대해 물어보면 시니어 프로그래머라면 잘 아시겠지만, 주니어 프로그래머의 경우 알고는 있지만 사용하지 않는다던가, 처음 들어보는 경우가 있을겁니다. 나는 입문할 당시 책에서 배웠었나? 하는 궁금증이 생겨 책장에 있는 자바 책을 뒤적여 봤습니다. Java 입문서로 널리 알려진 Head First Java 책의 47페이지 조건문에 따른 분기문 챕터에서는 언급하고 있지 않네요.. 남궁성님이 집필하신 자바의 정석에서는 다루고 있군요. 그도 그럴것이 삼항연산자는 몰라도 괜찮은(?) 녀석이기 때문입니다. 우리에겐 강력한 if/else가 있으니까요. 수년간 자바를 통해 개발을 해온 제 입장에서 삼항 연산자는 안써도 좋지만 쓰면 더 ..
개요 필자는 모 사이트에서 프로그래밍 문제를 해결하던 중, 입력된 데이터를 오름차순으로 정렬하여 리턴하라는 문제가 있어 해당 메소드에 대해 알아보았다. List에는 데이터 정렬을 위한 sort라는 메소드가 존제한다. 물론 List를 상속받는 ArrayList 또한 이 sort 메소드를 사용할 수 있다. 이를 통해 편리하게 오름차순 혹은 내림차순으로 데이터 정렬이 가능하다. Comparable를 구현(implements)하는 클레스 정렬을 하기 위해서는 리스트 속 데이터 간 크기 비교가 가능해야한다. 즉, 리스트 안에 들어있는 오브젝트의 수치화가 가능해야 한다는 것. Java에서는 비교가 가능한(수치화가 가능한) 오브젝트들은 Comparable 인터페이스를 implements 하고있으며 우리가 사용하는 대..
게터와 세터(getter and setter) getter와 setter는 말 그대로 어떤 오브젝트 혹은 변수의 값을 가져오거나, 설정해주는 역할을 하는 메소드를 말한다. 이들은 다음과 같은 규칙을 가지고 있다. getterreturn type은 참조할 맴버변수의 자료형과 일치해야 한다.이름 앞에 get 을 붙이고 뒤에는 리턴할 맴버변수의 이름 혹은 해당 변수를 직관적으로 표현하는 단어가 와야한다.ex) int getLength(); setterreturn type은 void 혹은 값의 설정 결과를 알려줄 수 있는 type이어야 한다.argument는 수정할 맴버변수와 같은 type이어야 한다.이름 앞에 set을 붙이고 뒤에는 수정할 맴버변수의 이름 혹은 해당 변수를 직관적으로 표현하는 단어이어야 한다...
컴퓨터를 포맷하거나 새로운 곳에서 자바 개발환경을 구성할 때 꼭 하는 작업이지만 어쩌다 하는 관계로 매번 검색하는게 번거로워 내 블로그에 정리를 한다. 우선 Oracle 홈페이지 Download 카테고리에서 JDK를 다운받고 설치가 완료되면 "C:\Program Files\Java\jdk1.8.0_20" 와 같이 해당 디렉토리 주소를 긁어온다. 윈도우키 + Pause/Break키를 눌러서 시스템창을 띄운 후~ 고급시스템설정 메뉴를 클릭한다. 고급 탭으로 이동해서 환경변수 버튼을 클릭! 시스템 변수창에 새로만들기 버튼을 눌러서 이름 : JAVA_HOME경로 : 위에 긁어온 디렉터리 Path 생성! 사전에 등록되어있던 Path라는 변수 편집을 눌러 가장 뒷 부분에 세미콜론 (;)을 삽입 후 뒤에 %JAVA_..
What is the reference type? 자바의 자료형은 크게 기본형과 레퍼런스 타입으로 분류할 수 있다. 레퍼런스 타입은 new 연산자를 통해서 힙(heap) 영역에 생성되는 자료형들을 의미한다. 레퍼런스 타입으로는 클래스, 배열, 인터페이스가 있다.프로그래밍 언어에서 포인터와 레퍼런스는 다른 메모리 공간에 대한 주소를 가지고 있따는 점에서 매우 유사하기 때문에 혼동되는 개념이다. 포인터 혹은 레퍼런스 타입이 가리키고 있는 곳의 값에 접근하는 것을 디레퍼런스(dereference)라고 한다. 자바는 C++와는 달리 포인터를 지원하지 않고, 레퍼런스만 지원한다. 포인터와 자바 언어에서 사용되는 레퍼런스는 다음과 같은 차이점을 가지고 있다. Pointer Java reference 연산 산술 연산..
Scanner Class Scanner는 J2SE 5.0부터 java.util 패키지에 포함된 클래스로서 C 언어의 scanf()함수와 비슷한 기능을 제공한다. 즉, 원하는 자료형만을 입력받을 수 있다. 생성자static Scanner create(File source) ; 주어진 파일의 내용을 읽을 수 있는 Scanner 객체를 리턴한다.static Scanner create(InputStream source) - InputStream에서 데이터를 읽을 수 있는 Scanner 객체를 리턴한다. 메소드boolean hasNext() - 다음 토큰의 유무를 리턴한다. 있다면 true.boolean hasNext() - 에 해당되는 토큰의 유무를 리턴한다.String next() - 다음 토큰을 문자열 형태..
StringTokenizer 클래스는 문자열을 개별적인 토큰으로 분리하는 방법을 제공한다. 또한 java.util 패키지에 속해있으며 다음과 같은 생성자를 가지고 있다. (따라서 사용하기 위해서는 import java.util.*; 반드시 써줘야 한다.) StringTokenizer(String str) - 문자열 str을 기본적인 구별자("\t\n\r")를 이용해서 토큰을 구별하기 위한 생성자이다.StringTokenizer(String str, String delim) - 문자열 str을 구별자(delim)를 이용해서 토큰을 구별하기 위한 생성자이다.StringTokenizer(String str, String delim, boolean returnToken) - 문자열 str을 구별자(delim)을..
Vector 클래스는 동적으로 크기가 변하는 배열의 일종으로 볼 수 있다.일반 배열은 크기가 고정되어있는 것에 비해, Vector는 크기가 동적이기 때문에 크기가 확정되지 않은 배열을 사용하는 경우에 편리하다.Vector는 다음과 같은 세 개의 생성자를 가지고 있다. ( Vector 클래스는 java.util 패키지에 속해있다.)Vector() - 크기가 10인 디폴트 벡터를 생성한다.Vector(int initialCapacticy) - 초기 벡터의 크기를 initialCapacity로 만든다. 크기가 부족한 경우에는 2배씩 커진다.Vector(int initialCapacity, int capacityIncrement) - 초기 백터의 크기를 initialCapacity로 만들고, 부족할 때마다 ca..
- Total
- Today
- Yesterday
- php
- 영어발음
- kotlin 기초
- 프로젝트오일러
- 런탭
- 코딩
- 안드로이드 컴포즈
- LiveTemplate
- 코틀린 기초
- Kotlin
- 안드로이드 바텀시트
- 안드로이드
- 자바
- Java
- 컴포즈 바텀시트
- 안드로이드 스튜디오 라이브 템플릿
- 안드로이드 스튜디오
- 개발자
- 코틀린 기초강의
- Programming
- compose bottomsheet
- live template
- 프로그래밍
- 영어회화
- 안스 템플릿
- Android
- 코틀린
- android studio
- 문제풀이
- 코딩문제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |