객체지향 프로그래밍

고태경·2023년 7월 1일
0

JAVA

목록 보기
7/9

객체지향 프로그래밍

객체를 먼저 만들고 이 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법

특징

1. 캡슐화

객체의 데이터와 동작을 하나로 묶고 실제 구현 내용을 외부에 감추는 것

접근 제한자 이용

2. 상속

부모객체는 자신의 필드와 메소드를 자식 객체에게 물려줄 수 있음

3. 다형성

사용방법은 동일하지만 실행결과가 다양하게 나오는 성질

메소드 오버로딩 이용

객체

속성(필드) + 동작(메소드)

1. 물리적으로 존재하는 것
2. 개념적인 것 중에서 식별이 가능 한 것

클래스로부터 만들어진  객체 -> 해당 클래스의 인스턴스

객체들의 관계

  1. 집합관계
  2. 사용관계
  3. 상속관계

클래스

구성 : 필드, 메소드, 생성자

클래스 -> 설계도
클래스는 추상적인 개념 -> 객체는 실체 (예를 들면 동물 vs 개, 고양이)

용도
라이브러리 클래스 : 실행 불가, 다른 클래스에서 이용
실행 클래스 : main() 메소드를 가진 클래스

필드

객체의 데이터를 저장
(고유 데이터, 상태 데이터, 부품 데이터)

메소드

c언어의 함수를 자바에서는 메소드라 부름, 동작
호출 방법 : .(도트연산자) 이용 : 객체 접근 연산자

메소드 오버로딩

매개변수의 타입, 개수, 순서가 다르게 생성자 선언

생성자

new 연산자를 통해 생성자를 호출, 객체의 주소 리턴

생성자 오버로딩

매개변수의 타입, 개수, 순서가 다르게 생성자 선언

this

this.필드명 = 매개변수명 : 필드명과 매개변수명이 같을 때 구분용 (없으면 매개변수로 인식)
this() : 자신 생성자 호출
this키워드 : 인스턴스 필드임을 강조
가변길이 매개변수
1. 리턴 타입(타입 ... 변수명) {
}

2. 배열을 매개값으로 사용

멤버

필드와 메소드는 인스턴스 멤버(객체 소속)와 정적 멤버(클래스 소속)로 나뉨

정적멤버
static

정적 필드는 객체 생성 없이도 사용할 수 있기 때문에 생성자에서 초기화 작업을 하지 않음
생성자는 객체가 셍성된 후 실행되기 때문

게터와 세터

싱글톤 패턴

단 하나의 객체만을 사용하고 싶을 때 사용

1. private인 정적 필드 선언 (및 생성자 생성&대입)
2. ⭐ private인 생성자 생성 (외부에서 new 연산자로 생성자 호출 불가)
-> 싱글톤 패턴이 제공하는 정적 메소드를 통해 간접적으로 객체를 얻을 수 있음
3. 게터 생성 (getinstance)

싱클톤 패턴을 쓰는 이유가 뭘까

profile
컴퓨터정보과

0개의 댓글