[Java] 객체지향 프로그래밍 1

iiueon·2023년 7월 4일

객체지향언어의 특징

1. 코드의 재사용성이 높다.

새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다.

2. 코드의 관리가 용이하다.

코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.

3. 신뢰성이 높은 프로그래밍을 가능하게 한다.

제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다.

=> 프로그램의 개발과 유지보수에 드는 시간과 비용을 개선



클래스와 객체

클래스는 객체를 생성하는데 사용되며, 객체는 클래스에 정의된 대로 생성
즉, 프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리에 생성된 것을 뜻함

클래스 -- 인스턴스화 --> 인스턴스(객체)

객체는 속성과 기능으로 이루어져 있고, 객체가 가지고 있는 속성과 기능을 그 객체의 멤버(member)라 함
속성(property) : 멤버변수(member variable), 특성(attribute), 필드(field), 상태(state)
기능(function) : 메서드(method), 함수(function), 행위(behavior)



변수와 메서드

변수의 종류와 특징

변수의 종류선언위치생성시기
클래스변수
(class variable)
클래스 영역클래스가 메모리에 올라갈 때
인스턴스변수
(instance variable)
클래스 영역인스턴스가 생성되었을 때
지역변수
(local variable)
클래스 영역 이외의 영역
(메서드, 생성자, 초기화 블럭 내부)
변수 선언문이 수행되었을 때
  1. 인스턴스변수(instance variable)
    멤버변수 중 static이 붙지 않은 것으로, 독립적인 저장공간을 가지므로 서로 다른 값을 가질 수 있음
  2. 클래스변수(class variable)
    멤버변수 중 static이 붙은 것으로, 모든 인스턴스가 공통된 저장공간(변수)를 공유함
  3. 지역변수(local variable)
    멤버변수를 제외한 나머지 변수로, 메서드가 종료되면 소멸되어 사용할 수 없음

메서드를 사용하는 이유

  1. 높은 재사용성(reusability)
  2. 중복된 코드의 제거
  3. 프로그램의 구조화

기본형 매개변수와 참조형 매개변수

기본형 매개변수 : 변수의 값을 읽기만 가능 (read only)
참조형 매개변수 : 변수의 값을 읽고 변경 가능 (read & write)

클래스 메서드(static메서드)와 인스턴스 메서드

  1. 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통으로 사용하는 것에 static을 붙인다.

  2. 클래스 변수(static변수)는 인스턴스를 생성하지 않아도 사용할 수 있다.

  3. 클래스 메서드(static메서드)는 인스턴스 변수를 사용할 수 없다.
    반면에 인스턴스변수나 인스턴스메서드에서는 static이 붙은 멤버들을 사용하는 것이 언제나 가능하다.

  4. 메서드 내에서 인스턴스 변수를 사용하지 않는다면, static을 붙이는 것을 고려한다.
    메서드 호출시간이 짧아지므로 성능이 향상된다.



참고 자료

  • 자바의 정석 3판
profile
지연_로딩

0개의 댓글