728x90
반응형
클래스 선언
- 대표 이름을 하나 결정하고 이것을 클래스 이름으로 한다.
- 식별자 작성 규칙에 따라서 만들어야한다.
- 일반적으로 소스 파일당 하나의 클래스를 선언하지만, 두개 이상의 선언도 가능
객체 생성과 클래스 변수
new 클래스;
- new 는 클래스로부터 객체를 생성시키는 연산자
- new 연산자로 생성된 객체는 메모리 힙(heap) 영역에 생성
클래스의 구성 멤버
- 필드 (Field), 생성자 (Constructor), 메소드 (Method) : 생략되거나 복수개 생성가능
- 필드 : 객체의 데이터가 저장되는 곳
- 생성자 : 객체 생성 시 초기화 역할
- 메소드 : 객체의 동작에 해당하는 실행 블록
필드 (Field)
- 객체의 고유 데이터, 부품 객체, 상태 정보를 저장하는 곳
- 변수와 다른점 : 생성자와 메소드 전체에서 사용되며 객체가 소멸되지 않는한 객체와 함께 존재(변수는 생성자와 메소드 내에서만 사용하고 생성자와 메소드가 실행 종료되면 자동 소멸
- 초기값을 지정하지 않는 경우, 자동으로 기본 초기값 설정
- 클래스 중괄호{} 블록 어디서든 존재
- 생성자 선언과 메소드 선언 앞과 뒤 어떤곳에서도 필드 선언 가능
- 필드를 사용한다는 것은 필드값을 읽고 변경하는 작업
- 클래스 외부에서 사용할 경우 우선적으로 클래스로부터 객체를 생성한 뒤 필드를 사용해야한다.
생성자 (Constructor)
- 객체 생성시 초기화 담당
- 리턴타입이 없음
- 생성자 실행없이는 객체를 만들 수 없다.
- 모든 클래스는 생성자가 반드시 존재, 하나 이상을 가질 수 있다.
- 다양한 방법으로 객체를 생성할 수 있도록 생성자 오버로딩을 제공한다.
오버로딩 : 메서드의 이름은 같고 매개변수의 갯수나 타입이 다른 함수를 정의하는 것을 의미한다.
오버라이딩 : 상위 클래스의 메서드를 하위 클래스에서 재정의 하는 것으로 매서드의 이름은 물론 파라메터 갯수나 타입도 동일해야 하며, 주로 상위 클래스의 동작을 상속받은 하위 클래스에서 변경하기 위해 사용된다.
메소드 (Method)
- 객체의 동작에 해당하는 중괄호 {}블록을 말한다.
- 리턴값이 있을수도있고, 없을 수도 있다.
- 리턴값이 없는 메소드는 리턴 타입에 void, 있는 타입은 리턴타입에 맞추어 작성
- 이름은 자바 식별자 규칙에 맞게 작성
- 매개 변수의 수를 모르는 경우 배열타입으로 선언
- 리턴값이 없는 메소드의 경우 return;문을 사용하면 메소드 실행을 강제 종료시킨다.
- 클래스의 내,외부 호출에 의해 실행된다.
- 내부에서 호출할 경우 단순한 메소드 이름으로 호출
- 외부에서 호출할 경우 클래스로 객체를 생성하고 참조변수를 이용해 메소드를 호출
클래스 참조변수 = new 클래스(매개값..);
참조변수.메소드(매개값 ...); - 같은 이름의 메소드를 여러 개 선언하는 것 : 메소드 오버로딩
- 매개 변수의 타입과 개수, 순서가 똑같은 경우 매개 변수 이름만 바꾸는 것은 메소드 오버로딩 이라고 볼 수 없다.
- 자바 가상 기계는 일차적으로 매개 변수 타입을 보지만, 자동타입 변환이 가능한지 검사하기도 한다.
인스턴스 멤버와 this
- 인스턴스 멤버란 객체를 생성한 후 사용할 수 있는 필드와 메소드를 말한다.
- 인스턴스 필드, 인스턴스 메소드
- 객체에 소속되어 객체 없이는 사용할 수 없다.
- 객체 내부에서 인스턴스 멤버에 접근하기 위해 this를 사용할 수 있다.
728x90
반응형
'JAVA' 카테고리의 다른 글
[JAVA] toString() 오버라이딩 (0) | 2022.06.24 |
---|---|
[JAVA] 컬렉션 프레임워크 (List, Set, Map) (0) | 2022.06.24 |
[JAVA] 객체지향 프로그래밍 (0) | 2022.06.20 |
[JAVA] 배열, 함수 활용문제 (로또) (0) | 2022.06.19 |
[JAVA] 메인 메서드가 public static void 이유 (0) | 2022.06.17 |