클래스 (Class)
클래스란 자바 언어의 기본단위로 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용됩니다. 자바에서는 이러한 설계도인 클래스를 가지고, 여러 객체를 생성하여 사용하게 됩니다. 클래스 파일은 .java
확장자명을 가지고 있습니다. 서로 다른 패키지에서 클래스명은 중복 생성 가능하며 클래스명은 대문자로 시작해야 합니다.
클래스의 구성
클래스는 객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메서드(method)로 구성됩니다. 필드란 클래스에 포함된 변수(variable)를 의미합니다. 또한 클래스는 생성된 필드를 초기화해주는 메서드인 생성자(constructor)를 가집니다.
class Car { // 클래스 이름
// 필드
private String carName;
private int carYear;
// 생성자
Car (String carName, int carYear) {
this.carName = carName;
this.carYear = carYear;
}
// 메서드
public String getCar() {
return "carName: " + this.carName + " carYear: " + this.carYear;
}
}
메서드 (Method)
메서드란 어떠한 특정 작업을 수행하기 위한 명령문의 집합을 의미합니다. 메서드는 input, output, 기능을 가지고 있어야 합니다.
메서드 정의
1.접근제어자 2.반환타입 3.메서드이름(4.매개변수목록) { // 선언부
// 5.구현부
}
- 접근 제어자 : 해당 메서드에 접근할 수 있는 범위를 명시합니다.
- 반환 타입(return type) : 메서드가 모든 작업을 마치고 반환하는 데이터의 타입을 명시합니다.
- 메서드 이름 : 메서드를 호출하기 위한 이름을 명시합니다.
- 매개변수 목록(parameters) : 메서드 호출 시에 전달되는 인수의 값을 저장할 변수들을 명시합니다.
- 매개변수, 인자, 인수, 입력값, parameter, argument, ...
- 구현부 : 메서드의 고유 기능을 수행하는 명령문의 집합입니다. 반환 타입에 따라 결과를 반환합니다.
- 반환값, 결과값, output, return, ...
메서드 시그니처(method signature)
메서드의 선언부에 명시되는 매개변수의 리스트를 가리킵니다. 만약 두 메서드가 매개변수의 개수와 타입, 그 순서까지 모두 같다면, 이 두 메서드의 시그니처는 같다고 할 수 있습니다.
변수 (Variable)
변수란 데이터를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미합니다.
변수 3요소
- 자료형 (공간)
- 주소
- 변수명 (이름)
자료형
자료형 | 데이터 | 크기 | 표현 가능 범위 |
boolean | 참, 거짓 | 1byte | true, false |
char | 문자 | 2byte | 유니코드 문자 |
byte | 정수 | 1byte | -128 ~ 127 |
short | 정수 | 2byte | -32,768 ~ 32,767 |
int | 정수 | 4byte | -2,147,483,648 ~ 2,147,483,647 |
long | 정수 | 8byte | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
float | 실수 | 4byte | ±(1.40 x 10^-45 ~ 3.40 x 10^38) |
double | 실수 | 8byte | ±(4.94 x 10^-324 ~ 1.79 x 10^308) |
기본 자료형(primitive type)
주소
자바는 JVM을 사용하는데, JVM은 공간을 관리해주며 자동으로 공간을 지정해줍니다. 주소는 공간을 할당하면 즉시 임의로 지정되며 해시값으로 지정되기 때문에 변수를 호출하기 어렵습니다.
※ JVM(Java Virtual Machine) : 자바 프로그램 실행 환경을 만들어주는 소프트웨어
변수명
변수명 생성 규칙(식별자 규칙)은 다음과 같습니다.
- 변수명은 영문자(대소문자), 숫자, 언더스코어(_), 달러($)로만 구성할 수 있습니다.
- 변수명은 숫자로 시작할 수 없습니다.
- 변수명 사이에는 공백을 포함할 수 없습니다.
- 변수명으로 자바에서 정의된 키워드(keyword)는 사용할 수 없습니다.
변수 선언, 초기화
int num; // 변수 선언
num = 10; // 변수 초기화
String str = "string"; // 변수 선언과 동시에 초기화
패키지 (Package)
소스코드를 정리할 서랍 같은 공간으로 비슷한 성격의 자바 클래스들을 모아 놓은 자바의 디렉토리입니다. 같은 이름의 클래스라도 서로 다른 패키지에 존재하는 것이 가능하므로, 자신만의 패키지 체계를 유지함으로써 충돌이 발생하지 않습니다.
GitHub
https://github.com/Qkrwnsgus0522/Java