1️⃣ 자료 구조 발전

단계설명특징
배열(Array) 같은 타입 데이터 여러 개 저장 int[], double[] 등
구조체(Struct, C) 여러 타입 데이터 묶음 int, char, double 등 혼합 가능
클래스(Class) 구조체 + 메서드 + 접근제어 + 상속 객체지향 설계 가능, 재사용성 높음

2️⃣ 객체지향 핵심

개념설명예시
클래스(Class) 설계도 자동차 설계도
객체(Object, 인스턴스) 설계도로 만든 실체 실제 자동차
재사용 & 반복 반복되는 구조/기능 → 객체 생성 여러 학생 객체, 여러 자동차 객체

객체 관계

관계의미예시
is-a “~은 ~이다” → 상속 학생 is a 사람
has-a “~을 가지고 있다” → 포함 자동차 has a 엔진

3️⃣ 접근 제어자

구분같은 클래스같은 패키지상속 클래스전체
private
default
protected
public
  • 팝업같이 어디서나 쓰는 클래스 → public
  • 내부용 변수 → private

4️⃣ 정적(static) vs 동적(인스턴스)

구분기준생성 시점키워드예시사용 상황
정적(static) 클래스 프로그램 시작 시 static static int count; 공용 데이터, 유틸 메서드, 상수
동적(인스턴스) 객체 new로 객체 생성 시 int age; 객체별 고유 데이터, 상태
 
// 정적 변수 class Cat { static int count = 0; Cat() { count++; } } // 동적 변수 class Person { String name; int age; Person(String name, int age) { this.name = name; this.age = age; } }

5️⃣ 메모리 & 참조

개념설명
static 클래스 전체에서 공유, 항상 메모리에 존재
final 값 변경 불가
참조(Reference) 객체 주소 전달 → call by reference
원시형(Primitive) 값 자체 저장 (int, double)
참조형(Reference) 주소 저장 (Student s = new Student();)

6️⃣ 2차원 배열 & 좌표

절대 좌표 (Absolute Coordinates)

X\Y01234
0 (0,0) (0,1) (0,2) (0,3) (0,4)
1 (1,0) (1,1) (1,2) (1,3) (1,4)
2 (2,0) (2,1) (2,2) (2,3) (2,4)
3 (3,0) (3,1) (3,2) (3,3) (3,4)
4 (4,0) (4,1) (4,2) (4,3) (4,4)

상대 좌표 (Relative Coordinates)

 
상대 좌표 (dx, dy) Y -1 0 1 X -1 ↖ ↑ ↗ 0 ← • → 1 ↙ ↓ ↘
  • • = 현재 위치 (0,0)
  • (dx, dy) = 상대 이동 좌표
  • 코드 예시:
 
int[] dx = {-1, 0, 1, 0}; // 상, 우, 하, 좌 int[] dy = {0, 1, 0, -1}; for(int i = 0; i < 4; i++) { int nx = x + dx[i]; int ny = y + dy[i]; }

7️⃣ 기타 개념

개념설명예시
인터페이스(interface) 필드 없음, 메서드 선언만 운송 인터페이스: 배, 트럭이 공통 메서드 사용
싱글톤(Singleton) 객체 단 하나만 유지 인증서, 설정
도트 연산자(.) “~의” 관계 System.out.println
패키지(package) 클래스 묶음 default, custom 패키지

8️⃣ 전체 키워드 정리

  • 자료 구조: 배열 → 구조체 → 클래스
  • 객체지향 핵심: 클래스/객체, is-a / has-a
  • 접근제어: private, default, protected, public
  • 메모리: static, final, heap, reference
  • static vs non-static: 공용 vs 객체별
  • 2차원 배열: 절대좌표 / 상대좌표
  • 참조: 주소값 공유 → call by reference

'기초 CS > 자료구조' 카테고리의 다른 글

C / C++의 포인터(pointer)  (0) 2025.10.25
Fibonacci 수열  (0) 2025.09.30

+ Recent posts