본문 바로가기

언어공부/Java

(83)
자바 람다식(Lambda Expression, 익명함수), 함수형 인터페이스(Functional Interface), 메소드 참조 자바 람다식(Lambda Expression)에 대해서 알아보자. 람다식(Lambda Expression) 람다식은 간단히 말해서 메소드를 하나의 식으로 표현한 것이다. 람다식은 함수를 간략하면서도 명확하게 표현할 수 있게 해준다. 메소드를 람다식으로 표현하면 메소드의 이름과 반환값이 없어지므로, 람다식을 익명함수라고도 한다. 람다식은 오직 람다식 자체만으로 메소드의 역할을 대신할 수 있다. 람다식은 메소드의 매개변수로 전달되어지는 것이 가능하고, 메소드의 결과로 반환될 수도 있다. 람다식으로 인한 메소드를 변수처럼 다루는 것이 가능해진 것이다. 람다식에 선언된 매개변수의 타입은 추론이 가능한 경우는 생략할 수 있는데, 대부분의 경우에 생략이 가능하다. 람다식에 반환타입이 없는 이유도 항상 추론이 가능하..
자바 내부 클래스의 종류와 익명클래스(anonymous class) 클래스의 종류와 익명클래스(anonymous class)에 대해서 알아보자. 클래스의 종류 클래스의 종류는 아래의 표와 같다. 내부 클래스 특징 인스턴스 클래스 (instance class) 외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 인스턴스 멤버처럼 다루어진다. 주로 외부 클래스의 인스턴스 멤버들과 관련된 작업에 사용될 목적으로 선언된다. 정적 클래스 (static class) 외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 static멤버처럼 다루어진다. 주로 외부 클래스의 static멤버, 특히 static메소드에서 사용될 목적으로 사용된다. 지역 클래스 (local class) 외부 클래스의 메소드나 초기화블럭 안에 선언하며, 선언된 영역 내부에서만 사용될 수 있다. 익..
자바 내부클래스 (inner class), 내부인터페이스 자바 내부클래스에 대해서 알아보자 내부클래스(inner class) 내부 클래스는 클래스 내에 선언된 클래스이다. 클래스에 다른 클래스를 선언하는 이유는 두 클래스가 긴밀한 관계에 있기 때문이다. 한 클래스를 다른 클래스의 내부 클래스로 선언하면 두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 클래스를 감춤으로서 코드의 복잡성을 줄일 수 다는 장점(캡슐화)이 있다. 여기서 A는 외부클래스, B와 C는 내부 클래스(외부클래스$내부클래스명.class 파일로 컴파일), D는 지역클래스(외부클래스명$번호 지역클래스명.class파일로 컴파일)이다. 이때 내부 클래스는 A를 제외하고 다른 클래스에서 잘 사용되지 않아야 한다. 내부클래스는 클래스 내에 선언된다는 점을 제외하고는 일반적인..
자바 열거형(enum) 자바 열거형(enum)에 대해서 알아보자 열거형(enum) 열거형은 여러 상수를 선언해야 할 때, 편리하게 선언할 수 있는 방법이다. 상수가 많을 때는 코드가 불필요하게 길어지기 때문에 열거형을 이용하면 간단히 상수를 선언할 수 있다. 열거형을 정의하는 방법은 enum 열거형이름 {상수명1, 상수명2, ...} 이다. ex) 월~일을 상수로 정의하는 Week은 아래와 같다. 열거형에 정의된 상수를 사용하는 방법은 "열거형이름.상수명"이다. 클래스의 static변수를 참조하는 것과 동일하다. 위의 문장에서 아래와 같이 코드를 추가했다. 열거형 상수간의 비교에는 '=='를 사용할 수 있다. 그러나 >,
자바 JAVA FX CSS 스타일 적용 자바 JAVA FX CSS 스타일 적용에 대해서 알아보자. JAVA FX CSS 스타일 적용 JAVA FX UI를 담당하는 컨테이너 및 컨트롤은 CSS(Cascading Style Sheets)를 적용해서 모양 및 색상을 변경할 수 있다. 이것은 HTML에 CSS를 적용하는 것과 유사하다. CSS를 적용하는 방법은 인라인 스타일(XML에 직접)과 외부 CSS파일 적용법이 있다. 인라인 스타일법 이 방법은 컨테이너 또는 컨트롤에 스타일 속성값을 직접 정의하기 때문에 쉽고 빠르게 모양과 색상을 변경할 수 있다. 하지만 동일한 스타일을 적용하는 컨테이너와 컨트롤이 많아질수록 중복 코드가 늘어나는 단점이 있다 또한 레이아웃과 CSS가 뒤섞여 추후 유지보수가 어렵다. ex) 외부 CSS 파일 적용법 인라인 스타일..
자바 JAVA FX 개요 및 JAVA FX 이클립스 연동하는 법 및 JAVA FX 레이아웃 자바 JAVA FX에 대해서 알아보자. JAVA FX JAVA FX는 사용자 애플리케이션을 개발하기 위한 그래픽과 미디어의 패키지를 말한다. JAVA FX는 자바 7버전부터 JDK에 포함되어 있기 때문에 별도의 SDK설치 필요 없이도 바로 사용할 수 있다. JAVA FX는 스윙보다 더 가벼워지고 더 강력해졌고, 데스크탑 UI 애플리케이션을 개발할 수 있도록 가볍고 풍부한 UI를 제공하고 있다. 2007년에 JAVA FX1.0이 나왔는데 JAVA FX 스크립트 언어로 개발된 프로그램을 자바가상머신에서 실행되는 구조로 되어있다. 애니메이션과 시각적인 효과를 내는데 최적화 되었지만, 프로그래머들이 새로운 언어를 또 익혀야 하기 때문에 멀리해 2011년에 자바 언어외에 별도의 언어가 필요없는 JAVA FX2.0..
자바 swing(스윙)- 그래픽 프로그래밍, 자바 좌표계 자바 그래픽 프로그래밍에 대해서 알아보자. 그래픽 프로그래밍 프레임 위에 그래픽으로 표시해보자. 일단 자바에서는 프레임은 다른 컴포넌트를 넣어두는 컨테이너의 역할로 설계되었다. 따라서 다른 컴포넌트 위에 그린 후에 그 컴포넌트를 프레임에 추가하는 것이 좋다. JPanel은 그림을 그릴 수 있는 서피스를 가지고 있고, 동시에 컨테이너의 역할을 하기 때문에 버튼이나 텍스트 필드와 같은 컴포넌트를 넣을 수 있어 사용자 인터페이스와 그래픽을 동시에 구현할 수 있다. JFrame과 JPanel을 상속받아 작성하고, JPanel의 각종 메소드를 오버라이딩해서 추가적인 기능을 쉽게 구현할 수 있다. paintComponent(Graphics g)메소드 컴포넌트에 그림을 그리기 위해서는 컴포넌트가 가지고 있는 pain..
자바 swing(스윙) 자바 swing에 대해서 알아보자. swing(스윙) AWT 다음으로 Swing(스윙)이 나왔다. 스윙은 AWT와는 달리, 컴포넌트가 자바로 작성되어 있기 때문에 어떤 플랫폼에서도 일관된 화면을 제공한다. 또한 AWT에 없는 다양한 컴포넌트들을 제공한다. 스윙은 AWT를 대체하기 위하여 AWT의 컴포넌트 이름 앞에 J를 붙인 동일한 기능을 하는 컴포넌트들을 대체용으로 제공한다. 스윙은 다양한 룩앤필(look and feel, 각각의 운영체제가 지원하는 GUI 외관)을 제공한다. 룩앤필에 따라서 약간씩 외관이 달라진다. 1. gui . 스윙은 보다 더 세련되고 다양한 형태의 를 제공한다. 2. 스윙을 사용할려면 스윙 기본 패키지인 javax.swing을 import을 해야 한다. 3. 스윙 컴포넌트는 기존..