본문 바로가기
728x90

언어(Language)33

[Java] 패키지 패키지란?- 자바 클래스 파일들을 폴더처럼 묶어서 관리할 수 있게 해주는 기능 📦 쉽게 말하면: 클래스 파일들을 정리정돈하는 폴더 개념이라고 보면 된다. # 패키지를 사용하는 이유- 클래스 관리 : 비슷한 기능의 클래스를 하나의 폴더로 정리 가능 - 클래스 이름 충돌 방지 : 같은 이름의 클래스라도 패키지가 다르면 사용 가능 - 접근 제한 설정 가능 : public, default 등 접근 제어자를 통해 외부 공개 여부 설정 가능# 패키지 선언 방법// 클래스 파일 상단에 package 을 선언package com.myapp.util;public class MyUtils { public static void sayHi() { System.out.println("Hi!"); }}/.. 2025. 5. 9.
[Java] 람다식 람다식- Java 8 부터 도입된 함수형 프로그래밍 스타일의 문법- 인터페이스를 구현하는 객체 생성 코드를 수식 형태로 단순화 - 1개의 추상 메소드만 가진 인터페이스에서만 사용 가능 → 이런 인터페이스를 함수형 인터페이스라 하며, @FunctionalInterface 어노테이션으로 선언 가능 - 람다식 = 메서드를 간단한 식으로 표현한 것 # 람다식 문법- 매개변수 자료형은 인터페이스 정의에서 알 수 있으므로 자료형을 생략하고 변수 이름만 사용 가능- 매개변수가 1개면 괄호 생략 가능- 매개변수를 가지지 않으면 괄호만 남음- 실행할 코드에서 실행문이 1개이면 중괄호 생략 가능- 단, 실행문이 return문 뿐이라면 return과 세미콜론, 중괄호를 생략하고 1개의 수식만 적어야 함 인터페이스 객체변.. 2025. 5. 3.
[Java] 제네릭 제네릭(Generic)- 데이터 타입을 일반화 하는 기능- 클래스나 메서드를 만들 때 데이터 타입을 고정하지 않고, 나중에 사용할 때 타입을 지정할 수 있도록 만드는 문법- 타입은 참조형만 사용 가능ArrayList list = new ArrayList();// 여기서 부분이 제네릭! # 문법- 괄호 안에 타입 매개변수(타입 파라미터)를 표시함- 컴마(,)를 사용해 여러 타입 매개변수를 지정 가능- 타입 매개변수는 타입을 전달 받기 위한 것- 타입 파라미터의 이름은 관례적으로 E, K, V, N, T 등을 사용함접근제어자 class 클래스이름 {...} # 제네릭 문법 키워드 문법 의미 타입 매개변수 선언(일반적인 타입)상위 타입 제한 하위 타입 허용 (하한 제한) 모든 타입 허용 (읽기 전용)맵.. 2025. 5. 3.
[Java] Scanner 클래스 Scanner 클래스- java.util 패키지에 포함되어 있다. (기본 패키지 외의 패키지라 사용할 때 import를 해줘야함)- 주로 표준 입력(키보드) 으로부터 데이터를 입력 받을 때 사용- Scanner는 사용자의 입력을 공백(스페이스, 탭), 줄바꿈 등을 기준으로 토큰(단어) 으로 잘라서 읽음- 문자열을 공백이나 개행 문자 등을 기준으로 나눠서 다양한 타입(int, double, String 등)으로 변환해주는 기능 # 사용 예시import java.util.Scanner; // Scanner 클래스 임포트public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in).. 2025. 4. 24.
[C++] 주석 주석- 프로그램 내에 설명문을 넣은 것- 프로그램의 내용을 이해하기 쉽게 할 목적으로 사용- 컴파일러는 주석에 해당되는 부분은 번역하지 않고 건너뛴다.주석을 작성하는 방법 1'/*' 와 '*/' 사이에 주석을 넣는다.여러 행에 걸쳐 주석을 작성할 때 편리한 방법/* 주석입니다. *//* 주석이 됩니다. 주석이 됩니다. 주석이 됩니다. */ 주석이 되지 않습니다. 주석을 작성하는 방법 2두 개의 슬래시(//)를 입력하면 그 행의 나머지는 주석으로 간주한다.// 주석이 됩니다.// 주석이 됩니다.주석이 되지 않습니다. 2024. 12. 23.
[C++] C++ 프로그램의 작성 및 빌드 C++ 프로그램의 소스 파일소스 프로그램 파일- 처리하고자 하는 작업을 수행하는 C++ 프로그램 명령어들을 담고 있는 파일- 파일의 확장자 : '.cpp', '.cxx', '.C' 등을 사용헤더 파일- 클래스, 함수의 원형, 매크로, 전역변수 등 여러 소스 파일에 공통적으로 선언되는 내용을 담고있는 파일- 단독으로 컴파일되지 않고, #include라는 선행처리기 지시어에 의해 소스 프로그램 파일에 삽입되어 함께 컴파일 됨- 확장자 : '.h', '.hpp' 등을 사용C++ 프로그램의 빌드 과정 소스 파일(Source file)개발자 작성한 프로그램의 코드를 포함하는 파일컴파일러(Compiler) 소스 파일을 컴퓨터가 이해할 수 있는 명령으로 변역해야 하는데 이 과정을 컴파일(Compile) 이라고 하며,.. 2024. 12. 21.
[C++] C++ 개요 C++ 언어란?1979년 Bell 연구소의 비야네 스트롭스트룹(Bjarne Stoustrup)이 C 언어를 확장하여 만든 프로그래밍 언어C with Classes1983년 부터 C++ 라는 이름을 사용함주요 확장 내용객체지향 프로그래밍(클래스, 상속, 다형성 등), 일반화 프로그래밍(템플릿), 예외처리가 있음 C++ 언어의 표준 C++98 C++의 첫 번째 표준 객체지향 프로그래밍(OOP) 지원표준 템플릿 라이브러리(STL) 도입 (벡터, 리스트, 맵 등)예외 처리 (try, catch, throw) 표준화네임스페이스(namespace) 도입C++03 C++98의 결함 수정 및 소규모 개선 C++98 과 함께 "레거시 C++" 이라고 부름템플릿 관련 버그 수정표준 문서의 명확성 개선새로운 기능 추가는 없.. 2024. 12. 21.
[Java] Lombok 어노테이션 롬복 (Lombok) - Java 개발자가 보일러플레이트 코드를 줄이고 개발 생산성을 향상시키기 위한 라이브러리 - 어노테이션을 사용하여 컴파일 시점에 코드를 자동으로 생성해주는 기능을 제공 - 이를 통해 Getter, Setter, 생성자 등 반복적으로 작성해야 하는 코드를 자동으로 생성할 수 있음 @Getter - 필드에 대한 Getter 메서드 자동 생성 - 필드의 값을 반환하는 역할 - 필드의 접근제어자가 'private' 이 아닌 경우에만 생성 - 'static' 필드나 'final' 필드에는 생성 X @Setter - 필드에 대한 Setter 메서드 자동 생성 - 필드의 값을 설정하는 역할 - 필드의 접근제어자가 'private' 이 아닌 경우에만 생성 - 'final' 필드에는 생성 X @D.. 2024. 2. 24.
[Java] 생성자 생성자(Constructor) - 객체가 생성될 때 호출되는 특별한 메서드 - 객체의 초기화를 담당, 객체가 메모리에 할당될 때 자동으로 호출 - 주로 클래스 내부에 정의 - 클래스와 동일한 이름을 가짐 - 리턴 타입이 없음 - 인스턴스화 시 호출됨 ('new' 키워드) - 오버로딩 가능 # 생성자의 목적 - 주된 목적은 객체의 초기화 - 초기화 작업은 주로 멤버 변수의 값 설정, 리소스 할당, 객체 간의 관계 설정 등을 포함 # 객체의 생성과 생성자 호출 - 객체를 생성할 때 'new' 키워드를 사용 - 생성자는 객체가 생성될 때 자동으로 호출되어 초기화 작업을 수행 # 기본 생성자 (Default Constructor) - 클래스에 명시적으로 생성자를 작성하지 않으면 컴파일러가 자동으로 기본 생성자를.. 2024. 2. 21.
728x90