객체지향프로그래밍개념정리

지선·2023년 4월 14일

객체지향프로그래밍이란?

객체를 기반으로 프로그램을 작성하는 언어

객체란?

어떤 일을 처리하기 위한 데이터+기능을 하나로 묶어 개념을 구체화 한 것

3R?

  1. 가독성
  2. 재사용성
  3. 신뢰성

절자지향프로그래밍과 다른점은?

절차지향프로그래밍은 절차를 표현한 후 프로그래밍을 구현한다면
객체지향프로그래밍은 객체간의 상호작용을 파악하여 구조와 순서를 표현한 후 프로그래밍을 구현한다.

객체지향프로그램이 갖추어야 할 속성

  1. 상속성
    여러 객체를 만들때 겹치는 부분을 재사용하는 용도
    단일 상속만 허용, 일반화가 가능해야함 (말도 안되게 상속하지 않기 예를 들어 고양이 다리 4개, 책상 다리 4개를 통해 고양이가 책상을 상속하게끔 하기)
    상위 클래스와 하위 클래스
    ->반복된 코드 중복 줄임, 유지 보수 편리성 good, 다형성 구현 가능
  2. 은닉성
    캡슐화를 통해 정보를 은닉할 수 o (private사용), 너무 많은 정보를 보여주는 것도 좋은 것만은 아님
  3. 다형성
    같은 이름의 메소드 or 클래스가 객체에 따라 다르게 동작
    메소드 오버로딩: 같은 이름이지만 인자의 형태, 수에 따라 옵셔널하게 동작하게 만듬
    메소드 오버라이딩: 슈퍼클래스에서 상속받은 메소드를 서브 클래스마다 다르게 구현

클래스

멤버들의 설계도
객체를 만들어내기 위한 설계도
붕어빵 틀

객체

클래스의 인스턴스
붕어빵 틀을 가지고 만든 초코붕어빵, 팥 붕어빵

클래스 이름

한글 ok, but 영어로 작성하자 !
클래스 이름은 대문자로, 하나 이상의 문자로, 첫번째 글자에는 숫자x, 자바 키워드x, $,_외의 특수 문자x

클래스 선언과 컴파일

소스 파일은 클래스이름.java이고 javac.exe로 컴파일하면 클래스이름.class로
하나의 파일에선 하나의 클래스를 선언하는 것이 관례
선언한 개수만큼 바이트 코드 파일이 생성됨

생성자

객체 생성될 때 초기화를 위해 실행되는 메소드
특징은?
특별한 메소드로서 리턴 타입x, new를 통해 객체 생성, 클래스 내에서 하나 이상 선언해야함

메소드

반드시 클래스 안에 존재해야함
(갑자기 존재의 이유 가고싶다ㅋㅋㅋㅋ)

접근지정자

private, protected, public, 디폴트

profile
긍정왕되기

0개의 댓글