Chapter 06 클래스
06-1 객체 지향 프로그래밍
06-2 필드
06-3 생성자
06-4 메소드
06-5 인스턴스 멤버와 정적 멤버
06-6 패키지와 접근 제한자
06 클래스
06-1 객체 지향 프로그래밍
시작하기 전에
- 객체(Object)란? 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 1) 자신의 속성을 가지고 있고 2) 식별 가능한 것을 말한다.
ex) [사람] 속성: 이름, 나이 / 동작: 웃다, 걷다
ex) [자동차] 속성: 색깔, 모델명 / 동작: 달린다, 멈춘다
여기서 속성은 필드(filed), 동작은 메소드(method)
- 객체 모델링(Object Modeling)이란? 현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 말한다.
객체의 상호작용
- 객체들은 각각 독립적으로 존재하고, 다른 객체와 서로 상호작용하면서 동작한다.
- 객체들 사이의 상호작용 수단은 메소드이고, 객체가 다른 객체의 기능을 이용하는 것이 메소드 호출이다.
리턴값 = 전자계산기객체.더하기메소드(매개값1, 매개값2, ...);
int result = Calculator.add(10,20)
- 객체에 도트(.) 연산자를 붙여 필드와 메소드에 접근한다.
- 매개값은 실행을 위한 데이터이고, 리턴값은 메소드 실행 후 호출한 곳으로 돌려주는 값이다.
- 이렇게 객체는 매개값과 리턴값을 통해 데이터를 주고 받는다.
객체간의 관계
- 집합 관계
- 부품과 완성품의 관계
- ex) 부품(엔진, 타이어, 핸들)과 자동차
- 사용 관계
- 객체 간의 상호작용
- ex) 사람과 자동차
- 상속 관계
- 상위(부모) 객체를 기반으로 하위(자식) 객체를 생성
- ex) 기계와 자동차
💡 객체 지향 프로그래밍은 집합/사용 관계에 있는 객체를 하나씩 설계한 후 조립하여 하나의 프로그램을 개발 하는 기법이다.
객체와 클래스
- 클래스(class)란? 자바의 설계도
- 객체를 생성하기 위한 필드와 메소드가 정의 되어 있다.
- 인스턴스(instance)란? 클래스로부터 만들어진 객체
- ex) 하나의 자동차 설계도(클래스)로 여러 대의 자동차(인스턴스) 만들기
- 객체 지향 프로그래밍 단계
- 클래스 설계 → 설계된 클래스로 사용할 객체 생성 → 객체 이용
클래스 선언
- 객체 구상 후 클래스 이름을 결정
- 하나 이상의 문자로 이루어져야 한다.
- 첫 글자에는 숫자 올 수 없다.
- ‘$’, ‘_’ 외의 특수문자는 사용할 수 없다.
- 자바 키워드는 사용할 수 없다.
- 대소문자를 구분한다.
- 통상적으로 첫 글자를 대문자, 이후 다른 단어의 첫글자를 대문자로 작성한다. ex) ChatClient
- ‘클래스 이름.java’로 소스 파일 생성
- 일반적으로 소스 파일 하나 당 한개의 클래스 선언한다. (2개 이상 선언도 가능하긴함)
- 소스 파일은 클래스 선언 담고있는 저장단위일 뿐, 클래스 자체가 아니다.
public class Car {
}
객체 생성과 클래스 변수
- new 클래스();
- new 연산자로 메모리 힙 영역에 객체 생성
- 객체 생성 후 객체 번지 리턴
- 클래스 변수에 저장하여 변수 통해 객체 사용 가능
클래스 변수;
변수 = new 클래스();
클래스 변수 = new 클래스();
- Student 클래스를 선언하고, StudentExample 클래스의 main() 메소드에서 Student 객체를 생성하는 예제
package chap06.sec01.exam01;
public class Student {
}
package chap06.sec01.exam01;
public class StudentExample {
public static void main(String[] args) {
Student s1 = new Student(); // Student 클래스의 인스턴스
System.out.println("s1 변수가 Student 객체를 참조합니다.");
Student s2 = new Student(); // Student 클래스의 인스턴스
System.out.println("s2 변수가 또 다른 Student 객체를 참조합니다.");
}
}
클래스의 두 용도
- 라이브러리(API: Application Program Interface) 클래스
- 객체 생성 및 메소드 제공 역할 → Student.java
- 실행 클래스
- main() 메소드 제공 역할 - StudentExample.java
클래스의 구성 멤버
- 필드(Field)
- 객체의 데이터가 저장되는 곳
- 생성자(Constructor)
- 객체 생성 시 초기화 역할 담당
- 메소드(Method)
- 객체의 동작에 해당하는 실행 블록
public class ClassName {
// 필드
int fieldname;
// 생성자
ClassName() { ... }
// 메소드
void methodName() { ... }
}
6가지 핵심 키워드
- 클래스: 객체를 만들기 위한 설계도이다.
- 객체: 클래스로부터 생성되며 ‘new 클래스()’로 생성한다.
- new 연산자: 객체 생성 연산자이며, 생성자를 호출하고 객체 생성 번지를 리턴한다.
- 클래스 변수: 클래스로 선언한 변수를 말하며 해당 클래스의 객체 번지가 저장된다.
- 인스턴스: 객체는 클래스의 인스턴스이다.
- 클래스 멤버: 클래스에 선언되는 멤버는 필드, 생성자, 메소드가 있다.
※ 이 내용은 책 [혼자 공부하는 자바]를 보고 정리한 내용입니다.
'🌎 Web > Java' 카테고리의 다른 글
[Java] 메소드(method) (2) | 2022.11.28 |
---|---|
[Java] 필드(Field)와 생성자(Constructor) (4) | 2022.11.25 |
[Java] 정수 나눗셈 연산, 증감 연산자, while문과 조건식 (0) | 2022.11.18 |
[Java] 논리 연산자 (0) | 2022.03.16 |
[Java] == vs equals (0) | 2022.03.13 |