자바

🔍 변수의 스코프(Scope)란?변수의 스코프(Scope)란 변수가 선언된 위치에 따라 접근할 수 있는 범위를 의미합니다. 적절한 스코프 설정은 메모리 사용 최적화, 코드 가독성 및 유지보수성 향상시키는 데 중요한 역할을 합니다.🏷️ 변수의 종류에 따른 스코프자바에서 변수는 선언 위치에 따라 지역변수(Local Variable), 멤버 변수(Member Variable)로 나뉘며, 멤버 변수는 다시 클래스 변수(Class Variable)와 인스턴스 변수(Instance Variable)로 구분됩니다.📌 지역 변수(Local Variable)특정 블록 {} 내에서만 사용할 수 있는 변수입니다.메서드 내에서 선언된 변수들은 해당 메서드 내에서만 접근이 가능합니다.블록이 끝나면 메모리에서 자동으로 해제..
스레드(Thread)의 기본 개념 및 생성 방법스레드는 프로세스 내에서 독립적으로 실행되는 작은 작업 단위를 의미합니다. 하나의 프로세스 내에서 여러 스레드를 생성해서 병렬로 작업을 처리할 수 있으며, 이를 멀티스레딩이라고 합니다. 자바에서는 기본적으로 멀티스레딩을 지원합니다. 기본적으로 자바는 Thread 클래스를 상속받거나 Runnable 인터페이스를 구현해서 스레드를 생성합니다.Thread 클래스 : 상속을 통해 스레드를 정의하는 방법입니다.Runnable 인터페이스 : 메인 클래스가 다른 클래스를 상속받을 수 있도록 독립적으로 스레드를 생성하는 방식입니다.// Thread 클래스를 상속받아 스레드 생성class MyThread extends Thread { public void run() {..
캡슐화(Encapsulation)란?캡슐화는 객체지향 프로그래밍의 중요한 개념으로, 객체 내부에서 데이터를 보호하고 외부에서 직접 접근할 수 없도록 막습니다. 이 과정에서 객체 내부 구현이 변경되더라도 외부 코드에 영향을 주지 않도록 해서, 유지보수성을 크게 향상시킬 수 있습니다. 즉, 데이터의 무결성 보호와 유연한 코드 수정이 주요 목적입니다.캡슐화의 주요 목적데이터의 직접적인 접근을 제한합니다.데이터를 수정하거나 가져올 때 검증 로직을 추가해서 안전하게 처리합니다.외부에 객체의 내부 구현을 숨기고, 필요한 정보만 노출해서 코드의 유연성을 높입니다.접근 제어자와 정보 은닉접근 제어자는 정보 은닉과 캡슐화를 구현하는 기본 수단입니다. 정보 은닉은 불필요한 데이터 노출을 막고, 객체의 외부에서 특정 속성에..
다형성(Polymorphism)의 개념과 원리다형성은 객체지향 프로그래밍의 핵심 개념 중 하나로, 동일한 메서드 호출이 객체의 실제 타입에 따라 다르게 동작할 수 있도록 합니다. 이를 통해 다양한 객체를 일관된 방식으로 처리할 수 있으며, 코드의 유연성과 확장성을 극대화할 수 있습니다.다형성의 구현 방식컴파일 타임 다형성 : 메서드 오버로딩을 통해 구현됩니다. 메서드 이름은 동일하지만 서로 다른 매개변수를 받는 여러 메서드를 정의하며, 호출 시점에 적합한 메서드가 선택됩니다.public class MathUtil { public int add(int a, int b) { return a + b; } public double add(double a, double b) { ..
추상화(Abstraction)란?추상화는 복잡한 현실 세계의 객체를 프로그램에서 다루기 쉽도록 필수적인 속성과 기능만을 남기고, 세부 사항은 감추는 과정입니다. 객체의 중요한 속성에 집중하고, 불필요한 세부 사항을 감춰서 설계의 간결함을 유지할 수 있습니다. 이는 객체지향의 중요한 개념 중 하나로 프로그램의 유지보수성을 높이고, 향후 확장성을 고려한 설계를 가능하게 합니다.추상 클래스 개념 및 작성 방법추상 클래스는 공통적인 속성이나 메서드를 정의하는 동시에, 일부는 구체적으로 구현하지 않고 하위 클래스에서 구현을 강제하는 클래스입니다. 추상 클래스는 직접 인스턴스를 생성할 수 없고, 반드시 상속받은 자식 클래스에서 구체화되어야 합니다. 추상 클래스는 abstract 키워드를 사용해서 정의합니다. 추상 ..
상속이란?상속(Inheritance)은 객체지향 프로그래밍에서 핵심 개념 중 하나로, 하나의 클래스가 다른 클래스의 속성과 메서드를 물려받아 재사용할 수 있는 기능입니다. 이를 통해 코드의 중복을 줄이고 유지보수를 쉽게 할 수 있으며, 다형성을 구현할 수 있는 기초가 됩니다.상속의 개념과 장점상속은 기존의 클래스(부모 클래스 또는 슈퍼 클래스)의 속성 및 메서드를 새로운 클래스(자식 클래스 또는 서브 클래스)가 상속받아 사용하는 것입니다. 자식 클래스는 부모 클래스의 모든 멤버(필드와 메서드)를 물려받으며, 이를 활용해 새로운 기능을 추가하거나 기존 기능을 수정(오버라이딩)할 수 있습니다.// 부모 클래스public class Animal { String name; void eat() { ..
📚 클래스와 객체의 개요객체지향 프로그래밍에서 클래스(Class)와 객체(Object)는 핵심 개념입니다. 클래스는 객체를 생성하기 위한 설계도이며, 객체는 그 설계도를 바탕으로 생성된 실체입니다. 속성(필드)과 메서드(기능)를 정의한 객체가 어떤 데이터를 가지고 어떤 동작을 할 수 있는지를 결정합니다. 클래스는 추상적인 개념으로, 구체적인 데이터를 가지고 있진 않지만, 객체를 생성할 수 있는 템플릿을 제공합니다. 클래스를 사용하면 코드가 더 구조적이고 재사용 가능해지며, 유지보수가 용이해집니다.🏗️ 클래스란?클래스는 객체를 생성하기 위한 템플릿('틀' 또는 '설계도')입니다. 클래스는 객체가 지닌 속성(필드)과 메서드(기능)를 정의합니다. 클래스 자체는 추상적인 개념으로, 객체를 만들기 위한 설계도..
그래프(Graph)란 무엇인가?그래프는 정점(Vertex)과 간선(Edge)으로 구성된 자료구조입니다. 각 정점은 데이터를 나타내고, 간선은 두 정점 간의 관계를 나타냅니다. 그래프는 네트워크 구조를 모델링하거나 경로 탐색, 순서 관계 등을 해결하는 데 사용됩니다.그래프의 기본 용어정점(Vertex) : 그래프의 기본 요소로 데이터를 저장합니다.간선(Edge) : 두 정점을 연결해서 관계를 나타냅니다. 방향이 있을 수도, 없을 수도 있습니다.그래프의 종류그래프는 간선의 방향성 여부와 가중치의 존재에 따라 여러 가지 유형으로 나눌 수 있습니다.1. 방향 그래프(Directed Graph)방향 그래프는 간선이 특정 방향을 가지는 그래프입니다. 정점 A에서 B로 연결되어 있을 때, 그 반대로는 연결되지 않는 ..
자바의 문자열(String)자바에서 String 클래스는 문자열을 다루는 매우 중요한 클래스로 다양한 기능을 제공합니다. 자바의 문자열은 불변(immutable)하며, 효율적으로 다루기 위해 다양한 메서드를 제공하고 있습니다.String Class의 이해자바에서 문자열을 생성하는 방법은 문자열 리터럴 방식과 new 키워드를 사용한 생성자 방식 두 가지가 있습니다.String str1 = "Hello"; // 문자열 리터럴String str2 = new String("Hello"); // String 객체 생성문자열 리터럴 : JVM은 문자열 리터럴을 String pool이라는 메모리 공간에 저장합니다. 동일한 리터럴 값이 여러 번 사용되면 새로운 객체를 생성하지 않고, String pool에 이미 저장한..
📝 절차지향 프로그래밍이란?절차지향 프로그래밍은 프로그램을 순차적인 절차로 구성하는 방법입니다. 이 방식은 주로 기능 중심으로 코드를 작성하며, 각 함수가 순차적으로 실행됩니다. 프로그램의 흐름을 제어하는 함수들을 통해 작업을 처리하는 방식입니다. 🔑 절차지향의 주요 특징순차적 처리 : 프로그램이 위에서 아래로 순서대로 실행됩니다.함수 중심 : 코드의 기능을 수행하는 독립적인 함수로 구성됩니다.데이터와 함수의 분리 : 함수와 데이터가 서로 독립적인 형태로 존재합니다.  🖥 절차지향 방식의 예시int add(int a, int b) { return a + b;}int main() { int result = add(5, 10); printf("Result: %d\n", result); ..
Gyunny
'자바' 태그의 글 목록