Notice
Recent Posts
Recent Comments
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Spring & Java

클래스와 객체 본문

JAVA 기초 문법 다지기

클래스와 객체

dev.hyuck 2025. 12. 8. 15:53

● 메서드 - 모듈화의 시작

● 클래스와 객체

● 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