Java
-
제네릭 클래스(Generic Class)란? Generic Class는 직역하면 포괄적인 클래스입니다. 여기서 포괄적이라는 의미는 특정 타입만을 다루지 않고 여러 종류의 타입을 일반화시켜 표현함을 나타냅니다. 즉 Integer만 다루는 계산기가 아니라 Integer, Double 등 숫자와 관련한 Wrapper Class 들도 사용할 수 있도록 일반화한 계산기를 만들고자 하는 것이죠. 그렇지 않으면 모든 Number 클래스에 대한 계산기 클래스를 일일이 하나하나 만들어줘야 할테니까요. 제네릭 클래스 예제 - 탈 것과 회사 간단한 예제를 통해 제네릭 클래스를 보여드리겠습니다. 여기 탈 것(Vehicle) 클래스가 있습니다. 그리고 탈 것 종류(Truck, SUV, Bicycle)에 따라 회사를 만들고자 합..
[JAVA] 제네릭 클래스(Generic Class)제네릭 클래스(Generic Class)란? Generic Class는 직역하면 포괄적인 클래스입니다. 여기서 포괄적이라는 의미는 특정 타입만을 다루지 않고 여러 종류의 타입을 일반화시켜 표현함을 나타냅니다. 즉 Integer만 다루는 계산기가 아니라 Integer, Double 등 숫자와 관련한 Wrapper Class 들도 사용할 수 있도록 일반화한 계산기를 만들고자 하는 것이죠. 그렇지 않으면 모든 Number 클래스에 대한 계산기 클래스를 일일이 하나하나 만들어줘야 할테니까요. 제네릭 클래스 예제 - 탈 것과 회사 간단한 예제를 통해 제네릭 클래스를 보여드리겠습니다. 여기 탈 것(Vehicle) 클래스가 있습니다. 그리고 탈 것 종류(Truck, SUV, Bicycle)에 따라 회사를 만들고자 합..
2023.12.17 -
자바의 이벤트 처리 이벤트는 마우스 클릭, 키 입력, 외부로부터의 데이터 수신 등 사용자의 입력을 다루는 것입니다. 이러한 이벤트를 자바에서 처리할 때 아래 리스트와 같은 프로세스를 거쳐서 진행됩니다. 사용자가 마우스로 JButton 컴포넌트를 클릭한다. 마우스 입력을 전달받은 자바 가상 기계는 이벤트 분배 스레드에게 마우스 클릭에 대한 정보를 보낸다. 이벤트 분배 스레드는 이벤트에 관한 정보를 담은 이벤트 객체를 생성한다. 이벤트 분배 스레드가 JButton에 연결된 이벤트 리스너를 찾아 호출한다 이때 이벤트 객체를 인자로 전달한다. 이벤트 리스너(Event Listener) 란? 위 프로세스에서 주의깊게 봐야 하는 것은 이벤트 리스너입니다. 이벤트를 처리하려면 개발자가 구현해야 하는 interface..
[JAVA] Swing GUI 기초(3) - 이벤트 리스너자바의 이벤트 처리 이벤트는 마우스 클릭, 키 입력, 외부로부터의 데이터 수신 등 사용자의 입력을 다루는 것입니다. 이러한 이벤트를 자바에서 처리할 때 아래 리스트와 같은 프로세스를 거쳐서 진행됩니다. 사용자가 마우스로 JButton 컴포넌트를 클릭한다. 마우스 입력을 전달받은 자바 가상 기계는 이벤트 분배 스레드에게 마우스 클릭에 대한 정보를 보낸다. 이벤트 분배 스레드는 이벤트에 관한 정보를 담은 이벤트 객체를 생성한다. 이벤트 분배 스레드가 JButton에 연결된 이벤트 리스너를 찾아 호출한다 이때 이벤트 객체를 인자로 전달한다. 이벤트 리스너(Event Listener) 란? 위 프로세스에서 주의깊게 봐야 하는 것은 이벤트 리스너입니다. 이벤트를 처리하려면 개발자가 구현해야 하는 interface..
2023.12.05 -
컴포넌트(Component) 란? 컴포넌트는 GUI에서 버튼, 텍스트 상자, 레이블 등의 요소들을 뜻하는 단어입니다. GUI를 구성하는 것이라면 모두 포함되기 때문에 JFrame도 컴포넌트 중에 하나입니다. 다만 JFrame처럼 다른 컴포넌트를 포함할 수 있는 컴포넌트는 컨테이너라고 불리며 그렇지 못하는 컴포넌트를 순수 컴포넌트라고 합니다. 컴포넌트 상속 관계 AWT와 Swing의 모든 GUI 컴포넌트들은 반드시 Component 클래스를 상속받습니다. 아래 표에서 JComponent 클래스를 상속받는 Swing 컴포넌트의 일부 종류와 관계를 알아볼 수 있습니다. 눈여겨 보시면 이 다이어그램에서 대표적인 컴포넌트인 JFrame은 보이지 않는데요, 그 이유는 JFrame, JApplet, JDialog는 ..
[JAVA] Swing GUI 기초(2) - 컴포넌트컴포넌트(Component) 란? 컴포넌트는 GUI에서 버튼, 텍스트 상자, 레이블 등의 요소들을 뜻하는 단어입니다. GUI를 구성하는 것이라면 모두 포함되기 때문에 JFrame도 컴포넌트 중에 하나입니다. 다만 JFrame처럼 다른 컴포넌트를 포함할 수 있는 컴포넌트는 컨테이너라고 불리며 그렇지 못하는 컴포넌트를 순수 컴포넌트라고 합니다. 컴포넌트 상속 관계 AWT와 Swing의 모든 GUI 컴포넌트들은 반드시 Component 클래스를 상속받습니다. 아래 표에서 JComponent 클래스를 상속받는 Swing 컴포넌트의 일부 종류와 관계를 알아볼 수 있습니다. 눈여겨 보시면 이 다이어그램에서 대표적인 컴포넌트인 JFrame은 보이지 않는데요, 그 이유는 JFrame, JApplet, JDialog는 ..
2023.11.28 -
Swing 이란? Swing은 자바에서 GUI 응용 프로그램을 쉽게 제작에 도움을 주기 위해 순수 자바 언어로 제작된 GUI 컴포넌트를 제공하는 패키지입니다. AWT(Abstract Windowing Toolkit)라는 기본적인 자바 GUI 패키지의 클래스들을 상속받는 클래스들로 구성되어 있습니다.(AWT의 고급 버전인 셈이죠!) 이때 이 GUI 클래스를 컴포넌트라고 따로 부르는데요, Swing과 AWT는 기본적인 버튼, 텍스트 입력창 뿐만 아니라 스크롤을 지원하는 사진창, 파일 경로들을 보여주는 트리 등 다양한 컴포넌트를 지원합니다. 그럼 로그 창을 벗어나 새로운 응용 프로그램으로 넘어가보도록 하겠습니다! 더보기 AWT와 Swing, 이 둘의 차이점은 바로 운영체제 의존성입니다. AWT는 운영체제의 도..
[JAVA] Swing GUI 기초(1) - JFrameSwing 이란? Swing은 자바에서 GUI 응용 프로그램을 쉽게 제작에 도움을 주기 위해 순수 자바 언어로 제작된 GUI 컴포넌트를 제공하는 패키지입니다. AWT(Abstract Windowing Toolkit)라는 기본적인 자바 GUI 패키지의 클래스들을 상속받는 클래스들로 구성되어 있습니다.(AWT의 고급 버전인 셈이죠!) 이때 이 GUI 클래스를 컴포넌트라고 따로 부르는데요, Swing과 AWT는 기본적인 버튼, 텍스트 입력창 뿐만 아니라 스크롤을 지원하는 사진창, 파일 경로들을 보여주는 트리 등 다양한 컴포넌트를 지원합니다. 그럼 로그 창을 벗어나 새로운 응용 프로그램으로 넘어가보도록 하겠습니다! 더보기 AWT와 Swing, 이 둘의 차이점은 바로 운영체제 의존성입니다. AWT는 운영체제의 도..
2023.11.23 -
캐스팅 (Casting) '어떤 배우를 캐스팅했다'라는 말에도 쓰이는 캐스팅은 영어 단어로 '배역 선정'이다. 말의 뜻과 비슷하게 자바에서도 캐스팅은 타입 변환을 의미한다. 특정 타입의 객체 또는 변수가 다른 타입으로 바뀌는 것인데, 인스턴스(클래스 객체)에도 업캐스팅, 다운캐스팅이라는 총 두 가지 방법을 이용할 수 있다. 이 캐스팅 작업을 통해 메소드에서 객체를 사용할 때 특정 클래스로 보편화하여 그 클래스의 메소드를 사용하는 등 코드 일반화를 할 수 있다. 이 부분은 추후에 제네릭 클래스와 메소드에서 다룰 예정이다. 업캐스팅 (Upcasting) 자바에서 서브 클래스(자식 클래스)는 슈퍼 클래스(부모 클래스)로부터 모든 멤버와 메소드를 상속받는다. 따라서 부모 클래스로 변환해도 아무런 문제가 없다. ..
[Java] 업캐스팅과 다운캐스팅캐스팅 (Casting) '어떤 배우를 캐스팅했다'라는 말에도 쓰이는 캐스팅은 영어 단어로 '배역 선정'이다. 말의 뜻과 비슷하게 자바에서도 캐스팅은 타입 변환을 의미한다. 특정 타입의 객체 또는 변수가 다른 타입으로 바뀌는 것인데, 인스턴스(클래스 객체)에도 업캐스팅, 다운캐스팅이라는 총 두 가지 방법을 이용할 수 있다. 이 캐스팅 작업을 통해 메소드에서 객체를 사용할 때 특정 클래스로 보편화하여 그 클래스의 메소드를 사용하는 등 코드 일반화를 할 수 있다. 이 부분은 추후에 제네릭 클래스와 메소드에서 다룰 예정이다. 업캐스팅 (Upcasting) 자바에서 서브 클래스(자식 클래스)는 슈퍼 클래스(부모 클래스)로부터 모든 멤버와 메소드를 상속받는다. 따라서 부모 클래스로 변환해도 아무런 문제가 없다. ..
2023.11.10