레아Leah 2021. 4. 27. 22:19
반응형

210428 화요일

 

<질문1> 

다른 클래스의 멤버변수를 사용하기 위해 객체를 생성하고 s.멤버변수명의 형태로 사용하는데, 그렇다면 어떤 경우에 int a와 같은 변수가 필요한 것이고 어떤 경우에 int a없이 사용가능한 것인가?  

 

설명:  static이 있는 클래스의 경우는 상관없지만 메소드를 사용하려면 저런 방식으로 변수가 항상 필요하다.  

 

 

 

 

<질문2> 생성자를 호출하는 이유

클래스를 만들고 생성자를 만드는 것은 알겠다. 그런데 왜 만들어야 하는지 모르겠다. 이유가 있는가? 

 

(생활코딩 참고) 

▶생성자란?

- 어떤 일을 시작하기 전에 준비를 하게 되는데 다른 말로 초기화라고 한다. 객체지향 프로그램도 초기화에 해당하는 기능을 제공하는데 이것을 생성자라고 한다. 생성자는 그 이름처럼 객체를 생성할 때 호출된다.

 

- 생성자는 인스턴스를 생성해주는 역할을 하는 특수한 메소드라고 할 수 있다. 그런데 반환 값이 있다면 엉뚱한 객체가 생성될 것이다. 따라서 반환 값을 필요로하는 작업에서는 생성자를 사용하지 않는다. 반환 값이 없기 때문에 return도 사용하지 않고, 반환 값을 메소드 정의에 포함시키지도 않는다.  

 

- 생성자를 이용해 객체를 생성하는 방법

해당 클래스의 객체를 생성한 변수 이름.해당 클래스의 메소드 ex) cl.sum();, cl.avg();

 

 

 

 

<질문3> 기본생성자와 매개변수가 있는 생성자

- 객체를 생성할 때 Friend f2 = new Friend("사오정", 45); 이렇게 값?을 넣을 수 있는건가? 

 

- 클래스의 객체를 생성할 때 매개변수가 있는 것이 있고 없는 것이 있던데, 기본생성자는 ()안을 비워두는 것이고 매개변수가 있는 생성자의  

()안에는 타입에 맞게 대입할 값이 항상 들어가 있어야 하는 건가? 

 

- 클래스 Friend의 멤버변수 앞에 private이 있다 가정하고  메인 메소드에소 객체 생성 후 f.name을 출력하라고 할때  f.name과  f2.name이 가리키는 것은?  f2.name -> this.name = name;? 

 

 

설명: 생성자 혹은 메소드를 사용할 때, 매개변수가 있는 메소드 사용시 값이 들어가 있어야 한다. 

 

 

 

 

 

<질문4>

- 생성자는 while을 가지고 반복하는 기능을 가지는 것? 기능이라고 볼 수 있나?

- 생성자에 선언된 int choice는 while문 안에서 choice = menu();라고 초기화된 것? 

 

 

<질문5>

강의 다시 한번 보고 이해안되면 질문

 

<질문6> 

FitnessService service = new FitnessService();에서 new FitnessService(); 이렇게만 써도 되는 이유가 궁금. 

 

 

 

<질문7>

아! 여기서 FinessVO는 생성자를 말하는 듯. 

FinessVO member;

이렇게 쓰는 경우가 있었나?

생성자는 이런식으로 지정해서 멤버변수로 할 수 있는건가? 

 

설명: 생성자도 결국 메소드이기 때문에 사욯할 수 있다. 

반응형