자동차
String 브랜드
String 컬러
long 가격
엔진스타트(){}
엔진스탑(){}
자동차 엄마차;
자동차 엄마차 = new 자동차()
객체화(instance)
공통요소를 한 번만 선언해놓고 가져다 사용만 하도록 설계한다.
1. 타입이다.
클래스 안에 선언된 변수와 메소드를 사용하고 싶다면
해당 클래스의 타입으로 객체를 선언해야 한다.
2. 주어이다.
원숭이가 먹는다 바나나를
Monkey.eat("바나나");
class 클래스명 {
필드(변수, 메소드);
}
1. 객체화(instance) :
- 객체(instance variable)를 만드는 작업
- 추상적인 개념을 구체화 시키는 작업
- 클래스명 객체명 = new 생성자(); //선언
- 객체명.필드명 //사용
※ . (마침표)
- 하위 연산자, 멤버변수 접근 연산자, 닷 연산자, 점 연산자
- 주소값 뒤에서만 사용이 가능하며 해당 주소를 참조하는
명령어다.
2. static 키워드를 사용하여 클래스 이름으로 직접 접근할 수 있다.
static필드는 컴파일러가 최초 한 번만 메모리에 올려주기 때문에
객체로 접근할 필요가 없다. 이러한 필드를 static필드라고 부른다.
클래스 이름 뒤에 소괄호가 있는 형태, 메소드와 기능은 똑같지만
메소드라고 부르지 않는다. 생성자는 리턴이라는 기능이 존재하지
않기 때문이다.
- 해당 클래스의 필드를 메모리에 할당한 후 부여된 주소값을
가져온다.
매개변수가 없는 생성자이며 클래스 선언시 자동으로 선언된다.
사용자가 직접 기본생성자를 선언하게 되면 생성자는 자동으로 만들어지지 않는다.
필드에 접근한 객체가 누구인지 알아야 해당 필드에 접근할 수가 있다.
이 때 접근한 객체가 가지고 있는 필드의 주소값이 this라는 변수에 자동으로
담긴다.
Stack Data영역
지역변수, 매개변수 전역변수, 정적변수(static)
초기화 직접 자동
생명주기 } new , 프로그램 종료시
※static
모든 객체가 공유해야할 때 사용한다.
다형성(polymorphism)
1. 오버로딩(OverLoading)
매개변수의 개수 또는 타입이 다르면 동일한 이름의 메소드로
선언할 수 있다.