개발/자바

Class, 객체 지향 프로그래밍(OOP)

kakk789 2022. 4. 4. 21:13

클래스(Class)

기본 자료형 만으로는 프로그램하기 번거로워서 새로운 자료형의 개념으로 직접 만들어서 사용

객체 지향 프로그래밍 (Object Oriented Programming, OOP)

  • 현실 세계의 모든것을 객체화 할 수 있다.
  • 눈에 보이는 것일 수도 있고, 눈에 보이지 않는 개념적인 것일 수도 있음.
  • 속성(데이터), 동작(기능)을 분석하여 클래스로 만들어야한다
사람      Person
    속성  (멤버 변수)
           이름         String name  "홍길동"
           나이         int age         20 
    동작  (멤버 메소드)
           먹다         void eat(String food)
           씻다         void wash(String soap)

객체는 new를 이용하여 생성

		Person kim = new Person();

스택, 힙

  • 일반 자료형의 변수들은 스택에 저장 되지만 객체의 변수들은 힙에 만들어진다.(new 객체명( ) 이 실행 될 때 힙에 할당)
  • 이때 힙에 할당되어 있는 데이터들을 멤버 라고 표현하고 이 멤버로 접근하기 위한 연산자 멤버 접근 연산자( . )라고 부른다.

객체지향 프로그래밍의 특징

1. 은닉성 (Encapsulation)

  • 클래스를 구성하고 있는 구성요소들을 외부의 다른 클래스로부터 보호하는 것을 말한다
  • 모든 구성요소를 보호하게 되면 해당 클래스 사용이 불가능하다. 그래서 "접근 명시자"를 이용한다.
접근 명시자 ( https://dlckdgml.tistory.com/9 ) 참고
- private
- public
- protected
  • 보통 클래스를 만들 때에는 멤버 변수들은 private으로 지정
  • 멤버 메소드들은  public으로 지정
  • 하지만 강제성은 아니고 필요에 따라 바뀔 수 있다.
  • private에 있는 멤버변수에 접근하기 위해서는 public에 있는 메소드를 통해 접근하도록 클래스를 만든다.
    그러니까 get, set을 이용하여 멤버변수를 설정한다는 의미.

2. 상속성

- 나중에 다시 공부

3. 다형성

- 나중에 다시 공부

반응형