클래스 A의 10 개 개체 배열을 만들면 각 개체에 대해 개체 메서드가 (어셈블리에서) 10 번 또는 다른 개체의 다른 데이터에 대해 작동 할 메서드 코드의 단일 인스턴스에 나타 납니 까?동일한 클래스의 다른 객체에 대한 메소드 코드가 실행 가능합니까?
0
A
답변
3
아니요, 코드는 클래스에 속하며 한 번만 나타납니다. 배열과 객체는 실행 시간까지 존재하지 않습니다. 배열의 크기가 다를 수 있기 때문에 실행 파일에는 "충분한"복제 된 코드가 포함될 수 없습니다.
코드 자체는 모든 객체에 대해 동일하게 유지된다는 점에 유의하십시오. 파일에서도 메모리에 코드를 복사해도 무의미합니다. (JITted 코드는 기본 클래스와 파생 클래스 간의 인라인 차이를 고려하여 잠재적으로 달라질 수 있지만, 알고있는 한 Microsoft CLR에서는 발생하지 않는 경우가 있습니다.)
0
하나의 인스턴스 메소드의 일부는 실행 파일에 존재합니다. 메서드가 호출되면 작업 할 특정 개체의 데이터 멤버에 대한 포인터가 전달됩니다.
관련 문제
- 1. 동일한 클래스의 모든 객체에 대한 메소드 호출
- 2. window.setInterval을 사용하여 기존 객체에 대한 메소드 실행
- 3. 컬렉션 내의 모든 객체에 대한 메소드 실행
- 4. 동일한 클래스의 모의 메소드
- 5. 동일한 (?) 객체에 대한 서로 다른 객체 참조
- 6. 여러 객체에 동일한 메소드 적용
- 7. 다른 클래스의 핸들 메소드
- 8. 다른 클래스의 객체에 대한 참조를 어떻게 저장합니까?
- 9. 다른 클래스의 객체가 아닌 객체에 대한 호출
- 10. 다른 클래스의 객체에 액세스하기
- 11. 다른 클래스의 객체에 액세스
- 12. 객체에 대한 메소드 호출을 전달합니다.
- 13. AS3 - 다른 클래스의 객체에 액세스
- 14. 다른 클래스의 시작 메소드
- 15. Ruby - 클래스의 대부분의 메소드 다음에 동일한 코드 실행
- 16. 동일한 클래스의 각 이미지에 대한 스크립트 실행
- 17. 클래스의 private 멤버 인 객체에 대한 메소드 호출
- 18. 다른 클래스의 동일한 속성
- 19. 동일한 클래스의 java와 유사한 메소드
- 20. 다른 클래스의 메소드 호출하기
- 21. 다른 클래스의 메소드 정의
- 22. 다른 클래스의 객체에 액세스하는 연산자
- 23. findViewById 다른 클래스의 정적 메소드
- 24. 부스트 람다 : 객체에 대한 메소드 호출
- 25. 클래스의 각 객체에 대한 클로저
- 26. JustMock - 다른 클래스의 동일한 메소드 결과를 반환하여 모든 인스턴스에 대한 메소드 모의 방법 (공용 인터페이스 공유)
- 27. 다른 클래스의 객체에 액세스하기 C++
- 28. 다른 클래스의 MainActivity 객체에 액세스하기
- 29. JButton을 누를 때 다른 클래스의 Java 실행 메인 메소드
- 30. 다른 클래스의 배열로 만든 객체에 액세스
간단한 실험을 시도해보십시오. 몇 가지 메소드로 클래스를 생성하고 인스턴스 하나를 인스턴스화 한 다음 컴파일합니다. 실행 파일의 크기를 기록하십시오. 그런 다음 프로그램을 수정하여 1000 개의 인스턴스를 만들고 다시 컴파일하십시오. –
런타임에 사용자가 선택한 크기의 배열을 만드는 경우 어떻게됩니까? 그것에 대해 생각해보십시오. – Jon
어셈블리에 정의 된 메서드는 하나뿐입니다. 런타임에 클래스 또는 메서드가 제네릭 인 경우 여러 버전이있을 수 있습니다. – Lee