백엔드/Java&Spring 웹개발

[Java&Spring 웹개발] 2주차(05/10 - 05/16) 학습일지 (2)

미니개발자님 2023. 5. 15. 21:21
728x90
반응형

 


 

🌷 2주차 학습일지 (2)
    1) 강의 범위: 2장 中 1 ~ 12강
    2) 핵심 개념: 객체와 객체지향 프로그래밍 / 클래스 / 매서드 / 인스턴스 / 생성자 / 오버로딩 / 참조 자료형

 


 

1. 객체와 객체 지향 프로그래밍

  • 객체(Object): 구체적이고 추상적인 데이터의 단위
  • 객체 지향 프로그래밍: 객체들을 조합해서 하나의 완성된 프로그램을 만드는 것  ex) Java, C++, C# 등
    • 객체 정의 및 속성과 기능 구현 → 각 객체가 제공하는 기능들 간 소통
  • cf) 절차 지향 프로그래밍: 시간이나 사건의 흐름에 따라 프로그램으로 만드는 것  ex) C 등

2. 클래스 구현 연습 (⭐)

  • 클래스: 객체를 생성하기 위한 청사진(blueprint)
  • 객체의 속성: 클래스의 멤버 변수(필드)로 선언
  • 객체 정의  ② 객체의 속성을 멤버 변수로 구현  ③ 역할을 메서드로 구현
  • java 파일 하나에 클래스가 여러 개 있을 수 있지만, public 클래스는 하나


3. 함수와 메서드

  • 함수(function): 하나의 기능을 수행하는 코드들 → 호출 및 제어
  • 구성: 이름, 매개변수, 반환 값, body로 구성
  • 메서드(method, = 멤버 함수): 클래스 내부에서 구현된 함수 → 객체의 기능 구현
  •  

함수 메서드
단독 선언호출해서 사용 클래스 소속 → 클래스의 멤버 변수를 활용해서 구현

 

  • 함수 호출과 스택 메모리
    • 스택: 함수가 호출될 때 지역 변수들이 사용하는 메모리
    • 함수가 수행을 마치면 자동으로 메모리 반환(해제)

4. 객체 구현

  • 속성 = 멤버변수(필드)
  • 기능 = 메서드


5. 인스턴스 생성과 힙(heap) 메모리

1) 인스턴스 (Instance)

  • 인스턴스: 실제 클래스를 기반으로 생성된 객체
  • new 키워드로 인스턴스 생성
  • 생성된 인스턴스는 각각 다른 멤버 변수 값을 가짐

2) 힙 메모리

  • 생성된 인스턴스는 동적 메모리에 할당
  • 자바의 Garbage Collector가 자동으로 사용하지 않는 메모리 수거
  • 하나의 클래스로 여러 개의 인스턴스 생성: 각각 다른 메모리 주소

  • 참조 변수: 메모리에 생성된 인스턴스를 가리키는 변수
  • 참조 값: 생성된 인스턴스의 메모리 주소 값

6. 생성자 (constructor)

  • 객체 생성 시 new 키워드와 함께 사용
  • 객체가 생성될 때 일반 함수처럼 기능 호출X
  • 변수나 상수 초기화 또는 다른 초기화 가능을 수행하는 메서드 호출
  • 반환값이 없고 클래스 이름과 동일
  • 대부분 외부에서 접근하지만, 외부에서 사용하지 못하도록 private으로 선언할 때도 있음
  • 기본 생성자: 클래스에 생성자가 없는 경우 컴파일러가 자동으로 생성자 코드를 넣어줌

 


7. 생성자 오버로딩 (overloading)

  • 생성자를 호출하는 코드에서 여러 생성자 중 필요에 따라 알맞은 생성자 호출
  • 매개 변수가 다른 생성자를 여러 개 선언

8. 복습 문제 풀이 (객체)

  • 다른 포스팅에 풀이 작성

9. 참조 자료형 변수

  • 참조 자료형: 클래스형으로 변수 선언 → 클래스에 따라 메모리 크기 변동
  • cf) 기본 자료형: 정수(byte, short, int, long), 실수(float, double), 문자(char)  → 메모리 크기 고정

 

 


 

📌 2주차 (2) 공부 피드백 📌

✅ 다양한 예제 연습으로 짧은 시간 동안 객체 생성 연습을 함

✅ 스택, 힙에 대한 자료구조 심화 공부 필요

 

 


읽어주셔서 감사합니다.

언제나 피드백은 환영입니다.

 

 

728x90
반응형