🧠 Java 복습 정리 (배열 · 객체 · 클래스 · 메소드)
📦 [ 배열 (Array) ]
| 항목 | 설명 |
|---|
| 📘 정의 | 동일한 자료형의 데이터를 순서대로 저장하는 자료 구조 |
| ⚙️ 특징 | 1️⃣ 동일한 자료형만 저장 가능 2️⃣ 고정 길이 구조 (추가/삭제 불가) 3️⃣ 요소 기본값 자동 할당 4️⃣ 인덱스는 0부터 시작 |
🔹 기본값
| 자료형 | 기본값 |
|---|
| 정수형 | 0 |
| 실수형 | 0.0 |
| 논리형 | false |
| 참조형(객체) | null |
💡 사용법
| 구분 | 예시 | 설명 |
|---|
| 선언/생성 | int[] arr = new int[3]; | 크기 지정 |
| 초기화 | double[] nums = {3.14, 5.1, 8.1}; | 값 직접 할당 |
| 호출 | arr[0]; | 인덱스로 접근 |
| 길이 | arr.length; | 배열 길이 반환 |
| 문자열 변환 | Arrays.toString(arr); | 배열 내용 출력 |
🔁 배열과 반복문
for (int i = 0; i < arr.length; i++) { }
for (int value : arr) { }
🧱 [ 객체 (Object) ]
| 항목 | 설명 |
|---|
| 📘 정의 | 클래스에 기반하여 생성된 구체적인 실체 |
| 🧩 생성 방법 | 클래스명 변수명 = new 클래스명(); |
| ⚙️ new 연산자 | 메모리에 새로운 객체 생성 및 주소 반환 |
💡 객체 사용법
| 구분 | 예시 | 설명 |
|---|
| 선언 | Car myCar = new Car(); | 객체 생성 |
| 멤버변수 호출 | myCar.model; | 접근 연산자 . 사용 |
| 멤버변수 수정 | myCar.color = "Red"; | 값 변경 가능 |
| 멤버 추가/삭제 | ❌ 불가능 | 클래스 구조는 컴파일 후 수정 불가 |
🏗️ [ 클래스 (Class) ]
| 항목 | 설명 |
|---|
| 📘 정의 | 객체를 만들기 위한 설계도 |
| ⚙️ 구성요소 | 1️⃣ 멤버변수 (속성) 2️⃣ 메소드 (기능) 3️⃣ 생성자 (초기화 함수) |
💡 클래스 작성 예시
class Product {
int price;
String name;
public Product() {}
public Product(String name, int price) {
this.name = name;
this.price = price;
}
void printInfo() {
System.out.println(name + ": " + price + "원");
}
}
💡 Tip
.java 파일 내에는 클래스 1개만 작성 권장
- 실행용(main) 클래스와 설계용 클래스는 분리
| 클래스 구분 | 설명 |
|---|
| 실행 클래스 | main() 함수 포함 |
| 설계 클래스 | 객체 생성 목적 |
⚙️ [ 메소드 (Method) ]
| 항목 | 설명 |
|---|
| 📘 정의 | 하나의 기능을 수행하는 명령어의 집합 |
| ⚙️ 기본 형태 | 반환타입 메소드명(타입 매개변수) { 실행코드; return 값; } |
🔹 주요 구성요소
| 용어 | 설명 | 예시 |
|---|
| 메소드명 | 기능의 이름 (카멜표기법 권장) | getName() |
| 매개변수 | 메소드 실행 시 입력값 저장 변수 | int a, String b |
| 반환타입 | 메소드 실행 후 반환되는 자료형 | int, String, void |
| 반환값 | 메소드 종료 시 반환되는 실제 값 | return total; |
| 인수값 | 메소드 호출 시 전달되는 값 | obj.method(10); |
⚠️ 반환타입과 반환값의 자료형은 반드시 일치해야 함
⚠️ 반환값은 항상 하나만 존재
⚠️ 반환값이 없을 경우 void 사용
💡 메소드 선언 & 호출 예시
class MathUtil {
int add(int a, int b) {
return a + b;
}
}
MathUtil util = new MathUtil();
int result = util.add(5, 3);
🔍 [ 메소드와 멤버변수의 차이 ]
| 항목 | 멤버변수 | 메소드 |
|---|
| 할당 시점 | 객체마다 별도 생성 | 클래스 내 공유 |
| 목적 | 데이터 저장 | 기능 수행 |
| 메모리 위치 | 힙 영역 | 메소드 영역 |
💭 [ 생각할 점 ]
1️⃣ 자료형(Type) 에 집중하자 — 타입 불일치 시 오류 발생
2️⃣ boolean 반환 메소드는 if 조건문 안에서 직접 호출하지 말고 변수로 받기
→ ✅ boolean check = method();
3️⃣ 요구사항을 천천히 해석하고 기능 단위로 나누어 구현
4️⃣ 메소드 선언 시 return 타입을 신중히 선택
5️⃣ 객체 생성 시에도 타입과 구조를 꼼꼼히 검토