w1

Variable

s00mm 2022. 8. 31. 15:27

변수

  • 메모리의 특정 공간에 붙이는 이름

 

금고를 빌린다고 생각해보자.

내가 특정 부분을 대여해서 내 물건을 넣어두고, a 라고 이름표를 붙여둔다.

왜 이름표 붙이냐고?

구분하려고, 그래야 찾을 수 있으니까 (값을 넣고, 바꾸고 할 때)

넣어둔 물건을 꺼내고 싶을 때

은행을 찾아가 관리자에게 금고 “a 주세요”하면

관리자는 이름표를 보고 여러개의 금고 중에서 내 금고를 찾아 줄 수 있다.

 

a = 3;    변수 : a, 값 : 3

  • 은행 금고 = 메모리
  • 변수 = 빌린 금고에 붙여둔 이름표
  • 변수를 선언한다 = 금고를 빌린다
  • 변수를 선언만 하고 초기값을 설정하지 않는다. (null) = 금고를 빌리기만하고 내용물을 넣어두지 않는다.
  • 변수는 같은 것을 사용할 수 없다. 왜? 그럼 구분할 수 없자나…

 

코드내에서 변수를 선언하고, 사용하는 것은 변수내의 값을 사용한다는 의미다.

은행가서 “금고 A 주세요” 하면 A를 내어 주겠지만

내가 A를 달라고 한 건 그 안에 내용물을 확인하거나, 넣거나 꺼내기 위해서가 아니겠는가?

따라서 a + 2 라고 코드를 썼다면, a의 값에 2을 더하는 것을 원하는 거다.

 

a = a + 2

—→ a의 값에 2를 대해서 다시 a에 보관해줘,

      a 에는 5가 보관된다.

b = a + 2

—→ a의 값에 2를 더해서 b에 보관해줘,

    a의 값은 바뀌지 않았으므로 여전히 3을 가지고 있고, 
    b 에 5를 보관한다.

 

변수명 규칙

  • 숫자로 시작할 수 없다.
  • _이라 $를 제외하고 공백이나 특수문자를 사용할 수 없다.
    • _는 Private 변수에서 사용한다.
  • 숫자나 알파벳을 사용할 수 있다.
  • 이미 약속된 단어(keywords)는 사용할 수 없다.

 

그 외의 일반적인 약속

  • 소문자로 시작한다.
    • Class 와 구분하기 위해서, Class 이름을 대문자로 시작하는 것으로 약속했다.
  • 변수명내에 띄어쓰기를 넣지 않음 
  • 대신, 첫단어를 제외한 단어의 첫글자를 대문자로 씀
    CamelCase 라고 함,  중간중간 대문자가 솟아 있어서 낙타등 같다고 이리 부른다네요.

        eg. smart phone (x)

              smartPhone (o)

              SmartPhone (x)