자바 객체 지향에 대해 설명하는데 앞서 객체에 대해 짚고 넘어갈려고 한다. 왜냐하면 자바는 객체 지향 프로그래밍 언어 중 하나로 모든것이 객체를 중심으로 돌아가기 때문!
형식적인 객체의 의미
객체(Object)는 현실 세계의 사물이나 개념을 컴퓨터 프로그램으로 표현한 것.
예를 들어 자동차, 사람, 동물, 등 큰 개념의 묶음.
클래스와 객체의 관계
클래스는 설계도
겁나 간단히 설명하면
클래스 -> 레고 블록을 만들기 위한 설명서
이게 있어야 사진에 나오는 작품을 만들 수 있기에 매우 중요하다
즉 클래스가 있어야 객체를 만들 수 있다.
코드로 보는 예
자동차 객체를 만들기 위해 'Car라는 클래스를 정의 가능.
Car 클래스는 자동차가 가져야 할 속성(예: 색상, 모델, 속도)과 행동(예: 가속, 멈추기)을 정의
public class Car {
// 속성 (필드)
String color;
String model;
int speed;
// 행동 (메소드)
void accelerate() {
speed += 10;
}
void brake() {
speed = 0;
}
}
속성:color, model, speed
행동:accelerate(), brake()
객체 생성하기
보통 객체를 생성하기 위해 'new'키워드를 사용한다. 하지만 생략도 가능하다.
코드로 보는 예
public class Main {
public static void main(String[] args) {
// Car 객체 생성
Car myCar = new Car();
// 객체의 속성 설정
myCar.color = "Red";
myCar.model = "Tesla";
myCar.speed = 0;
// 객체의 행동 호출
myCar.accelerate();
System.out.println("Current speed: " + myCar.speed); // 출력: Current speed: 10
}
}
Car의 객체인 mycar 생성
Object.attribute: 속성 설정
Object.action(): 통해 행동 설정
객체 다중 설정
public class Main {
public static void main(String[] args) {
Car car1 = new Car();
Car car2 = new Car();
car1.color = "Red";
car1.model = "Tesla";
car1.speed = 0;
car2.color = "Blue";
car2.model = "BMW";
car2.speed = 0;
car1.accelerate();
car2.accelerate();
car2.accelerate();
System.out.println("car1 speed: " + car1.speed); // 출력: car1 speed: 10
System.out.println("car2 speed: " + car2.speed); // 출력: car2 speed: 20
}
}
car1과 car2라는 두 개의 자동차 객체를 생성후
color, model, speed 속성 설정.
accelerate()의 메소드를 호출하여 속도 증가됨.
Car -> (car1,car2) -> (car1 speed, car2 speed) -> accelerate()메서드 호출 -> output
Object의 객체와 Instance의 객체의 차이점
Object : 클래스(Class)에 의해 정의된 데이터 구조의 실체입니다. 객체는 속성(데이터)과 행동(메서드)을 포함할 수 있습니다. 객체는 일반적으로 컴퓨터 메모리 내에서 생성되고, 사용되는 동안 유지됨
간단히 말하자면 클래스에 의해 정의된 구조와 행동을 가진 데이터 덩어리
Instance : 객체가 메모리에 실제로 존재하는 구체적인 사례. 다시 말해, 클래스가 "설계도"라면, 인스턴스는 이 설계도를 바탕으로 만들어진 "실제 물건"
간단히 말하자면 클래스에서 생성된 실제 객체. 즉, 메모리에서 존재하는 객체의 구체적인 예시.
- 클래스(Class): 설계도, 예를 들어 "자동차를 만드는 설계도".
- 객체(Object): 설계도를 기반으로 만들어진 실체, 예를 들어 "자동차".
- 인스턴스(Instance): 특정한 설계도를 기반으로 만들어진 특정한 실체, 예를 들어 "내 차", "이웃의 차".
class -> object -> 구체화object -> instance
요약
- 객체(Object): 현실 세계의 사물이나 개념을 컴퓨터 프로그램으로 표현한 것.
- 클래스(Class): 객체를 만들기 위한 설계도.
- 객체 생성: 클래스를 사용하여 실제 객체를 만드는 것.
- 속성(필드)과 행동(메소드): 객체가 가지고 있는 데이터와 기능.
- 인스턴스(Instance): 사물이나 개념이 더 구체화된 표현.
'Java 문법정리 (Array부터)' 카테고리의 다른 글
return 문 (1) | 2024.07.23 |
---|---|
클래스 설계 단계 (3) | 2024.07.23 |
StringBuffer, StringBuilder (0) | 2024.07.23 |
Collection: List (0) | 2024.07.22 |
Collection (5) | 2024.07.22 |