객체지향강의 클래스강의 의문점이 있습니다
307
작성한 질문수 5
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
Idol blackPink = Idol('블랙핑크',['제니','지수']);
print(blackPink.name);
print(blackPink.members);
blackPink.sayhello();
객체지향강의 처음부분을 듣고 있는데 sayhello함수를 왜 위의 name이나 members들처럼 그냥 print로 출력하면 안되나요? 예를 들어 이렇게요. print(sayhello()); 이렇게 하면 안되는 이유가 궁금합니다.
print(blackPink.name);을 할때 그냥 print(name);이 아니라 print(blackPink.name);이어야 하는 이유가 있을까요? 자동으로 인식하지 못하는건가요?
마지막으로 이 print를 왜 class함수가 아닌 main함수에 써야하는지가 궁금합니다. class함수에 쓰면 무슨 오류가 나게 되는건가요?
답변 1
0
1) sayHello()는 sayHello()라는 함수를 실행하는 코드입니다. blackPink.sayHello()를 실행해야 blackPink 인스턴스 안에 존재하는 sayHello()를 실행할 수 있습니다. 만약에 말씀하신게 가능하다면 여러개의 인스턴스를 생성했을때 어떤 인스턴스의 함수를 실행해야할지 알수가 없습니다.
2) 1이랑 같습니다.
3) class 함수에 써도 상관 없습니다!
0
답변 정말 감사드립니다. 3번 답변에 class함수에 써도 된다고 하셔서 제가 class함수에
print(blackPink.name)이라고 썼는데 오류가 뜨네요..? 어떤 오류인지 설명해주시면 좋을 것 같습니다ㅠㅠㅠ
0
안녕하세요!
개발 질문을 할때는 꼭 지켜야할 중요한 요소들이 있습니다.
1) 정확한 에러 메세지를 알려주셔야합니다.
2) 어떤 결과를 예상했는지 알려주셔야합니다.
3) 실제 결과를 알려주셔야합니다.
4) 문맥을 읽을 수 있는 실제 코드를 보여주셔야합니다.
앞으로도 정보를 보다 쉽게 얻을 수 있는 팁이니 꼭 기억해주세요!
현재 유추 가능한 제한적인 정보로 일단 답변 드리겠습니다. 클래스 함수에 blackPink.name이라고 하셨으면 아마 실행이 안되실겁니다. 왜냐면 blackPink라는 인스턴스는 클래스 내부에 선언된게 아니기 때문이죠.
OOP 강의를 기억해보시면 현재 인스턴스를 지칭하는 키워드는 this 입니다.
[질문] OOP 상속 VS 컴포넌트 방식에 대하여
0
492
1
Beverage 인터페이스
0
299
2
자동 패키지 임포트 관련 질문 드립니다.
0
644
1
JDK 설치(해결완료 )
0
1729
3
함수형 인터페이스(전반전)에서 작성한 코드가 이해되지 않습니다.
0
468
1
LocationPermission.denied관련 질문입니다
0
587
1
8강. 클래스 강의 중 return 값을 갖는 메소드
0
367
1
8강.클래스 강의 중 메소드 관련 질문
0
366
1
@Qualifier를 찾는 용도라는 말이 조금 헷갈립니다ㅠㅜ
0
721
1
[질문] cascading operator 설명하실 때
2
614
1
초급자 질문
0
501
1
CachedNetworkImage 로 인한 memory leak 문제..
0
943
2
이것이 왜 실행이 안되는지 여쭙고 싶네요.
0
2792
1
초급강의를 수강할때 질문입니다.
0
468
1
void함수 질문입니다
0
396
1
getter와 setter에 대한 의문입니다.
0
383
1
쿠폰 이제 사용 못하나요 ?
0
563
1
다트언어 기초 2강 54분 this.calculate()*2; 이해가 안돼서요 ㅜㅜ
0
288
1
질문 좀 받아주세요 팩토리님!!
0
338
1
#2 OOP 17분 질문
0
207
1
21분15초 부분
0
326
2
처음 시작인데 오류ㅠ
0
250
1
사소한 질문 드립니다.
0
420
1
함수의 오버로딩
0
552
1





