Java & Spring/Java 16

생성자&this,this()

1. 생성자란?생성자는 객체가 생성되는 시점에 단 한 번 호출되는 특수한 메서드이다. 주 목적은 객체의 초기 상태를 보장하는 것이다.class Person { String name; int age; Person(String name, int age) { this.name = name; this.age = age; }}생성자의 특징클래스명과 이름이 같다반환 타입이 없다객체 생성 시 자동 호출개발자가 직접 호출할 수 없다📌 생성자는 객체 생성 이후에 실행되는 메서드가 아니라 객체 생성 과정의 일부이다! 2. 기본 생성자(Default Constructor)생성자를 하나도 정의하지 않으면, 컴파일러가 생성자를 자동으로 추가한다. class A { int x..

Java & Spring/Java 2026.01.06

메서드

1. 메서드란?메서드는 객체가 수행할 수 있는 행동이다. 객체지향에서는 객체는 메서드를 통해서만 외부와 상호작용한다.class Person { void speak() { System.out.println("말한다"); }}필드 -> 상태메서드 -> 행동2. 메서드의 구조 [접근제어자] [기타제어자] 반환타입 메서드명(매개변수) { 실행 코드}public static int add(int a, int b) { return a + b;} 접근제어자: 외부 접근 범위변환 타입 : 결과 값의 타입메서드명 : 역할을 드러내는 이름매개변수 : 입력값메서드 바디 : 실제 로직3. 메서드 시그니처메서드 이름 + 매개변수 타입/순서 ❌ 포함되지 않는 것반환 값 접근 제어자4. 메서드 호출과 스택 ..

Java & Spring/Java 2026.01.06

Static

1. static 이해static은 클래스가 JVM에 로딩되는 순간부터 존재한다. 즉, 객체 이전 단계에서 이미 메모리에 존재함.class A { static int x;}new A() 필요 없이 A.x로 바로 접근이 가능함.2. class 로딩 시 JVM의 동작Class Loader가 class 파일 로딩Method Area에 클래스 정보 적재 (데이터, 메서드, static 변수)static 초기화 수행 (기본값, 초기화 블록 실행)class Example { static int x = 10; static { System.out.println("static block"); }}📌 객체가 없어도 static 변수와 print문은 동작함. 3. static 변수의 메모..

Java & Spring/Java 2026.01.05

객체의 상태와 변수의 생명주기

1. 객체의 상태란?객체는 상태(state)와 행동(behavior)으로 구성된다. 상태 -> 변수행동 -> 메서드class Person { String name; // 상태 int age; // 상태 void speak() { // 행동 System.out.println("아아 목소리!!"); }}📌즉, 변수를 이해하는 것은 객체의 상태를 이해하는 것이라고 볼 수 있다. 2. 변수는 모두 같지 않다. Java의 변수는 선언 위치와 생명 주기에 따라 명확히 구분된다. 변수의 3가지 종류인스턴스 변수 (필드)클래스 변수 (static 변수)지역 변수이 변수들은 메모리와 생명 주기 차이가 핵심이다. 3. 필드(Field) vs 지역 변수(Local Variable)..

Java & Spring/Java 2026.01.05

객체 지향 기본

1. 객체와 클래스 클래스(Class)객체를 생성하기 위한 설계도필드(상태)와 메서드(행동)을 정의JVM 관점에서는 클래스 로딩 시 Method Area에 적재하는 것class Person { String name; int age; void speak() { System.out.println("아아 목소리 테스트!"); }} 객체(Object)클래스를 기반으로 실제 메모리에 생성된 실체서로 다른 객체는 각자 독립적인 상태를 가짐Person p1 = new Person(); # Person 객체 1 Person p2 = new Person(); # Person 객체 2 2. 객체 생성 과정(메모리 관점)Person p = new Person();JVM 내부 동작 순서클래스..

Java & Spring/Java 2026.01.05

객체지향프로그래밍(OOP)

1. 객체 지향 프로그래밍(OOP)이란?상태와 행동을 가진 객체를 만들고, 이 객체들이 서로 협력하며 거대한 프로그램을 완성해가는 방식을 의미한다. 구분설명객체(Object)상태(State)와 행동(Behavior)을 가진 독립적인 존재클래스(Class)객체를 만들기 위한 설계도메시지객체 간 상호작용 방식 (메서드 호출)협력여러 객체가 상호작용하며 프로그램을 구성 2. 사고의 전환: 절차 지향 vs 객체 지향 절차지향 : 기능을 어떻게 구현할까? (순서 중심)객체지향 : 누가 이 기능을 담당해야 하지? (책임 중심) 절차 지향은 데이터와 로직이 분리되어 코드가 꼬이기 쉽지만, 객체지향은 역할과 책임을 분리한다. 3. 객체지향이 유리한 상황 기능이 계속 추가되는 대규모 프로젝트 (확장성)여러 개발자가 협업..

Java & Spring/Java 2026.01.05