Study/Java 7

싱글톤(Singleton)

1. Singleton 패턴이란?프로그램 전체에서 단 하나의 객체만 만들도록 보장하는 디자인 패턴.메모리 절약, 데이터 일관성 유지 목적.외부에서 new로 생성자 호출 방지 → 생성자를 private으로 선언.객체에 접근하기 위한 유일한 방법으로 getInstance() 메서드 제공.2. 구현 구조1) 클래스 내부 구조public class Singleton { // 1. 자신의 타입으로 된 static 필드 생성 (단 하나의 객체 생성) private static Singleton singleton = new Singleton(); // 2. 생성자를 private으로 선언하여 외부에서 생성자 호출 방지 private Singleton() {} // 3. 외부에서 객체에 접근..

Study/Java 2025.07.08

정적 멤버와 static

1. 정적 멤버와 static 개념static 키워드는 클래스에 속하는 멤버(변수, 메소드, 블록)를 만들 때 사용한다.정적 멤버(Static Member)는 클래스가 로드될 때 메모리에 단 한 번 생성되고, 인스턴스(객체)를 생성하지 않고도 사용할 수 있다.인스턴스별로 다른 값을 가지는 멤버가 아닌, 모든 객체가 공유하는 공통된 멤버라고 생각하면 된다.2. 정적 멤버 선언 class Example { static int staticVar = 10; // 정적 변수 (클래스 변수) int instanceVar = 5; // 인스턴스 변수 }staticVar는 클래스에 속하며, 객체 생성 없이 접근 가능instanceVar는 객체마다 별도로 존재함.3..

Study/Java 2025.07.08

인스턴스 멤버와 this

객체지향 프로그래밍(OOP)을 학습하면서 자주 마주치는 개념이 “인스턴스 멤버” 와 this 키워드임.이 두 개념은 객체의 상태와 동작을 관리하기 위한 핵심 개념으로, 자바를 제대로 다루기 위해 반드시 이해해야된다......인스턴스란?인스턴스는 클래스로부터 생성된 구체적인 객체를 의미한다.클래스는 설계도이며, 인스턴스는 그 설계도로부터 메모리에 만들어진 실체이다.예를 들어 Car라는 클래스를 만들면, Car myCar = new Car(); 를 통해 만들어진 myCar가 인스턴스다. 이 인스턴스를 통해 클래스에 정의된 변수와 메서드를 사용할 수 있다. 인스턴스 멤버란?인스턴스 멤버는 인스턴스가 생성될 때 함께 생성되어 인스턴스에 속하게 되는 변수와 메서드를 말한다.클래스 내부에서 static 키워드 없이..

Study/Java 2025.07.08

접근제어자

자바는 객체 지향의 캡슐화(Encapsulation)를 구현하기 위해 접근제어자(Access Modifier)를 사용한다.접근제어자는 클래스, 변수, 메서드가 다른 클래스/패키지/상속 관계에서 어느 범위까지 접근 가능한지를 결정.1. 자바 접근제어자 종류접근제어자클래스 내같은 패키지상속관계다른 패키지publicOOOOprotectedOOOX(default)OOXXprivateOXXX 1) public어디서든 접근 가능.다른 패키지, 다른 클래스에서도 사용 가능.주로 라이브러리 API, 유틸리티, 공개 메서드에서 사용.2) protected같은 패키지 + 상속받은 자식 클래스에서 접근 가능.다른 패키지의 경우 상속 관계가 있어야 접근 가능.주로 상속 관계에서 자식 클래스만 접근 가능하도록 할 때 사용.3)..

Study/Java 2025.07.08

상속(Inheritance)와 다형성(Polymorphism)

상속이란?일반적으로 상속은 부모가 가지고 있는 재산을 자식에게 물려주는 것을 말한다. 자식은 특별한 노력 없이 부모가 물려준 재산을 갖게된다.객체 지향 프로그래밍에서도 부모 역할의 상위 객체와 자식 역할의 하위 객체가 있다.상위 객체는 자기가 가지고 있는 필드와 메소드를 하위 객체에게 물려주어 하위 객체가 사용할 수 있도록 해준다. 상속은 상위 객체를 재사용해서 하위 객체를 쉽고 빨리 설계할 수 있도록 도와주고, 이미 잘 개발된 객체를 재사용해서 새로운 객체를 만들기 때문에 반복된 코드의 중복을 줄여준다. 사용법기본 문법 extends 키워드를 사용하여 상속 선언자식 클래스는 부모 클래스의 필드(변수)와 메서드(함수) 를 물려받아 사용자식 클래스는 필요에 따라 자신만의 필드와 메서드 추가더보기class ..

Study/Java 2025.07.07

캡슐화(Encapsulation)

1. 자바는 객체지향 프로그래밍(OOP) 언어자바(Java)는 객체지향 프로그래밍(OOP, Object-Oriented Programming) 언어로, 프로그램을 데이터와 기능(메서드)을 묶어 관리하고, 유지보수와 확장성을 높이기 위해 만들어졌다.OOP의 핵심 4가지 개념은:캡슐화(Encapsulation)상속(Inheritance)다형성(Polymorphism)추상화(Abstraction)이번 글에서는 이 중 캡슐화(Encapsulation)를 정리함2. 캡슐화(Encapsulation)란? 캡슐화는 데이터(속성)과 그 데이터를 처리하는 메서드(기능)를 하나로 묶고 외부로부터 내부 상태를 숨기는 것.즉, 데이터와 메서드를 하나의 '캡슐(클래스)'에 담아 필요하지 않은 정보는 외부에서 접근하지 못하게 제..

Study/Java 2025.07.06

JAVA 기본 개념(배열, 연산자, 조건문, 반복문)

JAVA의 기본적인 개념 (배열, 연산자, 조건문, 반복문)에 대해서 복습하려고 함..최근 몇년동안 Python만 써서 이론은 알지만 문법이 달라 얕게 문법만 보고 넘기려고 한다. 1. 배열개념변수는 하나의 값만 저장할 수 있음. 하지만 여러개의 변수를 한번에 저장하고 싶을 때 변수 하나로 저장한다면, 변수가 많아져 코드가 길어져 가독성이 떨어짐. 코드 작성할때 효율도 떨어짐..=> 배열로 해결 배열은 데이터들을 연속된 공간에 나열하고, 각 데이터에 인덱스를 부여하여 접근하는 자료구조. 배열에 저장되는 데이터들은 모두 동일한 자료형이어야 한다. 자바의 배열은 힙(Heap)영역에 생성되고 힙 내에서 연속된 메모리 공간에 나열. 배열의 이름은 참조 변수로 스택에 저장됨 참조 변수에는 힙영역에 생성된 배열의..

Study/Java 2025.07.06