8:48초 생성자의 name vs class의 name
54
작성한 질문수 9
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다!
[코드팩토리 디스코드]
https://bit.ly/3HzRzUM
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요

class안에 생성자를 만들때에 생긴의문입니다.
생성자, 즉 input으로 받고 싶은 곳의 변수를 nam, members로 설정하였는데 이러면 class에 있는 기존의 name members와 헷갈리지 않나요?? 생성자에서 name2 memebers2와 같이 설정하면 굳이 this기호를 쓸 필요가 없지 않나요??
name, members로 생성자와 클래스의 변수를 동일하게 설정하였는데 이게 어떻게 가능한가요?? 같은 변수를 동시에 설정할 수 있나요??
답변 2
0
안녕하세요!
1) 아마 프로그래밍을 처음 학습하시는 분이라 생각합니다. 모든 언어에서 특징적으로 있는 요소로 현업 개발자라면 절대! 헷갈릴 수 없습니다. 파라미터와 인스턴스 변수는 이름이 같더라도 완전 다른 개념이기 때문에 문맥상 헷갈릴 수 있는 상황도 존재 할 수 없습니다.
2) 생성자 변수가 아니라 파라미터입니다. 외부에서 받을 값의 이름을 name이라고 지었고 내부에서 사용할 변수도 name으로 지었을 뿐입니다. 실제 인스턴스를 생성할때 굳이 클래스를 들여다 보지 않는다면 파라미터 변수가 (아규먼트) 어떻게 사용될지 알 수 없고 몰라도 상관 없다는게 포인트입니다.
감사하빈다.
0
안녕하세요, 인프런 AI 인턴입니다. kimsangwon 님.
생성자와 클래스 내 변수 이름에 대한 의문을 이해하기 쉽게 설명드리겠습니다.
this 키워드의 필요성: 생성자 파라미터와 클래스 내 변수 이름이 같으면, 생성자에서 전달받은 값을 클래스의 변수에 할당할 때 this 키워드를 사용하여 구별할 수 있습니다. this.name은 클래스의 name 변수이고, name은 생성자로 전달받은 파라미터를 나타냅니다. 만약 생성자 파라미터 이름을 name2, members2와 같이 다르게 지정하면 this 키워드 없이도 할당이 가능합니다. 그러나 this 키워드를 사용하면 코드의 일관성을 유지하고, 클래스 변수임을 명확히 할 수 있습니다.
동일한 변수 이름 설정: 클래스 변수와 생성자 파라미터 이름을 동일하게 설정할 수 있습니다. 이 경우 this 키워드를 사용하여 클래스 변수인지를 명확하게 구분해 줌으로써 우연히 같은 이름의 로컬 변수가 있을지라도 혼동을 방지할 수 있습니다. 이는 특히 코드 규모가 커지고 복잡해질수록 중요해집니다.
관련하여 다른 강의 수강생의 질문과 답변이 도움이 될 수 있습니다. 아래 링크를 참조해 주세요:
- 문법 관련 질문있습니다.: 이 질문에서는 생성자와 클래스의 변수가 파라미터의 값을 받는 이유에 대한 설명이 포함되어 있습니다.
이미지와 코드 예제를 참고하여 this 키워드의 사용 맥락을 잘 이해해 보시기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
198강 (){onTap(e);}의 이해 돕기
0
53
1
video_call 플러그인 설치후 에러 발생
0
64
1
SDK 안드로이드 설치 질문!
0
77
1
코드팩토리 디스코드 링크 다시 부탁드려요~
0
106
1
Webview를 이용해서 URL 상의 페이지 출력 불가
0
88
1
홈스크린 함수를 함축해서 main.dart에 옮기는 문제
0
66
1
플레이스토어
0
69
1
아고라 엔진 init 함수의 반환타입이 Future<void> 이것의 의미는 무엇인가요?
0
61
1
가이드라인 질문
0
64
0
emulator 에러 환경설정 뭐가 문제 일까요??
0
87
1
emulator 실행 오류
0
107
3
Column을 가로방향 최대 사이즈를 차지하도록 하는 방법에 관련
0
76
1
pubspec.yaml에서 font를 추가하면서 weight 값을 지정하는 것이 의미가 있는 것인지 문의
0
51
1
setState()를 호출하지 않으면 build가 실행 안되는 건가요?
0
63
1
video_call 플러그인 설치시 에러문제
0
76
1
children 안의 if 문에서 { } 못쓰는 이유?
0
56
1
이렇게 오류가 떠요
0
78
1
AppBar 사용했는데
0
75
2
[문제해결] '오늘도 출첵!' 의 171번 강의에서 중요한 문제를 발견했습니다
0
67
1
StatefulWidget 실습 에러가 발생합니다.[해결완료]
0
67
1
Video Player 프로젝트에 대한 추가 질문
0
61
0
Row위젯이나 column위젯의 위치는 누가 정하나요??
0
46
1
geolocator 오류때문에 개발진행이 불가능입니다
0
69
1
API 관련 이슈
0
93
2





