자바

수민·2022년 6월 1일
0

개발

목록 보기
14/45

객체

의사나 행위가 미치는 대상(사전적 의미)
구체적 ,추상적 데이터의 단위(학생,회원,생산,주문,배송)

객체지향 프로그램과 절차지향 프로그래밍

아침에 일어나 학교를 가는과정을 예로들어봅시다
절차지향프로그래밍

  • 일어난다>씻는다>밥을 먹는다>버스를 탄다> 요금을 지불한다> 학교에 도착

절차지향 프로그래밍(대표적인 C언어)

클래스는 객체의 청사진(blueprint)입니다.

-객체의 속성은 클래스의 멤머변수(member variable)로 선언함

객체지향 프로그램을 할때는

객체를 정의하고

클래스의 이름은 대문자로 쓰는것이 좋다.
단어가 바뀔떄마다 대문자

함수란?

하나의 기능을 수행하는 일련의 코드

  • 구현된(정의된)함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨.

함수 호출과 스택메모리

  • 스택 : 함수가 호출될떄 지역 변수들이 사용하는 메모리
  • 함수의 호출이끝나면 자동반환

메서드

  • 객체의 기능을 구현하기위해 클래스 내부에 구현되는 함수
  • 멤버 함수 이라고도 함
  • 메서드를 구현함으로써 객체의 기능이 구현 됨

인스턴스가 생성되는것을 힙메모리라고 함.

인스턴스

클래스는 객체의 속성을 정의하고, 기능을 구현하여 만들어 놓은 코드상태

실제 클래스기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 됨
new라는 키워드를 사용하여 인스턴스 생성.

힙메모리

  • 생성된 인스턴스는 동적 메모리에 할당됨
  • c나 c++언어에서는 사용한 동적메모리를 프로그래머가 해제시켜야함
  • 하나의 클래스로부터 여러개의 인스턴스가 생성되고 각각 다른 메모리 주소를 가짐.

인스턴스- new 키워드를 사용하여 클래스를 메모리에 생성한 상태
멤버변수:클래스의 속성 ,특성
메서드:멤버 변수를 이용하여 클래스의 기능을 구현함 함수

참조변수: 메모리에 생성된 인스턴스를 가리키는 변수
참조값: 생성된 인스턴스의 메모리 주소 값

생성자

  • 생성자 기본문법
  • 객체를 생성할떄 new키워드를 함께 사용
  • 생성자는 일반 함수처럼 기능을 호출하는것 이 아니고 객체를 생성하기위해 new 와함꼐 호출
  • 생성자는 반환 값이 없고, 클래스의 이름과 동일

기본생성자

  • 반드시 적어도 하나이상의 생성자가 존재
  • 클래스에 생성자를 구현하지 않아도 new키워드와 함꼐 생성자를 호출할 수 있음
  • 클래스에 생성자가 하나도 없는 경우 컴파일러가 생성자 코드를 넣어 줌
  • 매개 변수가 없음, 구현부가 없음.

참조 자료형

  • 클래스형으로 변수를 선언
  • 기본 자료형은 사용하는 메모리의 크기가 정해져있지만, 참조 자료형은 클래스에 따라 다름.
  • 참조 자료형을 사용할 때는 해당 변수에 대해 생성하여야 함.(String 클래스는 예외적으로 생성하지 않고 사용할 수 있음)

접근제어지시자

  • 클래스 외부에서 클래스의 멤버변수, 메서, 생성자를 사용할수 있는지 여부를 지정하는 키워드
  • private: 같은 클래스 내부에서만 접근가능(외부클래스,상속관게의 클래스에서도 접근불가)
  • protected:같은 패키지나 상속관계의 클래스에서 접근 가능하고 그 외 외부에서는 접근 할 수 없음
  • public:클래스의 외부 어디서나 접근 할 수 있음.

get, set메서드

  • private으로 선언된 멤버 변수(필드)에 대한 접근, 수정 할 수 있는 메서드를 public 으로 제공
  • get()메서드만 제공 되는 경우 read-only필드
  • 이클립스에서 자동으로 생성됨.

캡슐화

  • 꼭필요한 정보와 기능만ㄴ 외부에 오픈함
  • 대부분의 멤버변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현하게 함
  • 각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화 한다.

this가 하는일

  • 인스턴스 자신의 메모리를 가리킴
  • 생성자에서 또 다른 생성자를 호출 할떄 사용
  • 자신의 주소(참조값)을 반환함

생성된 인스턴스 메모리의 주소를 가짐

  • 클래스 내에서 참조변수가 가지는 주소값과 동일한 주소값을 가지는 키워드

생성자에서 다른 생성자를 호출하는 this

  • 클래스에서 생성자가 여러 개인경우
profile
헬창목표

0개의 댓글