Spring & Java
클래스와 객체 본문
● JVM 메모리 영역
● 레퍼클래스 (기본형 참조형)
● static - 클래스가 공유
● final - 변하지 않는 값
● 인터페이스 - 표준화의 시작
● 객체지향 PART 1 - 캡술 (접근제어자)
● 객체지향 PART 2 - 상속
● 객체지향 PART 3 - 추상화
● 객체지향 PART 4 - 다형성
클래스와 객체
학습 키워드 점검
● 클래스 ( class ) - 객체의 설계도
● 객체 ( object ) - 클래스를 통해 만들어진 실제 존재
● 인스턴스화 ( instantiate ) - 객체를 만드는 과정
● 속성 ( property, field ) - 객체의 속성
● 생성사 ( constructor ) - 조립설명서
● 기능 ( method ) - 기능
클래스( class ) 란? - 객체를 만들 때 필요한 청사진
우린 지금까지 클래스를 파일처럼 할용해 왔습니다.
● 하지만 JAVA에서 클래스는 객체를 만들 때 필요한 청산(설계도) 입니다.
● 클래스의 첫 글자가 대문자 입니다.

객체 ( object ) 란?
객체란 실제로 존재하는 것 입니다.
● 우리가 주변에서 볼 수 있는 컴퓨터, 계산기, 자동차 같은 사물들이 객체입니다.
● 추가로 어떤 개념이나 논리 같은 것들도 객체가 될 수 있습니다.
● 예를 들어 덧셈, 뺄셈 등 눈에 보이지 않은 것들도 무형의 객체가 될 수 있습니다.
● 클래스가 준비되어 있다면 클래스를 기준으로 여러 객체들을 만들어 낼 수 있습니다.

Person.class - 사람이라는 객체를 만들면서 살펴 봅시다.
● 클래스는 객체를 만들기 위한 설계도 입니다.
● Person 클래스는 사람 객체를 만들기 위한 설계도 입니다.
● 객체를 만들때 new 라는 키워드를 사용합니다.
● 객체를 만드는 과정을 인스턴스화 라고 표현합니다.
● 인스턴스화가 되면 JAVA 메모리 상에 객체가 만들어집니다.

public class Person() {
...
}
public class Main {
public static void main(String[] args) {
Person personA = new Person(); // ✅ 첫번째 객체 생성
Person personB = new Person(); // ✅ 두번째 객체 생성
}
}
클래스 구조 ( 속성, 생성자, 기능 )
클래스 구조를 살펴 봅시다.
● 클래스 구조는 1. 속성, 2. 생성자, 3. 기능 부분으로 나누어집니다.
● 속생기 라고 외우면 편합니다.
class 클래스 {
// 1. 속성
// 2. 생성자
// 3. 기능
}
속성( property, field )
클래스 속성을 살펴 봅시다.
● 객체는 속성(특징)을 작성하는 곳입니다.
● 객체를 생성해야 속성에 접근할 수 있습니다.
● 이 속성들을 변수로 표현합니다.
● 프로퍼티 ( property ), 필드 ( fueld ) 라고도 합니다.
● 사람의 속성을 예로 들면 나이, 이름, 주소 등이 해당 됩니다.

class Person {
// 1. 속성
String name;
int age;
String address;
}
속성에 접근해 봅시다.
● 객체를 통해 속성에 접근할 때 객체가담긴변수.속성 으로 접근합니다.
● 객체마다 속성 값이 다를 수 있습니다.
public class Main {
public static void main(String[] args) {
// 1. 객체 생성
Person personA = new Person();
Person personB = new Person();
// 2. ✅ 객체를 통해 접근 personA 의 name
System.out.println(personA.name);
// 3. ✅ 객체를 통해 접근 personB 의 name
System.out.println(personB.name);
}
}
생성자 ( constructor ) - 조립 설명서
생성자를 살펴봅시다.
● 객체를 만들 때 사용합니다.
● 객체를 어떻게 만들지 정의해 놓는 것입니다. - 조립 설명서
● 생성자가 없으면 클래스를 객체화 시킬 수 없습니다. ( 조립 불가 )
기본생성자 - 기본 조립설명서
● 클래스를 생성하면 기본 생성자는 자동으로 추가가 됩니다.
● 그렇기 때문에 우리는 클래스를 객촤 시킬 수 있었습니다.
public class Person {
Person() {} // ✅ 기본생성자 자동추가, 하지만 보이지 않습니다.
}
public class Main {
public static void main(String[] args) {
Person personA = new Person(); // ✅ 그래서 만들 수 있었습니다!
Person personB = new Person(); // ✅ 그래서 만들 수 있었습니다!
}
}
생성자 특징
(1) 반환 자료형이 없습니다.
(2) 클래스명과 이름이 똑같습니다.
(3) 여러 개가 존재할 수 있습니다.
생성자를 활용해 Person 객체를 만들어 봅시다.
● person 클래스는 아래 3가지 속성을 가지고 있습니다.
● 이름과 나이만을 가지고 있는 객체를 만들고 싶다고 가정한다면 아래와 같은 생성자를 만들면 됩니다. (address 제외)
● 생성자를 만들면 기본 생성자는 제거 됩니다.
public class Person {
String name;
int age;
String address;
Person() {} // ❌ 기본생성자 제거됨
Person(String name, int age) { // ✅ 새로운 생성자(조립설명서)
this.name = name;
this.age = age;
}
}
public class Main {
public static void main(String[] args) {
Person personA = new Person(); // ❌ 에러발생
Person personB = new Person(); // ❌ 에러발생
}
}
public class Main {
public static void main(String[] args) {
Person personA = new Person("gygim", 10); // ✅ 조립설명서 준수
Person personB = new Person("Steve", 5); // ✅ 조립설명서 준수
}
}
this 키워드
● this는 객체 자신을 가리키는 키워드입니다. 현재 실행 중인 객체를 의미 합니다.

기능 (메서드)
객체의 기능을 나열하는 곳입니다.
● 기능을 메서드로 표현합니다.
● 상상하든 모든 기능을 구현할 수 있습니다.
-> 자기소개, 더하기, 걷기 기능 등
● 하지만 클래스와 관련된 기능을 작성하는 것이 좋습니다.
● 메서드를 활용하는 것이 객체의 기능을 활용하는 것입니다.
class Person {
...
// ✅ 사람의 소개 기능
void introduce() {
System.out.println("안녕하세요.");
System.out.println("나의 이름은 " + this.name + "입니다.");
System.out.println("나이는 " + this.age + "입니다.");
}
// ✅ 사람의 더하기 기능
int sum(int a, int b) {
int result = a + b;
return result;
}
}
public class Main {
public static void main(String[] args) {
Person personA = new Person("gygim", 10);
personA.introduce(); // ✅ personA 객체 introduce() 호출
Person personB = new Person("Steve", 5);
}
}
게터 ( getter )
게터 (getter ) 란 클래스의 속성을 가져올 때 사용되는 기능을 의미합니다.
String getName() {
return this.name;
}
int getAge() {
return this.age;
}
String getAddress() {
return this.address;
}
String name = person.getName();
int age = person.getAge();
String address = person.getAddress();
세터 ( setter )
세터 ( setter ) 란 객체의 속성을 외부에서 설정할 수 있게 해주는 기능입니다.
void getName(String name) {
this.name = name;
}
void getAge(int age) {
this.age = age;
}
void setAddress(String address) {
this.address = address;
}
public class Main {
public static void main(String[] args) {
Person personA = new Person("gygim", 20);
Person personB = new Person("Steve", 15);
personA.setAddress("서울"); // ✅ personA 의 주소 설정
personB.setAddress("미국"); // ✅ personA 의 주소 설정
}
}
'JAVA 기초 문법 다지기' 카테고리의 다른 글
| 객체지향 이해하기 메서드 - 모듈화의 시작 (0) | 2025.12.08 |
|---|---|
| Class 와 객체 (1) | 2025.12.05 |
| JAVA 배열 (3) (1) | 2025.12.04 |
| JAVA 반복문 - 자동화의 첫걸음 (2) (0) | 2025.12.04 |
| JAVA 문법 (1)조건문 (0) | 2025.12.04 |