백엔드 with java/java

자바 클래스 & 객체

정민됴 2023. 5. 29. 23:09

클래스란?

  • 객체를 만들기 위한 설계도

    클래스를 왜 사용할까?

  • 클래스는 다양한 자료형의 제이터를 묶어 관리할 수 있을 뿐 아니라 데이터를 처리하는 다양한 기능까지 함께 관리가 가능
    • 클래스에 포함돼 클래스 안에 있는 데이터를 처리하는 기능 : 메서드

절차 지향 VS 객체 지향

절차 지향형 프로그래밍

  • 순서에 맞춰 단계적으로 실행하도록 명령어를 나열하는 방식

    객체 지향형 프로그래밍

  • 객체 단위로 수행하는 방식
  • 프로그램을 객체 단위로 구성해 상호 연동시킴
  • 클래스와 인터페이스로 객체지향 문법 요소가 나뉨
  • 클래스는 일반 클래스와 추상 클래스로 나뉨
  • 이러한 객체지향 요소를 활용해 객체를 직.간접적으로 만들고, 이를 활용해 프로그램을 실행시킴

클래스의 구조

package ...; // 1. 패키지
import ...; // 2. 임포트
class 클래스명 {...} // 3. 외부 클래스

public class A {
    int a = 3; // 1. 필드
    double abc() {...} // 2. 메서드
    A() {...} // 3. 생성자
    class 클래스명 {...} // 4. 이너 클래스
}

클래스 외부 구성 요소

  1. 패키지: 프로젝트를 생성할 때 패키지를 지정했다면 패키지명이 포함, 주석 제외 반드시 첫 줄에 위치해야함!!, 디폴트 패키지를 사용하면 생략 가능
  2. 임포트: 다른 패키지의 클래스를 사용할 때 포함, 패키지 다음에 위치
  3. 외부 클래스: 클래스 외부에 또 다른 클래스 포함 가능, 외부 클래스에는 public 키워드 못 붙임

클래스 내부 구성 요소

  1. 필드: 클래스의 속성을 나타내는 변수
  2. 메서드: 클래스가 가지고 있는 기능(함수)
  3. 생성자: 클래스 객체를 생성하는 역할
  4. 이너 클래스: 클래스 내부에 있는 클래스

클래스 VS 객체

클래스는 붕어빵틀 객체는 붕어빵


클래스의 생성자로 객체를 만드는 과정 : 인스턴스화
인스턴스화로 만들어진 객체 : 인스턴스
인스턴스 안에 클래스의 내부 구성요소 중 생성자를 제외한 나머지 요소 : 인스턴스 멤버
클래스는 바로 사용할 수 없고 반드시 객체를 생성해야 한다.

객체 생성 방법

// 클래스명 참조변수명 = new 생성자();
A a = new A();


지역 변수(메서드에 포함된 변수)는 스택 영역, 필드(클래스에 포함된 변수(객체 내부))는 힙 영역에 저장된다