Java 이론
클래스와 객체
ss__0
2022. 6. 1. 09:11
□ 교재 : Do it! 자바 완전 정복
= 객체지향형 프로그래밍 : 객체를 구성하고 객체단위로 프로그래밍 (필드 / 메서드), 필요한 기능을 호출하는 것
= 객체지향 요소 : (1) 클래스 (2) 인터페이스
- 추상메서드 : 함수의 정의가 미완성된 메서드
- 추상클래스 : 추상(abstract) 메서드를 하나 이상 가지고 있는 클래스
- 인터페이스 : 모든 필드는 public static final, 모든 메서드는 public abstract
- 추상클래스와 인터페이스는 정반대의 의미 ( 여자 & 남자 이런 느낌)
클래스의 구조
= 클래스 밖에 올 수 있는 3가지
- package : .java 파일의 폴더(패키지) 위치
- import : 다른 폴더(패키지) 위치의 클래스를 참조
- 외부클래스(external class) : 외부에 포함된 또 다른 클래스 / public 키워드를 사용할 수 없음 ★public은 오직 하나!
= 클래스 안에 올 수 있는 4가지
- 필드 (멤버)
- 클래스 특징(속성)을 나타내는 변수
- 클래스 {}내에서 만들어진 변수
- 메서드 (멤버)
- 클래스의 기능(void working(){...})
- 리턴타입 + 메서드 이름 + () + {} 로 구성
- 생성자
- 객체 생성 기능 (생성자이름 + () + {} )
- 생성자의 이름은 클래스 이름과 동일해야 함
- 내부클래스(inner class) (멤버)
- 클래스 내부에 정의된 클래스
OOP
- 클래스(class) : 붕어빵기계
- 객체(Object) = 붕어빵, 클래스의 인스턴스
- 인스턴스 멤버 : 단팥, 슈크림... / 필드 , 메서드 , 이너클래스 → 활용하려는 재료. 이것들을 활용하려면 객체를 먼저 생성해야 한다.
A (클래스) | a (참조변수) | = | new (Heap 메모리에 넣어라) | A(); (생성자) |
생성자의 출력값 >>> 객체 ( 필드 , 메서드 , 이너클래스)
"생성자를 통해서 나온 객체를 힙메모리에 넣고 그 주소값을 참조변수 a값에 넣어라"
▶ 객체의 생성
- 메서드의 공유 : 모든 생성 객체는 동일한 메서드(기능)을 가짐.
- 즉, 객체를 구분하는 것은 속성
- 모든 객체는 메서드를 공유
▶ 객체의 활용
- 외부호출 : 참조변수명.필드명, 참조변수명.메서드명
- 여기서 . 이란? 해당번지 위치의 Heap메모리로 이동하라!
- System.out.println(a.m); a가 가르키는 메모리에 가봐 거기에 m값이 있는데 m값을 출력해봐
- a.m =8; a.m에 8을 대입해봐