High Level Programming Language(116)
-
Lesson: Classes
리플렉션이란, 자바와 같은 프로그래밍 언어에서 프로그램이 런타임 시점에 자기 자신을 검사하고 수정할 수 있는 기능을 말합니다. 리플렉션을 통해 클래스, 메서드, 필드 등의 구조적 요소에 대한 정보를 동적으로 탐색하고 조작할 수 있습니다. 즉, 프로그램이 자신의 코드에 대한 메타데이터를 읽고, 이 메타데이터를 바탕으로 실행 시 동적으로 행동을 바꿀 수 있게 해줍니다. 자바에서 리플렉션은 주로 java.lang.reflect 패키지에 포함된 클래스를 사용하여 구현됩니다. 이 패키지에는 Class, Method, Field, Constructor 등의 클래스가 포함되어 있으며, 이를 통해 클래스의 구조를 조사하거나 메서드를 호출하는 등의 작업을 할 수 있습니다.리플렉션의 주요 특징 및 기능:1. 클래스 및 객..
2024.05.27 -
Using Java Reflection
Using Java Reflection 리플렉션은 자바 프로그래밍 언어의 기능 중 하나입니다. 이를 통해 실행 중인 자바 프로그램이 스스로를 검사하거나 "Introspect"하고, 프로그램의 내부 속성을 조작할 수 있습니다. 예를 들어, 자바 클래스가 모든 멤버의 이름을 얻어 이를 표시하는 것이 가능합니다."Introspect"는 프로그램이 실행 중에 자기 자신을 검사하고 그 내부 구조나 속성에 대해 정보를 얻는 능력을 의미합니다. 자바에서 리플렉션을 통해 수행되는 이러한 자기 검사는 "introspection"이라고 부릅니다. 구체적으로 introspection은 다음과 같은 작업을 포함할 수 있습니다: 1. 클래스 구조 탐색: 클래스의 이름, 패키지, 부모 클래스, 구현된 인터페이스 등을 얻을 수 있..
2024.05.27 -
자바 람다의 "타겟 타입(Target Type)"이란?
람다의 타겟 타입(Target Type)은 자바에서 람다 표현식이 작동하는 핵심 개념 중 하나로,람다를 사용할 수 있는 맥락과 타입 추론이 어떻게 이뤄지는지를 이해하는 데 중요합니다.🎯 자바 람다의 "타겟 타입(Target Type)"이란?✅ 정의람다 표현식은 단독으로는 타입이 없습니다.람다는 어떤 인터페이스에 대입되느냐에 따라 타입이 결정되며, 이 인터페이스 타입을 "타겟 타입(Target Type)"이라고 부릅니다. 자바에서 람다는 함수형 인터페이스(Functional Interface)에만 대입 가능하며,람다가 대입되는 함수형 인터페이스가 곧 람다의 타겟 타입입니다.📌 예제 1 – 기본적인 타겟 타입 사용@FunctionalInterfaceinterface Printer { void pri..
2024.05.27 -
Lesson: Classes and Objects [Objects, More on Classes]
Objects일반적인 자바 프로그램은 많은 객체를 생성하며, 이 객체들은 메서드를 호출하여 상호 작용합니다. 이러한 객체 상호 작용을 통해 프로그램은 GUI 구현, 애니메이션 실행, 네트워크를 통한 정보 송수신 등 다양한 작업을 수행할 수 있습니다. 객체가 생성된 목적을 다하면, 해당 객체의 자원은 다른 객체에서 재사용할 수 있도록 회수됩니다. 다음은 CreateObjectDemo라는 작은 프로그램으로, 이 프로그램은 하나의 Point 객체와 두 개의 Rectangle 객체를 생성합니다. 이 프로그램을 컴파일하려면 세 개의 소스 파일이 모두 필요합니다.public class Point { public int x = 0; public int y = 0; // a constructor! pu..
2024.05.27 -
Lesson: Classes and Objects [Classes]
이제 자바 프로그래밍 언어의 기본에 대한 지식을 갖추었으므로, 자신만의 클래스를 작성하는 방법을 배울 수 있습니다. 이 수업에서는 멤버 변수[필드], 메서드, 생성자를 선언하는 것을 포함하여 자신의 클래스를 정의하는 방법에 대한 정보를 제공합니다. 자신의 클래스를 사용하여 객체를 생성하고, 생성한 객체를 사용하는 방법을 배우게 됩니다. 이 수업에서는 또한 클래스 내에 다른 클래스를 중첩[nested]시키는 방법과 열거형(enum)에 대해서도 다룹니다. Classes객체 지향 개념을 소개하는 수업에서는 자전거 클래스(bicycle class)를 예제로 사용했으며, 경주용 자전거, 산악 자전거, 탠덤 자전거를 하위 클래스(subclass)로 예시했습니다. 다음은 클래스 선언 개요를 제공하기 위한 자전거 클래..
2024.05.27 -
Lesson: Control Flow Statements
소스 파일 내부의 statements은 일반적으로 위에서 아래로, 순서대로 실행됩니다. 그러나 제어 흐름 statements은 결정 만들기, 반복, 분기를 사용하여 실행 흐름을 분할함으로써 프로그램이 조건부로 특정 코드 블록을 실행할 수 있도록 합니다. 이 섹션에서는 자바 프로그래밍 언어가 지원하는 결정-만들기 statement(if-then, if-then-else, switch), 반복 statement(for, while, do-while), 그리고 분기[branch] statement(break, continue, return)에 대해 설명합니다.※ "if-then"이라는 용어는 if 조건문의 조건이 참(true)일 경우 실행될 코드 블록을 실행한다는 의미입니다. 자바에서는 이 구조를 중괄호 {}..
2024.05.08