클래스(반)
- 공통적인 요소들을 추상적으로 묶어놓은 틀
- 여러 변수들과 메소드들을 둘다 관리 및 사용하기 위해 사용
객체지향의 반대는 절차지향이다.
주어이다.
- 모든 문장 맨앞에 클래스가 나온다.
- 영어는 맨 앞을 항상 대문자로 적는다.
- 따라서 클래스는 주어이고, 대문자로 시작한다.
Monkey.eat(food)
주어 동사 목적어타입이다.
- 클래스는 추상적인 개념이고, 이 클래스 안에는 필드가 존재한다. (필드: 클래스 내부)
- 추상적인 것을 바로 사용할 수 없기 때문에 그 필드들을 구체화 시킨 대상이 필요하다.
- 구체화시킨 대상 : 객체
- instance variable 이라고 부른다.
- instance: 예시 -> 추상적인 개념의 한 예시로써 객체가 나오기 떄문에 instance varible 이라고 부른다.
String str;
String 클래스의 객체의 타입이었음
클래서 선언
- 다른 클래스 외부에서 선언한다.
class 클래스명{
필드(변수 선언, 메소드 선언)
실행문금지 X
}
클래스의 사용
- 클래스는 추상적인 틀이기 때문에 먼저 객체화를 진행한다.
클래스명 객체명 = new 클래스명();
객체.변수
객체.메소드()
- 하나의 저장공간에는 단 한개의 값만 담을 수 있다.
- 필드에는 여러개의 값이 존재하기 때문에 필드는 다른곳(Heap)에 할당되고, 할당된 필드의 주소값을 저장하는 것이 객체이다.
생성자
- 클래스 명 뒤에 소괄호
- 생성자는 메소드와 똑같은 기능을 가지고 있다.
- return 을 할 수 없기 때문에 메소드라고 부르지 않는다.(만들어진 필드의 주소값을 이미 내부적으로 리턴하고 있다고 생각하면 이해하기 편함)
클래스명 객체명 = new 클래스명();
- 클래스 선언시 자동적으로 생성자가 만들어지고 코드상에 나타나지 않는다.
- 이러한 생성자를 기본생성자라고 한다.
- 만약 직접 생성자를 선언하게 되면, 기존에 있던 기본 생성자는 사라지게 된다.
생성자의 목적
- 객체화의 목적: 클래스의 필드를 똑같이 복사해서 메모리에 할당해 주고 할당된 필드의 주소값을 가져온다. 이 주소값을 객체에 넣어두고 사용한다.
- 초기화의 목적: 생성자는 호출시 내부의 내용을 모두 수행한다.
this
객체 구별용 변수
- 클래스 선언 시 내부적으로 선언되어 생성된다.
- 클래스 필드에서 하나의 메소드로 여러 객체들을 다루어야한다.
- 메소드 내부에서 필드를 사용하고자 할 떄 어떤 객체의 필드인지 구별할 수 있도록 사용
class 객체 = this
this.필드명
지역변수가 존재하지 않을 때는 생략 가능
'Java > Java(base)' 카테고리의 다른 글
[Java] 다형성 Polymorphism : Overloading(오버로딩), Overriding(오버라이딩) (0) | 2021.11.29 |
---|---|
[Java] 상속(inheritance), 자식클래스 생성자, super() (0) | 2021.11.29 |
[Java] storage class(저장 기억 부류) : 변수 종류 //지역변수 전역변수 정적 변수 (0) | 2021.11.29 |
[Java] 메소드 Method (0) | 2021.11.29 |
[Java] 배열(1차원 배열, 2차원 배열) (0) | 2021.11.29 |