상세 컨텐츠

본문 제목

자바강의 - [2주차] 객체와 객체 지향 프로그래밍

Programming/Java

by leediz 2022. 2. 2. 21:14

본문

자바강의 - [2주차] 객체와 객체 지향 프로그래밍


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

  • 객체지향언어의 장점

    1. 코드의 재사용성이 높음
    2. 코드와 관리가 용이
    3. 신뢰성이 높은 프로그래밍을 가능하게 함
  • 객체 지향 프로그램 구현

    • 객체를 정의
    • 객체 제공하는 기능 구현
    • 객체가 제공하는 기능들 간의 소통(메세지 전달)을 통하여 객체들간의 협력을 구현
  • 클래스 코딩

    • 클래스는 관례상 대문자로 첫 글자를 시작함(Camel Case)
    • java 파일 하나에 클래스는 여러 개가 있을 수 있지만, public 클래스는 하나이고, public 클래스와 .java 파일의 이름은 동일해야 함
  • 예제 코드

public class Student {
  int studmentNumber;
  String studentName;
  int majorCode;
  String majorName;
  int grace
}

함수와 메서드

  • 함수 (function)

    • 하나의 기능을 수행하는 일련의 코드
    • 구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨
    • 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음
  • 메서드 (method)

    • 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수
    • 메서드를 구현함으로써 객체의 기능이 구현됨
  • 클래스 밖에서 정의된 함수와는 달리 클래스 내부에 함수가 정의된다면 그것을 메서드(method)라고 함

  • 메서드 예제 코드

public class Student {
  private int studentId;
  private String studentName;
  private String address;

  public void showStudentInfo() {
    System.out.println(studentName + "," + address);
  }
}

인스턴스 생성과 힙 메모리

  • 인스턴스 (instance)
    • 클래스로부터 만들어진 객체
    • new 키워드를 사용하여 인스턴스 생성
  • 힙 메모리 (heap memory)
    • 생성된 인스턴스는 동적 메모리(heap memory)에 할당됨
    • 자바에서는 Garbage collector가 주기적으로 사용하지 않은 메모리를 수거
    • 하나의 클래스로부터 여러 개의 인스턴스가 생성되고 각각 다른 메모리 주소를 갖게 됨

생성자 (Constructor)

  • 인스턴스가 생성될 때 호출되는 ‘인스턴스 초기화 메서드’
  • 인스턴스 변수의 초기화 작업에 주로 사용되며 인스턴스 생성 시에 실행되어야 하는 작업을 위해서도 사용됨
  • 생성자 조건
    1. 생성자의 이름은 클래스의 이르과 같아야 함
    2. 생성자는 리턴 값이 없음
  • 예제 문법
클래스이름(타입 변수명, 타입 변수명, ...) {
    // 인스턴스 생성 시 수행될 코드,
  // 주로 인스턴스 변수의 초기화 코드
}

기본 생성자 (Default Constructor)

  • 모든 클래스에는 반드시 하나 이상의 생성자가 정의되어 있어야 함
  • 별도의 생성자를 정의하지 않을 경우 컴파일러가 ‘기본 생성자’를 제공함
  • 매개 변수도 없고 아무런 내용이 없는 생성자
  • 예제 문법
클래스이름() {}

오버로딩 (Overloading)

  • 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것
  • 메서드 오버로딩(method overloading)을 간단히 오버로딩(overloading)이라고 함
  • 오버로딩 성립 조건
    1. 메서드 이름이 같아야 함
    2. 매개변수의 개수 또는 타입이 달라야 함
    3. 반환 타입은 관계 없음
  • 예제 코드
int add(int a, int b) { return a+b; )
int add(long a, long b) { return a+b; )
long add(int a, int b) { return (long)(a+b); }

참고자료


Java & SpringBoot로 시작하는 웹 프로그래밍 강의 : #패스트캠퍼스 #내일배움카드 #K디지털크레딧 #바이트디그리 #자바인강

관련글 더보기

댓글 영역