본문 바로가기
IT/JAVA

[JAVA/자바] 객체지향 - 인스턴스, new, this

by 가아앗 2022. 11. 6.
반응형

인스턴스?

     클래스(설계도)에 따라 만들어진 제품(객체).


 

위와 같이 입력값의 합과 평균을 구할 수 있는 코드가 있다. 

지금은 괜찮지만 프로그램이 커지고 코드가 복잡해진다는 상상을 해보았을 때

다른 누군가가 변수(left, right), 메소드(sum, avg)가 다른 의미로 사용할 수가 있고 버그로 이어진다.

 

이 문제를 해결하기 위해 위의 코드에서 변수로 상징되는 데이터, 연산으로 상징되는 메소드를

서로 연관되어 있는 것들끼리 그룹핑하는 객체지향의 개념이 탄생되다.

 

 

 


인스턴스, new

코드를 위와 같이 바꿔주었습니다. 이제 main메소드 안에 있는 new라는 코드를 살펴보겠습니다.

 

Calculator 객체를 생성해서 변수 c1에 담아 구체적인 객체를 만드는 행위를 인스턴스라고 합니다.

* 데이터형은 객체의 이름을 가지고 있어야 한다.
* 객체는 프로그램 안에 있는 변수와 메소드들의 집합이다. (프로그램 안에 있는 작은 프로그램)

맨 위에서 설명했다시피 인스턴스는 클래스 설계도(class Calculator)에 따라 만들어진 제품 객체(new calculator)이다.
class Calculator의 { } 안쪽에 있는 것이 new Calculator의 설계도이다.

 


this

  1.   c1.setOprands 메소드를 실행하면 10,20의 값은 매개변수에 값이 담긴다.
  2.   left = 10, right = 20이 된다.
  3.   this는 클래스 Calculator 초입에서 정해준 변수를 가리킨다. 따라서 객체 전역에서 접근할 수있는 변수가 된다.


우리는 class를 한번  정의했지만 new라는 연산자를 통해서 원하는 데로 변수에다가 class를 통해 만들어진 인스턴스를 담아서 인스턴스를 세팅하고 메소드를 호출해서 작업을 할 수 있다.

 

 

반응형

댓글