참조 : Do it Java 완전정복
http://www.yes24.com/Product/Goods/103389317
클래스와 객체 개념
- 객체(Object)는 사용할 수 있는 실체를 의미
- 클래스는 객체를 만들기 위한 설계도
- 구조체 : 서로다른 자료형도 1개의 자료형으로 묶어 관리가능
- 클래스 : 다양한 자료형의 데이터를 묶어 관리할 수 있을 뿐 아니라 데이터를 처리하는 다양한 기능까지 함께 관리하는 문법요소
- 클래스에 포함돼 클래스 안에 있는 데이터를 처리하는 기능을 ‘메서드’라고한다.
절차지향 과 객체지향
- 절차지향형 프로그래밍(PP:Procedural Programming) : 순서에 맞춰 단계적으로 실행하도록 명령어를 나열하는 방식 - 기능중심
- 객체지향형 프로그래밍(OOP: Object-Oriented Programming) : 프로그램을 객체 단위로 수행하는 방식 - 객체 중심
- 각 객체에 포함된 데이터(속성or 필드)와 기능(메서드)을 상호 호출함으로써 프로그램을 구성하는방식
- 자바는 프로그램을 객체 단위로 구성해 상호 연동시키으로써 프로그램 실행
- 클래스나 인터페이스를 활용해 객체를 직간접적으로 만들고, 이를 활용해 프로그램 실행
클래스 구조
- 클래스명은 대문자로 시작
- 클래스의 정의 class 클래스명 { ... }
- 자바 소스 파일구조
- 클래스 밖에 올수 있는 4가지 package ; 1. 패키지 import; 2. 임포트 class 클래스명{...} 3. 외부클래스
- 클래스 안에 올수 있는 4가지 public class A { → A는 파일명과 동일해야함 int a = 3; 1.필드 double abc() {...} 2. 메서드 A() {...} 3. 생성자 class 클래스명 {...} 4.이너클래스
클래스 외부 구성요소
- 패키지 : 주석제외 반드시 첫번째줄에 위치
- 임포트 : 다른 패키지의 클래스 사용하고자 할때 사용
- 외부클래스 : 1개의 .java파일에 여러개의 클래스 포함 가능
클래스 내부 구성 요소
- 필드: 클래스의 특징(속성) 을 나타내는 변수
- 메서드 : 클래스가 지니고 있는 기능(함수)
- 생성자: 클래스의 객체를 생성하는 역할
- 이너클래스
- 클래스의 멤버 : 생성자를 제외한 (필드, 메서드, 이너클래스)
클래스와 객체(인스턴스) 구분하기
- 클래스의 모든 특징(필드)와 기능(메서드)들을 사용하려면 클래스를 이용해 객체를 만든후 그 객체 속의 필드와 메서드등을 사용해야한다.
- 인스턴스화 : 클래스의 생성자로 객체를 만드는과정
- 인스터스: 인스턴스화로 만들어진 객체
- 인스턴스 멤버 : 객체 속에는 클래스 내부구성요소중 생서자를 제외한 나머지 요소가 포함
객체의 생성과 활용
- 클래스의 객체 생성
- 클래스명 참조 변수명 = new 생성자(); ex) A a = new A(); → A() 생성자로 만든 객체를 힙 메모리에 넣고, 위칫값을 A타입의 참조변수 a에 저장하라!
- new : ~을 힙 메모리에 넣어라 의미
- 생성자: 클래스와 이름이 동일하지만, 뒤에 소괄호가 붙어 있다.
- 메모리구조를 살펴보면 메서드 구현 코드는 클래스영역 안에 저장해 놓고, 객체 안에서는 메서드 영역의 위치만 가리키고 있다. → 1개의 클래스로 만든 모든 객체는 속성(필드)은 달라도 기능(메서드)은 동일하기 때문이다. → 객체를 100개 만들어도 메서드는 한번만 만들면된다. → 동일한 클래스로 만든 객체들은 기능(메서드)의 내용이 동일하므로 메서드 공유가능
객체 활용
- 자바에서는 힙 메모리에 직접 접근 불가 → 위치 정보를 포함하고 있는 참조 변수를 이용해서만 객체 접근가능
- 포인트 연산자(.) : 해당 위치에 있는 객체 안을 보라
- 필드와 메서드 활용