객체
의사나 행위가 미치는 대상(사전적 의미)
구체적 ,추상적 데이터의 단위(학생,회원,생산,주문,배송)
객체지향 프로그램과 절차지향 프로그래밍
아침에 일어나 학교를 가는과정을 예로들어봅시다
절차지향프로그래밍
- 일어난다>씻는다>밥을 먹는다>버스를 탄다> 요금을 지불한다> 학교에 도착
절차지향 프로그래밍(대표적인 C언어)
클래스는 객체의 청사진(blueprint)입니다.
-객체의 속성은 클래스의 멤머변수(member variable)로 선언함
객체지향 프로그램을 할때는
객체를 정의하고
클래스의 이름은 대문자로 쓰는것이 좋다.
단어가 바뀔떄마다 대문자
하나의 기능을 수행하는 일련의 코드
- 구현된(정의된)함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨.
함수 호출과 스택메모리
- 스택 : 함수가 호출될떄 지역 변수들이 사용하는 메모리
- 함수의 호출이끝나면 자동반환
- 객체의 기능을 구현하기위해 클래스 내부에 구현되는 함수
- 멤버 함수 이라고도 함
- 메서드를 구현함으로써 객체의 기능이 구현 됨
인스턴스가 생성되는것을 힙메모리라고 함.
클래스는 객체의 속성을 정의하고, 기능을 구현하여 만들어 놓은 코드상태
실제 클래스기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 됨
new라는 키워드를 사용하여 인스턴스 생성.
인스턴스- new 키워드를 사용하여 클래스를 메모리에 생성한 상태
멤버변수:클래스의 속성 ,특성
메서드:멤버 변수를 이용하여 클래스의 기능을 구현함 함수
참조변수: 메모리에 생성된 인스턴스를 가리키는 변수
참조값: 생성된 인스턴스의 메모리 주소 값
- 생성자 기본문법
- 객체를 생성할떄 new키워드를 함께 사용
- 생성자는 일반 함수처럼 기능을 호출하는것 이 아니고 객체를 생성하기위해 new 와함꼐 호출
- 반드시 적어도 하나이상의 생성자가 존재
- 클래스에 생성자를 구현하지 않아도 new키워드와 함꼐 생성자를 호출할 수 있음
- 클래스에 생성자가 하나도 없는 경우 컴파일러가 생성자 코드를 넣어 줌
- 매개 변수가 없음, 구현부가 없음.
- 클래스형으로 변수를 선언
- 기본 자료형은 사용하는 메모리의 크기가 정해져있지만, 참조 자료형은 클래스에 따라 다름.
- 참조 자료형을 사용할 때는 해당 변수에 대해 생성하여야 함.(String 클래스는 예외적으로 생성하지 않고 사용할 수 있음)
- 클래스 외부에서 클래스의 멤버변수, 메서, 생성자를 사용할수 있는지 여부를 지정하는 키워드
- private: 같은 클래스 내부에서만 접근가능(외부클래스,상속관게의 클래스에서도 접근불가)
- protected:같은 패키지나 상속관계의 클래스에서 접근 가능하고 그 외 외부에서는 접근 할 수 없음
- public:클래스의 외부 어디서나 접근 할 수 있음.
- 꼭필요한 정보와 기능만ㄴ 외부에 오픈함
- 대부분의 멤버변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현하게 함
- 각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화 한다.
- 인스턴스 자신의 메모리를 가리킴
- 생성자에서 또 다른 생성자를 호출 할떄 사용
- 자신의 주소(참조값)을 반환함
- 클래스에서 생성자가 여러 개인경우