Java OOP (class, getter, setter, instance)

s00cong·2025년 1월 24일
0

Udemy_Java

목록 보기
2/2
post-thumbnail

이 글은 Udemy강의 중 FULL STACK JAVA DEV에서 JAVA강의 부분을 보고 작성한 내용입니다.
또한 여러 블로그를 참고하여 정리한 개인 공부 블로그입니다.

OOP (Object Oriented Programming)

  • 객체지향 프로그래밍
  • 설계에 중점을 둔 방법이다.
  • 세계를 객체라는 추상적인 단위로 나눈 후, 각 객체들 간의 상호작용을 통해 로직을 구성

OOP 장점 및 단점

  • 장점
  1. 이미 구현해 놓은 클래스를 확장해서 다시 사용할 수 있다. (재사용성)
  2. 수정 할 때, 그 역할을 하는 클래스의 메서드, 변수만 수정하면 되므로 유지보수 비용 절약 가능 (유지보수)
  3. 객체 단위로 작업하므로, 여러 사람들과 개발할 때 유용하다. (대형 프로젝트 적합)
  • 단점
  1. 객체 단위로 개발하므로 용량이 증가할 수 있음
  2. 용량이 증가함에 따라 처리 속도 느려질 수 있음 (속도)
  3. 초기에 객체들간의 역할과 관계를 파악하기 위해 분석, 설계에 많은 시간과 비용을 투자해야함. (초기 비용)

OOP 주요 개념

OOP를 공부 할 때, 자주 보게 될 주요 키워드를 언급하겠다.
1. Class,Instance (클래스와 객체)
2. Abstraction (추상화)
3. Encapsulation (캡슐화)
4. Inheritance (상속)
5. Polymorphism (다형성)

Java Class

자바 클래스란?

  • 객체(object)를 정의해 놓은 것
  • 객체의 틀! (Class = 붕어빵 틀, instance = 붕어빵)
  • OOP에서 프로그램을 개발하는 단위

뒤에서 instance에 대해 다루겠지만,,,

클래스는 특정 역할을 수행하기 위한 멤버 변수(property,속성)와 메서드 (action,행위)로 정의된 것을 의미함.

class는 object를 정의하고, 이 Class에서 정의한 모든것이 Memory에 할당될 때 이를 Instance(객체)라고 한다.
(Heap에 할당되면 instance로 볼 수 있다.)

클래스 정의하는 법

public class Car {
    private int doors;
    private String engine;
    private String driver;
    private int speed; //멤버 변수들
    
    void speedUp() { speed++;}
    void speedDown() { speed--;} // 메서드
    
    public int getDoors() {
        return doors;
    }

    public void setDoors(int doors) {
        this.doors = doors;
    }
}

Getter Setter

흔히 클래스의 멤버 변수는 정보 은닉을 위해 private 접근 제어자로 설정한다.
따라서 다른 클래스에서 instance를 생성하더라도 해당 변수에 접근할 수 없다.
그러나 데이터의 변경이 필요하거나 데이터의 값을 얻어야하는 경우가 있다. 이때 사용하는 것이 getter, setter 메서드이다.

getter()메서드

설정한 변수 값을 읽어올 때 사용.
외부에서 객체의 데이터를 읽을 때 사용.
값을 반환하기 때문에 return 값이 필요하다.

public int getDoors() {
        return doors;
    }

setter()메서드

외부에서 method를 통해 필드에 접근해서 값을 바꿀 수 있는 method이다.
필드값을 설정해야하므로 매개변수가 필요.

public void setDoors(int doors) {
        this.doors = doors;
    }

getter,setter 한번에 쉽게 생성하기

인텔리제이에서 마우스 우클릭 후

생성을 클릭한다.


그리고 만들고 싶은 member변수들을 클릭한 후 확인을 누르면
저절로 생성이 된다.

instance(객체)

object를 모든 instance를 포괄하는 넓은 의미를 가지고, instance는 해당 object가 어떤 class로부터 생성된건지에 강조하는 느낌이다.

객체의 생성

클래스이름 참조변수이름 = new 생성자();로 instance를 생성한다.

Car a = new Car();
Car b = new Car();

객체의 값에 접근하려면 '.'을 사용하여 접근할 수 있다.

public class Main {
    public static void main(String[] args) {
        Car a = new Car();
        Car b = new Car();

        System.out.println(a.getDoors());
    }
}

이에 대해 정리된 그림이다.

그림 출처 : 클래스, 객체, 인스턴스의 차이

참고자료

OOP
javaClass

profile
수콩임당

0개의 댓글