Study/JAVA

[객체지향 / Java] 객체란? 어떻게 사용할까?

Reese 2022. 12. 30. 15:52

객체란?

  • 객체는 크게 속성기능의 집합
  • 객체가 갖고 있는 속성과 기능을 그 객체의 멤버(구성원)라고 한다.
  • 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