본문 바로가기
728x90

java 5

Property - 프로퍼티 기존에 Java로 공부를 하다가 C#을 봤는데 매우 흥미로운 기능이 있어서 소개해볼까 한다. 제목에 쓴 property라는 것이다. 프로퍼티란 C#에서 쓰는 메소드인데 쉽게 말하자면, getter와 setter를 가진 변수? 라고 할 수 있겠다. 이것도 어렵다. 그러니까 프로퍼티는 멤버변수(속성) + getter/setter 이다. 흥미를 느낀 이유는 프로퍼티를 사용하면 코드가 매우 간결해진다. 아래 예제를 보여주겠다. 먼저, Person이라는 클래스를 자바로 표현해봤다. 물론, 에디터에서 getter/setter를 간소화해서 보여주는 기능도 있고 자동 생성해주는 기능도 있으나, 뭔가 길다. public class JavaPerson { private int personId; private string .. 2020. 7. 9.
자바 프로젝트 - 쌈국지 [ 작품 소개 ] 삼국지를 배경으로 한 게임입니다. 유비를 주인공으로 원소, 조조, 동탁, 손견, 유언 등을 처치하여 통일을 하는 것이 미션입니다. 시대적 배경에 따라 184년부터 시작하며, 280년이 되기 전까지 미션을 성공해야합니다. [ 주요 기능 ] 1. 전쟁 - 상대를 선택할 수 있고, 5:5 턴제로 진행됩니다. 책사가 군사로 임명되어 있다면 책략을 통해 적에게 피해를 줄 수 있습니다. 무장은 일반공격과 스킬을 사용할 수 있습니다. 전쟁에서 승리하면 금, 명성, 무장 레벨업 등을 얻을 수 있습니다. 2. 수색 - 미니게임 형식으로 진행되며, 랜덤으로 도적떼 또는 백성들을 만날 수 있습니다. 도적떼를 만나면 소탕을 통해 금을 획득합니다. 백성들을 만나면 식량을 베풀어 백성들 중 일부가 병사로 지원합.. 2020. 5. 28.
JavaFX *** 이 개념은 "이것이 자바다. 신용권의 Java 프로그래밍 정복" 을 보고 정리한 것입니다. *** JavaFX.. 자바로 GUI 애플리케이션을 만들 때 쓰인다. (우리가 일반적으로 컴퓨터에서 실행시키는 프로그램을 생각하면 된다.) 역사를 짧게 보자면 이전에 AWT(Abstract Window Toolkit) 이라고 하는 자바 라이브러리가 있었는데 당시 상황이 인터넷이 활성화되지 않았기에 운영체제에서 제공하는 네이티브 UI 컴포넌트를 사용했다. 근데 문제는 운영체제마다 각기 다른 컴포넌트를 제공하기에 보여지는게 달라 사용자들의 불편함을 초래했다. 이를 개선해 동일한 UI를 제공하려고 Swing이 나왔다. 근데 시간이 흘러 운영체제의 네이티브 UI 에서 애니메이션과 시각효과를 보여주면서, 사람들은 네.. 2020. 5. 17.
자바 (람다식, Lambda Expression) *** 이 개념은 "이것이 자바다. 신용권의 Java 프로그래밍 정복" 을 보고 정리한 것입니다. *** 람다식(Lambda Expression)이란 ? 역사를 잠깐 보자면... 이전에 함수적 프로그래밍 언어들이 있었는데 학계를 제외하고는 큰 호응을 얻지 못했다고 한다. 그러다가 최근 들어 함수적 프로그래밍이 다시 부각되고 있는데 이유는 병렬 처리와 이벤트 지향 프로그래밍에 적합하기 때문이라고 한다. 그래서 객체 지향 프로그래밍과 함수적 프로그래밍을 혼합해 더욱 효율적인 프로그래밍이 될 수 있도록 개발 언어가 변하고 있다고 한다. 자바는 8부터 람다식을 지원하면서 기존 코드에서 변화가 많이 생겼다. 람다식은 수학자 알론조 처치(Alonzo Church) 가 발표한 람다 계산법에서 사용된 식으로, 이를 제.. 2020. 5. 8.
자바 (제네릭, Generic) *** 이 개념은 "이것이 자바다. 신용권의 Java 프로그래밍 정복" 을 보고 정리한 것입니다. *** 채팅을 구현하려고 TCP, socket 등을 공부하다가 이상한 길로 새어 제네릭(Generic)이란 개념을 보게 되었다. 이전에 개발하면서 계속 써왔던 것인데, 이게 제네릭인줄은 이번에 처음 알았다. 그냥 많이 봤던 걸 예시로 들어주면 Hashmap hashmap = new Hashmap(); 이런 거다. 여기서 어떤게 제네릭이냐면 다이아몬드 연산자 로 표현된 부분이다. 그렇다면 제네릭은 왜 사용하는가 ? 1. 타입 에러를 강하게 체크한다고 함.. 나중에 실행중에 타입 에러가 뜨는걸 막기 위해 컴파일 할때 부터 강하게 타입체크를 함 2. 타입 변환(Casting)을 제거한다고 함.. 비제네릭 코드는 .. 2020. 5. 8.
728x90