목록Computer Engineering/Java (14)
Inor
- Casting 캐스팅은 프로그래밍 언어에서 자료형을 변환하는 연산입니다. 캐스팅 연산이라고 부르며 자바에서 2번째로 높은 연산 우선순위를 갖고 있습니다. 캐스팅 연산은 기본형 변수(int, double 등), 참조형 변수(객체를 참조하는 변수)에서 사용 가능합니다. 같은 종류의 변수끼리 캐스팅이 가능하고 기본형과 참조형 사이에는 캐스팅 연산이 불가능합니다. 캐스팅 연산이 중요한 이유 중 하나는 객체지향 프로그래밍(OOP) 특성인 다형성과 관련되어있기 때문입니다. 이 글에서는 기본형이 캐스팅 되는 과정을 보며 캐스팅 연산의 특징을 알아보겠습니다. 이후 다른 글에서 업 캐스팅과 다운 캐스팅을 알아보며 참조형 변수에서 캐스팅이 실행되는 과정을 학습하고 다형성이 어떻게 실현되는지 알아보겠습니다. - 기본형 ..
- String String은 문자열을 나타내는 클래스 입니다. 자바에서 가장 자주 사용되는 클래스 중 하나 입니다. 그러나 String 클래스의 특징을 제대로 이해하지 못하고 사용하는 사람들이 많다고 생각합니다. JVM이 메모리 영역에 String 객체를 할당하는 방법을 보면 String 객체가 갖고있는 특성을 이해할 수 있습니다. - String 객체 생성 String 클래스를 이용해서 String 객체를 생성하는 방법이 몇 가지 있는데, 각 방법을 살펴보겠습니다. 아래와 같은 코드가 있고 "StringA" 문자열을 만드는 방법들입니다. 다음과 String을 6번 만드는 시도를 했을때 과연 JVM에서 몇개의 객체를 Heap 영역에 생성해주는지 생각해 보시길 바랍니다. 아래 출력 코드는 각 참조객체 H..
- Generic Generic은 클래스 내부에서 사용할 변수의 형태를 외부에서 지정하는 방법입니다. 주로 멤버 변수의 타입이나 메소드 반환 타입을 외부에서 지정해줄때 사용합니다. Generic을 사용 할때 개발자가 얻는 장점이 있습니다. 이 글에서는 장점을 중심으로 Generic의 기초적인 사용법을 알아보도록 하겠습니다. - 사용법 class Box { T item; public Box(T item) { this.item = item; } } public class mGeneric { public static void main(String[] args){ Box mBox = new Box(new String("선물")); } } 기본 적인 사용법은 위의 코드와 같습니다. Box 클래스를 정의했고 mai..
enum(열거형) 자바에서 상수를 표현할때 enum 키워드를 사용 합니다. enum이 자바에 추가되기 전에 사용하던 상수를 표현하는 몇 가지 방법이 있었습니다. 하지만, enum이 추가된 후에 대부분의 자바 개발자가 enum을 사용해서 상수를 표현할 정도로 중요한 기술 됐습니다. enum을 사용하면 상수라는 것을 명확히 표현할 수 있고 코드의 가독성이 증가 합니다. 자신만의 네임스페이스를 갖고 있으며 형 안정성을 보장 해줍니다. 또한, 원시 데이터 타입인 int와 char과 같이 switch 문에서 사용이 가능 합니다. 아래는 enum을 사용하는 방법들 입니다. enum Currency{ DOLLLAR, EURO, YEN, YUAN } public class EnumExam { public static ..
상수 상수란 변수의 반대로 변하지 않는 값을 의미 합니다. 프로그램에서는 상수를 통해서 객체의 상태를 나타내기도 합니다. 자바는 아니지만 인턴을 하면서 Unity로 개발할 때 객체의 상태를 표현 하기도 했습니다. 객체의 상태(이동, 정지, 사망, 공격)를 정의하고 해당 객체가 그에 맞는 행동을 하도록 했습니다. 또한, 안드로이드를 개발할 때는 서버와의 통신을 할때 페이지 url, 페이지 파라미터(쿼리스트링) 등을 상수로 정의하여 사용 했습니다. final static Unity에서는 C#에서 제공하는 enum(열거형)을 사용 했지만 안드로이드에서 상수를 사용 할때는 final static 키워드를 사용해서 상수를 정의 했습니다. 아래는 final static을 이용해서 상수를 정의하는 코드 입니다. cl..
Runnable 자바에서 스레드를 구현할 때 Thread Class와 Runnable Interface를 이용 합니다. 둘의 뚜렷한 차이점은 클래스와 인터페이스라는 구현된 방식에서 발생 합니다. 자바에서는 한개 이상의 클래스를 상속 받을 수 없습니다. 다중 상속을 언어 차원에서 막았기 때문 입니다. 그렇기 때문에 Thread 클래스를 상속(extends) 받아서 스레드를 구현한 자식 클래스는 다른 클래스를 상속(extends) 받을 수 없습니다. 그러나 Runnable 인터페이스를 상속(implements) 받은 자식 클래스는 다른 클래스를 상속(extends) 받을 수 있습니다. 즉, 엄밀히 따지면 다중 상속은 아니지만 효과를 낼 수 있습니다. Runnable 인터페이스를 상속 받은 클래스도 Threa..