프로그래밍의 3대 요소를 변수, 자료형(DateType), 할당(=) 이라고 한다.
1+1 = 2 라는 연산에서 필요한 것은 무엇일까? 메모리에 1 1 2 를 집어 넣는 기억공간이 필요하다.
기억공간이 하나 만들어지면 이름이 있어야한다. 프로그래밍에서는 이 기억공간을 대표하는 이름을 변수Variable라고한다.
공간에서는 무엇이 고려되어야할까?
첫번째는 크기 두번째는 어떤 종류의 데이터인가이다.
이 두가지를 결정해줘야 변수가 만들어질수있다.
프로그래밍 언어는 변수의 크기와 변수의 종류를 결정하기 위해서 만들어 놓은 것이 있는데, 그것을 자료형DataType이라고 한다.
타입을 알아야 변수의 크기와 변수의 종류를 결정할수있다.
int a;
이렇게 데이터타입을 앞에두고 변수의 이름을 적으면 변수를 선언Declare했다고 한다.
int a, b, c;
라고 선언했다면 각각의 a, b,c 는 4byte라는 크기를 가진다.
아까 말한거처럼 크기와 종류가 결정되어야 변수가 되기때문.
모든 프로그래밍은 이 세가지가 있어야 프로그래밍이 가능하다
c = a + b;
라는 구문을 적고 print해주면 콘솔창에 출력할 수 있다.
또한 a + b
를 메모리에 있는 값을 DB나 파일 Excel, pdf, 네트워크 등등에 저장이 가능하다
이런 정수,실수,문자,boolean의 자료형은 컴파일러에서 기본적으로 제공해주는 자료형이다.
이걸 기본자료형Primitive Data Type이라고한다.
이렇게 제공해주는 종류에 대한 자료형말고 만약에 다른 원하는 종류가 있다면 직접만들어서 써야한다.
예를들어 책, 회원, 문자열 이런 종류라면 직접 만들어야할것이고 이것을 객체라고한다.
사용자정의자료형 User Defined Data Type이라고도 한다.
어떻게 만들수 있을까?
클래스라는 도구를 이용해 만드는것이다. 여기서부터 객체지향프로그래밍이라고 할수있다
기본자료형과 달리 클래스는 여러개의 메모리공간을 차지한다는게 특징이다.
변수를 선언하면 Symbol Table(변수목록표)가 만들어진다
그래서 변수가 선언되면 이 변수이름(key)들을 따로 관리하기 위해서 Symbol Table심볼테이블이 컴퓨터내부에서 만들어지고 컴파일러가 가지고 있다가 어떤 변수가 나타나면 이 Symbol Table을 보고 찾아간다.
만약에 변수이름이 없으면 cannot find symbol이라는 에러도 볼수있다
변수에 값을 대입하는것을 할당Assign이라고 한다. L-Value = R-Value에서, R밸류가 L밸류에 집어넣는다는것을 의미한다.
R-Value에는 값 변수 수식 메소드 호출 문 어떤 것이와도 상관없다.
a = 10;
a = b;
a = b + 10;
a = sum(10, 20);