[Java & SpringBoot로 시작하는 웹 프로그래밍] 2주차 학습 - 1 (클래스와 객체)

진문장·2021년 8월 4일
0

Chapter 05. 클래스와 객체

객체란 무엇인가?

  • 객체(Object)
    • 의사나 행위가 미치는 대상(사전적 의미)
    • 구체적, 추상적 데이터의 단위
      예시) 사람,자동차,주문,생산,관리

객체 지향 프로그래밍 이란?

  • 객체 지향 프로그래밍(Object Oriented Programming: OOP)
    • 객체를 기반으로 하는 프로그래밍
    • 객체를 정의 하고, 객체의 기능을 구현하며,
      객체간의 협력(cooperation)을 구현

cf. 절차 지향 프로그래밍(Procedural Programming)

  • 시간이나 사건의 흐름에 따른 구현
  • C 언어

클래스(class)란?

  • 객체를 코드로 구현한 것
  • 객체 지향 프로그래밍의 가장 기본 요소
  • 객체의 청사진(blueprint)

멤버변수, 메서드

  • 멤버 변수
    • 객체가 가지는 속성을 변수로 표현
    • 클래스의 멤버변수
    • memeber variable,property, attribute
  • 메서드
    • 객체의 기능을 구현
    • method, member function
public class Student {
	/* 멤버 변수 영역 */
	private Long idx;
	private String name;
	
	/* 메서드 영역 */
	public Long getIdx() {
		return idx;
	}
}

public 클래스

  • 자바 파일 하나에 여러 개의 클래스가 존재 할 수 도 있음
  • 단, public 클래스는 하나이고, public 클래스와 자바 파일 이름은 동일해야 함

함수(function)란?

  • 하나의 기능을 수행하는 일련의 코드
  • 함수는 호출하여 사용하고 기능이 수행된 후 값을 반환 할 수 있음
  • 함수로 구현된 기능은 여러 곳에서 호출되어 사용될 수 있음

함수 정의하기

  • 함수는 이름, 매개변수, 반환 값, 함수 몸체로 구성됨
int add(int a, int b) { // 반환값 이름(매개변수1, 매개변수2)
    int result;         // 함수 몸체
    result = a + b;
    return result;      // 반환
}

메서드(method)란?

  • 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수
  • 메서드를 구현함으로써 객체의 기능이 구현 됨
  • 메서드 이름은 사용하는 쪽(클라이언트 코드)에 맞게 명명하는 것이 좋음
    EX) getName(), setName()

인스턴스란?

  • 클래스로 부터 생성된 객체
  • 힙 메모리에 멤버 변수의 크기에 따라 메모리가 생성
  • 클래스를 기반으로 new 키워드를 이용하여 여러 개의 인스턴스를 생성

참조 변수와 참조 값

  • 참조 변수
    • 메모리에 생성된 인스턴스를 가리키는 변수
    • 참조 변수는 참조하는 출력시 원시 타입과 다르게 메모리 주소를 출력함
  • 참조 값
    • 생성된 인스턴스의 메모리 주소 값
int a = 1;
Student student = new Student();
System.out.println(a); // 1
System.out.println(student); // 1f3eda13 << 주소 값

0개의 댓글