전체 글787 [Java]함수형 인터페이스(Functional Interface) 함수형 인터페이스(Functional Interface)란? Java 8에 도입된 함수형 인터페이스는 인터페이스가 함수처럼 동작하기 때문에 함수형 인터페이스라고 합니다. 함수형 인터페이스는 하나의 추상 메서드를 가지고 있어서 SAM 인터페이스(Single Abstract Method Interface)라고도 합니다. 함수형 인터페이스는 하나의 추상 메서드 외에도 정적 메서드, 기본 메서드, Object 클래스의 메서드를 가질 수 있습니다. 함수형 인터페이스 구문 함수형 인터페이스의 기본 구문은 다음과 같습니다. public interface MyFunctionInterface { public void myMethod(); } 위 예제는 구현되지 않은 단일 메서드만 포함되어 있으므로 함수형 인터페이스입니다.. Java/함수형 인터페이스 2022. 5. 10. [Java]람다식, 람다표현식(Lambda expression) 람다식(Lambda expression) Java 8에 도입된 람다식은 익명 함수로 메서드 이름이 존재하지 않으며 매개변수와 함수의 본문이 존재하는 메서드입니다. 화살표(->)는 매개변수와 메서드의 본문을 구분하기 위해 사용하는 람다 연산자입니다. 람다식 구문 람다식 구문은 다음과 같습니다. (매개변수) -> 메서드 본문 왼쪽에 매개변수를 작성하며 오른쪽에 메서드 본문을 구현합니다. 메서드 본문이 짧은 경우 중괄호를 생략할 수 있으며 반대로 본문의 소스코드가 많은 경우 중괄호를 사용할 수 있습니다. // 메서드 본문의 중괄호 생략 (x, y) -> x + y; // 메서드 본문의 중괄호 추가 (x, y) -> { // 함수형 인터페이스의 추상 메서드 반환 타입이 void가 아닌 경우 return문 작성 .. Java 2022. 5. 10. [C#]this 키워드 this 키워드 C#에서 this 키워드는 클래스 내부의 메서드 또는 생성자에서 현재 클래스의 인스턴스 멤버를 참조하는데 사용됩니다. 메서드의 매개변수와 인스턴스 변수의 이름이 같은 경우 구분하기 위해 사용되기도 합니다. 즉, this 키워드는 자기 자신(생성된 객체)의 멤버를 접근하기 위해 사용되는 키워드입니다. 다음은 this 키워드를 사용하는 간단한 예제입니다. namespace ConsoleApp2 { class Program { string str; Program(string str) { this.str = str; Console.WriteLine("생성자에서 this: " + this); } static void Main(string[] args) { Program obj = new Progr.. C# 2022. 5. 9. [C#]접근 제한자(Access Modifier) - public, private, protected 접근 제한자(Access Modifier) C#의 접근 제한자(Access Modifier)는 접근 한정자라고 불리기도 하며, 타입(Class 및 Interface)의 범위뿐만 아니라 멤버(변수, 필드 및 메서드)의 접근 범위를 정의하는데 사용되는 기술입니다. 클래스 또는 클래스의 멤버를 접근 가능 여부는 접근 제한자에 의해 정의됩니다. C#의 5가지 접근 제한자 Private Public Protected Internal Protected Internal C#에는 5가지 접근 제한자가 존재합니다. 다음은 5가지 접근 제한자를 설명하기 전에 위에서 말한 타입과 멤버가 무엇인지 설명합니다. ※ Private Protected라는 접근 제한자도 존재하지만, C# 7.2 버전부터 사용할 수 있으므로 이번 포스.. C# 2022. 5. 8. [Java]리플렉션(Reflection) 리플렉션(Reflection)이란? 우리가 작성한 소스코드가 프로그램이 되기까지 컴파일러는 컴파일 타임에 소스코드가 문제없는지 확인합니다. 일반적으로 객체의 타입을 모르는데 특정 클래스의 메서드와 필드를 호출하는 경우 컴파일 에러가 발생하며, 특정 메서드와 필드를 호출하기 위해서는 해당 메서드와 필드가 존재하는 클래스를 타입으로 객체를 생생해야 합니다. 하지만, 프로그램을 개발하다 보면 객체의 타입은 모르지만 특정 클래스의 메서드 또는 필드를 호출해야 하는 경우가 있습니다. 이러한 상황에서 Reflection을 사용하여 문제를 해결할 수 있습니다. Java는 리플렉션(Reflection)이라는 API를 제공하여 런타임(프로그램이 실행 중)에 객체의 타입을 몰라도 특정 클래스의 필드 또는 메서드를 호출할 .. Java 2022. 5. 8. 1일 1포스팅 지켜야하는가? 불과 몇 년 전 미래보다는 현재 자신의 행복을 중요시하는 욜로(YOLO)족이 각광받았는데, 최근 들어 조기 은퇴를 꿈꾸는 파이어(FIRE)족이 각광받고 있습니다. 회사 월급만으로 파이어족이 어렵기 때문에 부업은 선택이 아닌 필수가 되었으며 대부분의 사람들은 진입장벽이 낮은 블로그와 유튜브를 선택합니다. 나도 이제 파워 블로거라는 모습을 상상하면서 블로그 관련 서적과 유튜브를 찾아보게 됩니다. 마케팅 전문가들이 전달하는 내용을 듣거나 보다 보면 몇 가지 공통점이 존재하는데, 그중 1일 1포스팅을 언급합니다. 전문가가 말하는대로 1일 1포스팅을 실천하면서 나도 파이어족이 된다는 상상을 하지만 현실은 뜻대로 되지 않습니다. 그럼에도 불구하고 전문가들은 1일 1포스팅을 언급하는 이유가 무엇인지? 개인적인 경험을.. 티스토리/티스토리 가이드 2022. 5. 7. [Java]배열에서 중복 제거하는 방법 이번 포스팅은 배열에서 중복 요소를 제거하는 방법을 소개합니다. LinkedHashSet 클래스 LinkedHashSet 클래스는 배열에서 중복 요소를 제거하는 가장 좋은 방법입니다. LinkedHashSet 클래스가 중복 제거에 좋은 이유는 두 가지 특징 때문입니다. 첫 번째 특징은 중복 요소를 제거합니다. 두 번째 특징은 순서를 유지하기 때문입니다. 다음은 LinkedHashSet 클래스 예제입니다. String[] strArray = new String[] {"B", "B", "C", "C", "A", "A", "A"}; // 배열을 LinkedHashSet으로 변환합니다. LinkedHashSet linkedHashSet = new LinkedHashSet( Arrays.asList(strArra.. Java/배열 2022. 5. 7. [Java]문자열을 문자열 배열로 변환(String to String Array) 문자열을 문자열 배열로 변환 이번 포스팅은 문자열을 문자열 배열로 변환하는 몇 가지 방법을 설명합니다. split() 메서드 문자열을 문자열 배열로 변환하기 위해 가장 많이 사용하는 방법은 String 클래스의 split() 메서드를 사용하는 것입니다. 특정 구분자로 문자열을 분리하고 분리된 문자열을 배열에 저장합니다. 다음 예제는 띄어쓰기를 기준으로 문자열을 분리합니다. String str = "Hello Java Programming!"; String[] strToStrArray = str.split(" "); for (int i=0; i < strToStrArray.length; i++) System.out.println("strToStrArray[" + i+ "]=" + strToStrArray[.. Java/문자열 2022. 5. 7. [Java]문자열 배열을 문자열로 변환(String Array to String) 이번 포스팅은 문자열 배열을 문자열로 변환하는 방법을 설명합니다. toString() 메서드 첫 번째 방법은 Arrays 클래스의 toString() 메서드를 사용하는 것입니다. toString() 메서드에 문자열 배열을 전달하면 문자열 표현이 반환됩니다. 문자열 표현은 대괄호에 배열 요소로 구성됩니다. String[] strArray = {"Hello", " ", "Java", " ", "Programming"}; String strArrayToString = Arrays.toString(strArray); System.out.println(strArrayToString); 실행 결과 [Hello, , Java, , Programming] StringBuilder.Append() 메서드 사용 문자열 배.. Java/문자열 2022. 5. 7. [C#]정적 생성자(Static Constructor) 정적 생성자(Static Constructor) C#에서 static 키워드를 사용하여 정적으로 생성된 생성자를 정적 생성자라고 합니다. 정적 생성자는 클래스의 인스턴스(객체)가 몇 개나 생성되는지에 상관없이 클래스가 처음 로드될 때 한 번만 호출됩니다. 정적 생성자는 클래스의 정적 필드(static field)를 초기화하는데 사용되며, 정적 생성자 내부에서 특정 로직을 구현할 수 있습니다. 정적 생성자와 마찬가지로 정적 멤버는 클래스의 인스턴스가 몇 개나 생성되는지에 상관없이 한 번만 만들어집니다. 정적 생성자 특징 클래스에서 정적 생성자는 오직 한 개만 존재합니다. 정적 생성자는 매개변수가 없어야 합니다. 정적 생성자는 클래스의 정적 멤버에 접근할 수 있습니다. 정적 생성자에는 접근 지정자(접근 제한.. C# 2022. 5. 5. [C#]복사 생성자(Copy Constructor) 복사 생성자(Copy Constructor) C#에서 복사 생성자는 생성자에서 동일한 클래스의 객체를 매개변수로 사용하는 경우 복사 생성자라고 합니다. 복사 생성자는 매개 변수가 존재하는 생성자에 포함되기도 하며, 복사 생성자는 새 인스턴스를 기존 인스턴스의 값으로 초기화할 때 유용합니다. 일반적으로 C#은 객체에 대한 복사 생성자를 제공하지 않으므로 필요에 따라 개발자가 직접 구현해야 합니다. 다음은 복사 생성자 구문입니다. class Person { // field... // 기본 생성자 public Person() { // Code... } // 복사 생성자 public Person(Person person) { // Code... } } 복사 생성자의 이름은 클래스 이름과 동일하며, 복사 생성자의.. C# 2022. 5. 5. [C#]생성자(Constructor) 생성자(Constructor) C#의 생성자는 클래스 인스턴스(객체)를 생성할 때마다 자동으로 실행되는 특수한 메서드입니다. 생성자는 클래스 내부에 존재하며, 두 가지 역할을 담당합니다. 첫 번째는 객체를 초기화하는 역할을 담당하고 두 번째 역할은 메모리 할당입니다. new 키워드를 사용하여 클래스 인스턴스를 생성할 수 있습니다. 생성자 특징 생성자 이름은 클래스 이름과 동일합니다. 생성자는 값을 반환하지 않으므로 반환 유형과 return문이 존재하지 않습니다. 생성자를 정의하지 않으면 클래스에서 기본 생성자라고 하는 암시적 생성자를 제공합니다. 생성자 예제 다음은 Program 클래스의 인스턴스를 생성하고 기본 생성자가 실행되는 예제입니다. class Program { Program() { Consol.. C# 2022. 5. 5. 이전 1 ··· 32 33 34 35 36 37 38 ··· 66 다음