본문 바로가기
CS/computer science

[기술면접] CS 문답 | 인스턴스 변수 인수

by 째깍단 2023. 8. 21.

💡 인스턴스와 변수들에 대해 설명하시오

 

인스턴스(instance)

: 인스턴스란 객체 지향 프로그래밍(Object Oriented Programming)에서 class에 소속된 개별적인 객체

 

 

객체(object)

: OOP적 관점에서 객체와 인스턴스의 차이점으로는 객체는 선언, 인스턴스는 실체화

  클래스의 타입으로 선언 되었을 때 객체, 그 객체가 메모리에 할당되어 실제 사용될 때는 인스턴스

 

 

인스턴스화(instantiate)

: 정의한 클래스를 사용해 구체적인 객체를 만들어내는 것이 인스턴스화

 

 

변수(Variable)

: 데이터를 저장하고 추후에 사용할 수 있게 해주는 메모리 공간

  쉬운말 : 어떤 값을 임시로 혹은 영구적으로 기억해두기 위해 값에 이름표를 붙여두는 것

 

  • 매개변수 = 인자 = parameter(인자) 
    함수를 호출할 때 전달하는 값

  • 전역변수
    코드 전체 영역에서 접근 및 사용이 가능한 변수, 함수 밖에서 선언, 최대한 제한해서 사용하기

  • 지역변수
    함수 내 영역에서 접근 및 사용이 가능한 변수, 함수 안에서 선언

  • 정적변수
    코드 실행 시 한 번만 메모리에 할당되는 변수, 특정 함수 내에서 'static' 키워드를 사용하여 선언

 

 

 

매개변수 = 인자 = parameter : 함수에서 전달된 값을 받는 변수라면

 

인수 = argument : 실제로 전달된 값

 

 

참고 : https://bskyvision.com/entry/헷갈리는-코딩용어-매개변수parameter와-인수argument

 

 

 

 

 

+++

클래스변수와 인스턴스 변수

클래스 변수는 클래스 자체에서 접근이 가능한 변수, 인스턴스 변수는 생성된 인스턴스로 접근이 가능한 변수이다.

따라서 클래스 안에 student_count 클래스 변수를 선언하고, 생성자 메서드에서 쓴 것과 같이 Student.student_count += 1 처럼 클래스로 접근하여 사용이 가능하다. 인스턴스 변수는 self가 붙어 있다. 객체를 통하여 접근이 가능하기 때문이다.

 

class Student():
    # 클래스 변수 
    student_count = 0 

    def __init__(self, name, number, grade, details, email=None):
        # 인스턴스 변수
        self._name = name
        self._number = number
        self._grade = grade
        self._details = details
        self._email = email

        Student.student_count += 1

 

 

인스턴스란 : https://velog.io/@k7nsuy/인스턴스란

클래스 기초, 클래스변수와 인스턴스 변수 : https://silvercoding.tistory.com/19