(JAVA) 객체지향 이해하기

2024. 9. 19. 15:49·JAVA

1. 클래스(Class)와 객체(Object)

클래스란?

  • 클래스는 객체를 만들어내기 위한 설계도 또는 틀입니다. 클래스는 속성(state)과 행동(behavior)을 정의합니다.
  • 속성은 필드(Field)로, 행동은 메소드(Method)로 표현됩니다.

객체란?

  • 객체는 클래스에서 만들어진 실체로, 프로그램 실행 중에 메모리 공간을 차지하는 구체적인 존재입니다.
  • 객체는 클래스의 인스턴스라고도 불리며, 클래스의 구조에 따라 만들어진 데이터를 메모리에 올린 상태입니다.

예시 코드

class Car {
    String brand;
    int speed;

    void accelerate() {
        speed += 10;
    }
}

public class Main {
    public static void main(String[] args) {
        Car myCar = new Car(); // Car 객체 생성
        myCar.brand = "BMW";   // 필드 값 설정
        myCar.accelerate();    // 메소드 호출
        System.out.println(myCar.speed); // 10 출력
    }
}

 

2. 객체지향의 구성 요소

1) 필드(Field)

  • 객체의 속성을 나타내며, 클래스 내부에 정의된 변수입니다.
  • 객체가 가지고 있는 고유한 데이터를 저장합니다.

2) 메소드(Method)

  • 객체가 할 수 있는 행동을 정의한 함수입니다.
  • 클래스의 내부에 선언되어, 해당 클래스의 객체에서 동작합니다.

 

3. 인스턴스(Instance)

  • 인스턴스는 클래스를 바탕으로 생성된 구체적인 객체를 의미합니다. 객체를 생성하면 그 객체를 인스턴스라고 부를 수 있습니다.
  • 즉, 객체는 클래스의 실체이며, 프로그램 실행 중에 생성되는 구체적인 데이터입니다.

 

4. 메소드의 가변인자 처리

가변인자(Variable Arguments)란?

메소드에 매개변수를 동적으로 처리할 수 있도록 하는 기능입니다. 전달하는 인자의 개수를 유연하게 관리할 수 있으며, 가변인자는 배열처럼 동작합니다.

 

사용 방법

public void exampleMethod(String... strings) {
    for (String s : strings) {
        System.out.println(s);
    }
}
  • String... strings로 선언하면, 여러 개의String`을 가변적으로 전달받을 수 있습니다.

 

사용 예시

exampleMethod("apple", "banana", "cherry");  // 여러 개의 인자 전달
exampleMethod("one");                        // 한 개의 인자 전달
exampleMethod();                             // 인자 없이 호출

 

결과

apple
banana
cherry

one

정리

이번에는 클래스와 객체에 대해 살펴보았으며, 자바에서 객체를 어떻게 정의하고 사용할 수 있는지, 그리고 메소드의 가변인자 처리 방법을 알아보았습니다. 가변인자를 사용하면 다양한 개수의 매개변수를 간편하게 처리할 수 있어 유연한 메소드 구현이 가능합니다.

'JAVA' 카테고리의 다른 글

(JAVA) 기본형 & 참조형 매개변수, 인스턴스 멤버와 클래스 멤버  (0) 2024.09.20
(JAVA) 예외처리 자세히 알아보기 2  (0) 2024.09.19
(JAVA) 자료구조를 활용한 요리 레시피 메모장 만들기  (0) 2024.09.14
(JAVA) 컬렉션 프레임워크 정리하기  (0) 2024.09.14
(JAVA) 배열 및 컬렉션 정리  (0) 2024.09.14
'JAVA' 카테고리의 다른 글
  • (JAVA) 기본형 & 참조형 매개변수, 인스턴스 멤버와 클래스 멤버
  • (JAVA) 예외처리 자세히 알아보기 2
  • (JAVA) 자료구조를 활용한 요리 레시피 메모장 만들기
  • (JAVA) 컬렉션 프레임워크 정리하기
lastdove
lastdove
lastdove 님의 블로그 입니다.
  • lastdove
    lastdove 님의 블로그
    lastdove
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • Spring (16)
      • JAVA (17)
      • JAVA 알고리즘 (20)
      • Project (5)
      • SQL 문제풀이 (17)
      • Git&Linux (2)
      • Web development(입문) (2)
      • Sparta (1)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
lastdove
(JAVA) 객체지향 이해하기
상단으로

티스토리툴바