남궁성님의 자바의 정석을 기반으로 합니다.
* 객체지향 언어의 등장 배경
- 소프트웨어의 빠른 변화에 대응하지 못함 -> 해결책으로 객체지향언어 도입(절차형 -> 객체지향형)
* 객체지향 언어의 특징
- 코드의 재사용성이 높다.
- 유지보수가 용이하다.
- 중복 코드 제거
* 핵심 개념
- 캡슐화, 추상화, 다형성, 정보은닉, 상속
* 클래스와 객체
- 클래스 : 객체를 정의해 놓은 것, 객체를 생성하는데 사용
- 객체 : 실제로 존재하는 것, 사물 또는 개념 - 속성(변수)과 기능(메서드)으로 이루어져있다.
예) 클래스-제품 설계도 , 객체-제품 / 클래스-붕어빵 기계, 객체-붕어빵
// 속성 예제
class Tv{
String color; // 색깔
boolean power; // 전원상태
int channel; // 채널
void power() { power = !power; }
void channelUp() { channel++; }
void channelDown() { channel--; }
}
- 인스턴스 : 특정 클래스로부터 생성된 객체, 반면에 일반 객체는 모든 인스턴스를 대표하는 일반적 용어.
- 인스턴스화 : 클래스로부터 객체를 만드는 과정
* 클래스(설계도)와 객체(제품) 필요성
- 객체(제품)를 생성하기 위함.
- 객체는 사용하기 위해 만듦
- 객체가 가진 속성과 기능을 사용하는 것
* 클래스 작성 방법
- 소스파일의 이름은 public class의 이름과 동일해야 한다.
- 만일, public class가 없다면 소스파일에 포함된 여러 클래스 중의 이름을 아무거나 사용해도 된다.
- 자바는 대소문자를 구분하기 때문에 대소문자도 일치시켜야 한다.
* 객체의 생성과 사용 순서
1. 클래스를 만든다.
2. 클래스 타입의 참조변수를 생성한다.
3. 객체를 생성한다.
4. 객체를 사용한다. (객체가 갖고있는 변수와 메서드를 사용한다)
* 하나의 인스턴스를 여러개의 참조변수가 가리키는 것은 가능 (예. TV 클래스의 참조 변수 t1, t2...등 생성 가능)
* 여러 인스턴스를 하나의 참조변수가 가리키는 것은 불가능 (예. 변수는 하나의 값만 저장 가능하다. 참조 변수도 변수이기 때문에 불가능)
'Programming > Java' 카테고리의 다른 글
[JAVA] 클래스 변수와 인스턴스 변수 (0) | 2021.10.08 |
---|---|
[JAVA] 자바의 클래스 (0) | 2021.10.08 |
[JAVA] 자바의 정석 (0) | 2021.10.05 |
[JAVA STUDY] 3주차 : JAVA 연산자, 자바 연산자 종류 (0) | 2021.06.07 |
[JAVA STUDY] 2주차 : Java 프리미티브 타입(Primitive type), 변수(Variable), 배열(Array) (0) | 2021.06.05 |