출력 - 객체지향 최종요약본

sungsimdangmascot·2026년 4월 13일

Part 1: 기초 공사 (데이터와 연산)

1. 변수 (Variable)

  • 정의: 데이터를 담아두는 '상자'입니다.
  • 특징: 한 번에 하나의 값만 담을 수 있고, 상자의 용도(자료형)에 맞는 물건만 넣어야 합니다. (정수 상자에 글자를 넣을 수 없음)

2. 형변환 (Casting)

  • 정의: (데이터 타입)를 바꾸는 것입니다.
  • 비유: 작은 종이컵(int)에 든 물을 큰 벤티 컵(double)에 옮겨 담는 것.

3. 증감연산자 (++, --)

  • 정의: 숫자를 딱 1씩 더하거나 뺄 때 씁니다.
  • 전위 증감 (++a): "나 먼저 더해!" (값을 1 증가시킨 에 해당 줄의 명령을 실행)
  • 후위 증감 (a++): "일단 하던 일 먼저 해!" (해당 줄의 명령을 먼저 실행한 에 값을 1 증가)
int a = 10;
System.out.println(++a); // 11 출력 (먼저 1 더함)
System.out.println(a++); // 11 출력 (일단 11 출력하고, 그 다음에 12로 만듦)

4. 입력과 문자열 다듬기

  • Scanner: 컴퓨터의 귀. 사용자가 키보드로 입력한 값을 읽어옵니다.
  • trim(): 문자열의 양 끝에 묻은 쓰레기(공백)를 털어내 깔끔하게 만듭니다. (예: " 안녕 " -> "안녕")
  • split(): 특정 기준(예: 쉼표)으로 문자열을 칼질해서 토막(배열) 냅니다. (예: "사과,배" -> ["사과", "배"])

Part 2: 데이터 묶기 (배열)

1. 배열 (Array)

  • 정의: 같은 종류의 데이터를 한 번에 모아두는 '아파트(사물함)'입니다.
  • 배열 객체: 자바에서 배열은 '객체'로 취급됩니다. 즉, new를 통해 메모리에 공간을 만들어야 합니다.
  • 종류:
    • 정수 배열: int[] arr = {1, 2, 3};
    • 실수 배열: double[] arr = {1.1, 2.2};
    • 문자열 배열: String[] arr = {"홍길동", "이순신"};

Part 3: 객체지향의 핵심 (클래스와 객체)

1. 클래스 (Class)와 객체 (Object)

  • 클래스 정의: 데이터를 찍어내는 '붕어빵 틀(설계도)'입니다.
  • 객체 정의: 그 틀에서 구워져 나온 실제 '붕어빵'입니다. (메모리에 만들어진 실체)
  • 클래스 구성요소: 속성(변수/필드) + 기능(메서드)
  • 객체가 필요한 이유: 학생이 100명일 때 이름, 나이, 점수 변수를 300개 만들기 귀찮고 헷갈리니까, '학생'이라는 봉투(객체) 하나에 다 묶어서 관리하기 위해서입니다.

2. new 키워드를 쓰면 만들어지는 2가지 (중요!)
1. 메모리(Heap) 영역에 실제 객체의 공간(집)이 생성됩니다.
2. 그 집을 찾아갈 수 있는 주소값(리모콘)을 반환해줍니다.

3. 메서드 (Method)

  • 정의: 객체가 할 수 있는 행동(기능)입니다. 자판기의 '버튼'과 같습니다.
  • 사용법: 객체를 만든 후, 점(.)을 찍고 호출합니다. student.공부하다();

4. 매개변수 vs 인자

  • 매개변수 (Parameter): 자판기의 '동전 투입구'입니다. 외부에서 값을 받기 위해 선언한 변수. (void 입금(int 돈))
  • 인자 (Argument): 내가 실제로 던져넣는 '500원짜리 동전'입니다. (입금(500);)

5. return vs void

  • return: 자판기에 동전을 넣었을 때 음료수가 '튀어나옴(반환됨)'을 의미합니다.
  • void: 자판기 버튼을 눌렀는데 소리만 나고 튀어나오는 결과물이 '없음'을 의미합니다.

Part 4: 변수의 계급과 this

종류사는 곳특징 (서술형 핵심)
지역 변수메서드 { }메서드가 실행될 때 잠깐 살았다가 끝나면 죽음. 우선순위가 제일 높음.
매개변수메서드 괄호 ( )외부에서 값을 전달받아 메서드 안에서만 쓰이는 특별한 지역 변수.
전역(멤버/필드) 변수클래스 안 (메서드 밖)객체가 살아있는 한 계속 유지되는 객체의 고유 속성(재산).

1. this 의 정의와 사용 이유

  • 정의: 객체 자기 자신을 가리키는 대명사 ('나')입니다.
  • 사용 이유: 메서드 안에 있는 '지역 변수'와 객체의 '멤버 변수' 이름이 똑같을 때, 헷갈리지 않게 "이건 지역 변수 말고 내 객체의 멤버 변수야!"라고 명확히 지칭하기 위해 씁니다.

Part 5: 심화 개념 (static, 상속)

1. static (스태틱)

  • 정의: 객체를 만들지 않아도( new 안 해도) 쓸 수 있는 '공용 자원'입니다.
  • 사용법: 붕어빵을 굽지 않아도 붕어빵 틀에 딱 붙어있는 메모판 같은 것입니다. 모든 객체가 이 값을 공유합니다. 클래스명.변수명으로 바로 씁니다.

2. 상속 (Inheritance)

  • 정의: 부모 클래스가 가진 재산(속성, 기능)을 자식 클래스가 그대로 물려받는 것입니다. (extends 사용)
  • 사용 이유: 코드를 중복해서 또 쓰기 귀찮아서! (재사용성)
  • 예시: '동물'이라는 부모 클래스에 숨쉬기() 기능을 만들어두면, '강아지', '고양이' 자식 클래스는 숨쉬기()를 안 만들어도 그냥 쓸 수 있습니다.
class 동물 {
    void 숨쉬기() { System.out.println("후하후하"); }
}
class 강아지 extends 동물 { 
    // 아무것도 안 적어도 부모의 숨쉬기 기능을 물려받아 사용 가능
}

profile
성심당마스코트

0개의 댓글