Java - 1. class

Mingi Shin·2023년 9월 28일
0

java

목록 보기
1/10

객체 지향 프로그래밍은 특성과 기능이 잘 정의된 객체를 나타내는 클래스를 정의하는 것에 기반한다.

Class

  • 객체를 만들기 위한 설계도
  • 객체가 가져야 할 변수(속성)와 메서드(동작)을 정의

Object

  • 클래스를 기반으로 메모리에 할당된 것
  • 클래스에서 정의한 속성과 동작을 가짐
  • 클래스의 인스턴스라고도 함

Instance

  • 객체와 동일한 의미를 가짐
  • 객체는 클래스의 인스턴스임. 인스턴스는 객체를 강조하거나 클래스와의 연관성을 강조하기 위한 용어
  • 사람 클래스의 인스턴스 John이라는 객체가 있다고 했을 때, John은 사람 클래스의 인스턴스다.

1. Class

클래스는 객체에 대한 설명이다. 보통 변수와 메서드 목록으로 구성된다.

클래스는 인스턴스 변수와 클래스(static) 변수 2가지 타입으로 정의할 수 있다. 또한 클래스는 인스턴스 메서드, 클래스 메서드 2가지로 정의할 수 있다.

인스턴스 변수와 인스턴스 메서드가 좀 더 일반적이다.

다음과 같이 클래스는 data와 메서드 선언을 포함할 수 있다.

Data Scope

데이터 범위란 해당 데이터를 참조할 수 있는 범위를 말하는데, 클래스 내에서 선언된 데이터는 클래스 내의 모든 메서드가 참조할 수 있다.
다만, 클래스 내의 메서드 내에 선언된 data(local data)라면 해당 메서드 내에서만 사용할 수 있다.

Instance Data

인스턴스 데이터란 클래스 레벨에서 선언된 변수를 말한다. 각 인스턴스는 자체 인스턴스 변수를 가진다.

클래스는 데이터 타입을 선언하지만, 실질적으로 메모리 공간에 잡히지는 않는다. 클래스의 객체들은 클래스의 메서드 정의를 공유하지만, 데이터 공간을 점유한다.

객체 생성

  • 객체가 저장된 메모리에 주소를 보관하는 참조 변수를 생성하는 것은 다음과 같다.
//declaration
<className> <referenceVariable>;

Mouse gus;

gus라는 참조 변수를 선언한다. 그러나 참조 변수는 메모리 할당을 하지 않아 아직 어떤 변수도 참조하고 있지 않다.

  • 객체를 인스턴스화하고 참조 변수에 메모리를 할당하는 것은 다음과 같다.
//instatiation
<referenceVariable> = new <className>();

gus = new Mouse();

Mouse 클래스의 새로운 인스턴스를 생성하고, gus라는 참조 변수에 할당한다.
이제 gus는 새로 생성된 Mouse 객체를 가리키고 있고 gus를 통해 해당 객체에 접근할 수 있다.

Mouse gus = new Mouse();
  • 변수 선언과 객체 생성 및 메모리 할당을 동시에 하는 것이다. gus는 선언과 동시에 할당되어 초기화된 상태에서 새로 생성된 Mouse 객체를 가리킨다.

Calling Object

Calling object는 인스턴스 메서드를 호출할 때 dot 왼쪽에 나타나는 객체를 말한다.

메서드 선언

메서드 선언은 메서드가 호출될 때 실행할 코드를 말한다.

메서드가 호출될 때, 메서드로 점프해 코드를 실행하고 완료되면 메서드 아래 부분으로 돌아간다.

한 메서드를 호출했을 때, 해당 메서드 안에 다른 메서드를 호출할 수도 있다.

Parameters

메서드를 호출할 때, 호출에서의 실제 매개변수들은 메서드 헤더에서의 파라미터들로 매핑된다.

Data scope in method

메서드 안에 지역 변수를 선언할 수도 있지만, 메서드 헤더에 있는 파라미터들은 자동적으로 메서드의 지역변수로써 기능을 한다.
메서드 실행이 끝나면 파라미터들을 포함한 모든 지역 변수들은 사라진다.
그러나 지역 변수가 아닌 인스턴스 변수들은 객체가 존재하는 한 존재한다.

profile
@abcganada123 / git:ABCganada

0개의 댓글

관련 채용 정보