객체란?
- 객체는 크게 속성과 기능의 집합
- 객체가 갖고 있는 속성과 기능을 그 객체의 멤버(구성원)라고 한다.
- new 키워드를 사용하여 객체 생성
- 포인트 연산자(.) 를 통해 해당 객체의 멤버에 접근 가능
class CarTest{
public static void main(String[] args){
//클래스를 기반으로 생성된 자동차 인스턴스
Car bmw = new Car();
Car tesla = new Car();
Car audi = new Car();
}
ex) 유형의 객체 : 책상, 의자, 자동차와 같은 사물
무형의 객체 : 수학공식, 프로그램 에러와 같은 논리 or 개념
인스턴스란?
- 클래스를 통해 생성된 객체
- 인스턴스화 → 클래스로부터 객체를 만드는 과정
Q. 객체와 인스턴스의 차이는?
A. 차이를 두는 것에 큰 의미는 없다.
객체는 모든 인스턴스를 포괄하는 넓은 의미. (객체>인스턴스)
인스턴스는 해당 객체가 어떤 클래스로부터 생성된 것인지를 강조.
객체의 생성
1. 특정 클래스 타입의 참조변수 선언
클래스이름 객체참조변수 이름;
Car myCar;
2. new 키워드와 생성자를 통해 인스턴스를 생성하여 참조변수에 할당
객체참조변수이름 = new 클래스이름();
myCar = new Car();
참조 변수의 선언과 인스턴스의 생성 동시에 해보기
클래스이름 객체참조변수이름 = new 클래스이름();
Car myCar = new Car();
* 참조 변수는 실제 데이터 값이 아니라 실제 데이터가 저장되어 있는 힙 메모리의 주소값
- 참조 변수?
- 변수에 객체의 주소값을 저장한다.
- 기본 타입 변수는 변수에 값을 저장한다.
- 기본 타입 ⇒ byte, short, char, int, long, float, double, boolean
- 참조 타입 ⇒ 배열, 열거, 클래스, 인터페이스 등등
- ex) String name = “bmw”; //참고 타입 변수의 예
- 변수에 객체의 주소값을 저장한다.
객체 활용 코드
public class CarTest {
public static void main(String[] args){
Car tesla = new Car("Model 3","빨강"); //객체 생성
System.out.println("차 모델은 " + tesla.model + "이고 색상은 "+tesla.color+"입니다.");
tesla.power(); //메서드 호출
tesla.accelerate();
tesla.stop();
}
}
class Car{
//필드 선언
public String model;
public String color;
//인스턴스 초기화를 위한 생성자 함수
public Car(String model, String color){
this.model = model;
this.color = color;
}
//메서드 선언
void power(){
System.out.println("시동 걸기");
}
void accelerate(){
System.out.println("더 빠르게");
}
void stop(){
System.out.println("멈춰");
}
}
//출력값
차 모델은 Model 3이고 색상은 빨강입니다.
시동 걸기
더 빠르게
멈춰
'Study > JAVA' 카테고리의 다른 글
[자료구조] 스택(Stack) / 큐(Queue) (0) | 2023.01.16 |
---|---|
[Java] 배열(Array) (0) | 2023.01.12 |
[Java] 람다식(Lambda expression) (0) | 2023.01.08 |
[객체지향 / Java] 클래스 쉽게 이해하기 (0) | 2022.12.29 |