/*
* 절차지향 프로그래밍 객체지향 프로그래밍
* 1.2.3.4 ... 어제까지 이걸 했죠? 호출해서 실행..
*
* 객체의 행동은 동사형으로 이름을 정한다. ~~하다. 뒤에 괄호가 있음
* 메소드, 행위, 함수, 일한다, 보고 듣는다. ...
* 객체의 속성은 명사형으로 이름을 정한다... 수치화 할 수 있는 것들? 소문자로 시작,
* 멤버변수, 특성, 이름, 필드, 상태, 주소, 직업 등...
*
* 하나의 클래스 파일로 똑같은 여러개가 나온다? 모양이 똑같다.
* 붕어빵과 붕어빵틀! 모양은 다 똑같음!!(모양 = 속성)
* 붕어빵틀은 클래스! 붕어빵은 인스턴스 들!
* 객체는 클래스가 있어야 생성 가능하다!
* ====> 클래스에서 만들어진 객체를 인스턴스라고 한다!
*
*
* static! 객체 생성 없이 클래스 명으로 접근
*/
//인스턴스 변수 = 클래스 바디에 생성
// 초기화 하지 않아도 자바가 알아서 해줍니다.!!(지역변수와 다른 점)
// 클래스에서 사용하기 위해 이 곳에서 만듭니다.
//지역변수 = 메소드 괄호 안에서 선언(){여 기}
// 괄호가 닫히면 사라집니다. (->데이터 스코프)
// 사용하기 전에 초기화 해야합니다. (값이 미리 대입되어야 해요)
//클래스 파일을 한 파일에 여러개 만들수도 있구나!
/*
* [접근지정자(public)] static void(리턴타입) 메소드명([파라미터 혹은 매개변수]){}
* []는 있어도 되고 없어도 된다~
*
* void는 값을 리턴하면 에러!!
*
* [접근지정자] : public, private, 생략, protected
*
*/
//객체지향!
/*
* 절차지향은 하나의 로직을 순서대로 진행하여 처리합니다.
* 객체지향은 객체의 호출 순서에 영향을 받습니다.
*
* 객체를 만들어 순서에 연연하지 않고 자주 쓰거나 필요한 부품은
* 따로 정의하여 모듈화 하는 등의 장점을 가진 방법입니다.
*
* 객체
* 우리 주변에 있는 모든 것들은 객체이다. 객체를 만들기 위해선 클래스가 필요하다.
* = 현실에 존재하는 사물들
*
* 클래스
* 붕어빵틀 이라고 생각하자. 클래스 안에 메소드가 들어간다.
* = 객체를 컴퓨터에서 구현하기 위해 필요한 설계도 같은 개념
* 인스턴스 = 메모리 상에 만들어진 객체
*
* 메소드
* 행동 이라고 생각하면 편하다..
* = 클래스 속에 존재. 어떤 기능을 수행하는 명령 문장들
*
*/
/* 객체와 인스턴스
* 클래스에 의해서 생성된 객체를 인스턴스 라고 한다.
* 그렇다면 객체와 인스턴스의 차이는?
* Animal a1 = new Animal(); 로 만들어진 a1은 객체 입니다.
* 그리고 a1 객체는 Animal의 인스턴스(instance) 입니다.
* 즉 인스턴스 라는 말은 특정 객체가 어떤 클래스의 객체인지를
* 관계 위주로 설명할 때 사용합니다.
* 즉 'a1은 인스턴스' 보다는 'a1은 객체',
* 'a1은 Animal의 객체' 보다는 'a1은 Animal의 인스턴스'라는 표현이 잘 어울립니다.
*
* 클래스와 인스턴스
* 과자를 만드는 과자 틀과 만들어진 과자가 있습니다.
* 과자틀 -> 클래스
* 과자 -> 객체 - 인스턴스
*
*/
//[기본값] int:0, String:null(참조형의 기본값), char: ,double:0.0, boolean:false
//null
/*
* name을 실행하면 null이 나왔습니다.
* null이라는 것은 값이 할당되지 않은 상태를 말합니다
* Animal이라는 클래스의 인스턴스 변수로 name을 추가했지만
* 아무런 값도 대입하지 않았기 때문에 null이라는 값이 출력됩니다.
*/
////점심 후
atom.io