Calculater c1 = new Calculator();의 원리를 설명해준다.
객체를 생성하면 왜 모든 메소드를 사용가능하고, 객체라는게 왜 생성되는지 생각해본적있는가?
객체생성원리에대해서 쉽게 풀어보자
Calculater c1 = new Calculator();의 시작점이 어디인가?
바로 Calculator()이다
어떤 프로그래밍에서는 함수를 호출할때 함수명()으로 호출하게되는데,
바로 그원리와 같다.
차이점이라고하면, 여기서 Calculator()는 클래스이다.
사용자가 Calculator()라는 명령어를 입력하는순간 컴퓨터는 사용자가 작성한 클래스의 필드 메소드들을 문자로 의미도없는 문자데이터로 기억한다.
그 앞에 new라는 연산자를 사용하여, 그 문자데이터에 그륩핑을 시켜서 힙에 저장한다.
힙에저장되어있지만 사용자는 아직 그것을 호출할 수가없다. 그륩핑이 되었지만 그륩의 이름이 없기때문에 사용자는 호출 할 수 없다.
그다음 사용자는 대입연산자(=)를 사용하여 힙에 저장된 데이터를 호출할 수 있게 변수(c1)에 집어넣는다.
그리고 c1이라는 변수는 Calculator(타입)에서 참조한다라는 말이다. ->Calculator c1
좀더 이해하기 쉽게 말하자면, https://www.naver.com
www.naver.com는 그사이트의 주소인데,
https://의 타입으로 참조하겠다 이말이다.
즉 객체는 클래스 하나하나를 주소값으로 정의했다라고 할 수 있다.
그래서 객체는 클래스와 그 자체라고도 볼 수 있다.
컬큘레이터는 클래스가 아니라 생성자에요 정확하게는 생성자 호출 당연한글 길게도 썼는데 헛소리를 써놧노
생성자인데 좀더큰개념으로 클래스라고봐도무방하다 좀더공부해라
저 생성자호출안에 클래스정보가 다담겨있기때문에 클래스라고봐도무방