객체 복사

객체 지향 프로그래밍에서 객체 복사(object copying)는 객체 지향 프로그램에서 말하는 데이터 단위인 기존의 객체의 사본을 생성하는 것이다. 그 결과로 나오는 객체를 "객체 사본"(object copy) 또는 간단히 "사본"(copy)이라고 부른다. 복사는 기초적이지만 예민성이 있어서 상당한 부하를 일으킬 수 있다. 객체 복사에는 여러 방법이 있으며 그 중 가장 흔한 것이 복사 생성자나 복제를 통한 것이다. 사본은 수정이나 이동이 가능하며 현재 값을 보존할 수 있다. 이 중 어느 것도 불필요하다면 복사가 발생되지 않는 방식으로 원본 데이터의 참조만으로 충분하며 더 효율적이다.

객체는 일반적으로 컴포지트 데이터를 저장한다. 단순한 경우 복사는 새로운, 초기화되지 않은 객체를 할당하여 원본 객체의 모든 필드 속성을 복사함으로써 이루어지지만 복잡한 경우 이는 원하는 동작대로 결과가 나오지 않게 된다.

복사 방식

객체들 대부분의 설계적 목표는 하나의 획일적인 블록으로 만들어진 것과 유사한 것을 제공하는 것이다. 객체는 여러 부분으로 구성되므로 복사는 사소한 일이 아니다. 이 문제를 처리하기 위해 여러 전략이 존재한다.

xi 필드를 포함하는 객체 A가 있다고 가정하자. (구체적으로 말해, A가 문자열이고 xi가 문자 배열임). 여기서 A의 사본을 만들기 위한 각기 다른 전략으로 얕은 복사(shallow copy)와 깊은 복사(deep copy)가 있다. 수많은 언어는 하나의 "복사" 조작을 정의하여, 또는 개개의 "얕은 복사"와 "깊은 복사" 조작을 정의하여 이루어지는 총체적인 복사를 허용한다.[1]

얕은 복사, 깊은 복사라는 용어는 스몰토크-80으로 거슬러 올라간다.[2]

얕은 복사

객체를 복사하는 한 방식으로 얕은 복사가 있다. 이 경우 새 객체 B가 생성되며 A의 필드 값들은 B로 복사된다.[3][4][5][6] 이를 필드-바이-필드 카피(field-by-field copy)라고 부르며,[7][8][9] 필드-포-필드 카피(field-for-field copy), 필드 복사(field copy)라고도 한다.[10] 필드 값이 객체 참조인 경우(예: 메모리 참조) 참조를 복사하므로 A가 참조하는 것과 동일한 객체를 참조하며 필드 값이 원시 자료형인 경우 원시 자료형의 값을 복사한다. 원시 자료형이 없는 언어(모든 것이 객체)의 경우 사본 B의 모든 필드는 원본 A 필드와 동일한 객체의 참조가 된다. 이렇게 참조된 객체는 공유되므로 이 객체들 중 하나가 수정되면(A 또는 B로부터) 다른 쪽에서도 변경 사항이 보이게 된다. 얕은 복사는 단순하고 일반적으로 비용이 적으므로 단순히 비트를 정확히 복사함으로써 구현할 수 있는 것이 보통이다.

깊은 복사

진행 중인 깊은 복사.
진행 중인 깊은 복사.

얕은 복사의 대안으로 깊은 복사가 있다. 이는 필드가 역참조됨을 의미한다. 즉, 복사되는 객체에 대한 참조 대신, 참조가 되는 모든 객체를 위한 새 사본의 객체가 만들어진다. 사본 B에 의해 참조되는 객체들이 A에 의해 참조되는 것과 구별되어 독립적이라는 점에서 깊은 복사의 결과는 얕은 복사의 결과와 구별이 된다. 깊은 복사는 추가 객체의 생성이 필요하기 때문에 비용이 더 많으며, 참조가 잠재적으로 복잡한 그래프를 형성할 수 있기 때문에 상당히 더 복잡하다.

같이 보기

각주

  1. Grogono & Sakkinen 2000.
  2. Goldberg & Robson 1983, 97–99쪽. "There are two ways to make copies of an object. The distinction is whether or not the values of the object's variables are copied. If the values are not copied, then they are shared (shallowCopy); if the values are copied, then they are not shared (deepCopy)."
  3. “C++ Shallow vs Deep Copy Explanation”. 2014년 2월 10일에 원본 문서에서 보존된 문서. 2019년 12월 19일에 확인함. 
  4. “.NET Shallow vs Deep Copy Explanation”. 2019년 12월 19일에 원본 문서에서 보존된 문서. 2019년 12월 19일에 확인함. 
  5. “Java Shallow vs Deep Copy Explanation”. 2019년 12월 19일에 원본 문서에서 보존된 문서. 2019년 12월 19일에 확인함. 
  6. “Generic Shallow vs Deep Copy Explanation”. 2016년 3월 4일에 원본 문서에서 보존된 문서. 2019년 12월 19일에 확인함. 
  7. Core Java: Fundamentals, Volume 1, p. 295
  8. Effective Java, Second Edition, p. 54
  9. "What is this field-by-field copy done by Object.clone()? Archived 2017년 5월 10일 - 웨이백 머신", Stack Overflow
  10. "Josh Bloch on Design: A Conversation with Effective Java Author, Josh Bloch", by Bill Venners, JavaWorld, January 4, 2002, p. 13

참고 문헌

Read other articles:

Bad SisterPoster teatrikalSutradaraKim Tae-kyunPemeranIvy Chen Ji Jin-hee Cheney Chen Christy Chung Qi Xi Li Xinyun HyelimTanggal rilis 28 November 2014 (2014-11-28) Durasi146 menitNegaraTiongkokBahasaMandarinPendapatankotor¥8.79 juta Bad Sister (Hanzi: 坏姐姐之拆婚联盟) adalah film komedi romantis Tiongkok tahun 2014 yang disutradarai oleh Kim Tae-kyun dan dibintangi oleh Ivy Chen, Ji Jin-hee dan Cheney Chen. Film ini dirilis pada tanggal 28 November 2014.[1][2&...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Februari 2023. Insiden balon udara intai Tiongkok 2023Bagian dari Hubungan China-Amerika Serikat and Hubungan Kanada-CinaBalon yang sedang terbang diatas Billings, Montana[1][2][3]Tanggal28 Januari – 04 Februari 2023 (20...

 

Slang used predominantly among the LGBT community Part of a series onLGBT topics       LesbianGayBisexualTransgender Sexual orientation and gender Aromanticism Asexuality Gray asexuality Biology Bisexuality Pansexuality Demographics Environment Gender fluidity Gender identity Gender role Gender variance Homosexuality Intersex Non-heterosexual Non-binary gender Queer Queer heterosexuality Questioning Sexual identity Sex–gender distinction Trans man Trans woman T...

Artikel ini berisi konten yang ditulis dengan gaya sebuah iklan. Bantulah memperbaiki artikel ini dengan menghapus konten yang dianggap sebagai spam dan pranala luar yang tidak sesuai, dan tambahkan konten ensiklopedis yang ditulis dari sudut pandang netral dan sesuai dengan kebijakan Wikipedia. (Juni 2021) True Digital Group Co., Ltd.JenisPemasaran DigitalIndustriTeknologiKantorpusatBangkok, ThailandWilayah operasiThailand, Filipina, Indonesia, dan VietnamProduk Kecerdasan Buatan Mahadata Ra...

 

Latvian professional road cyclist Aleksejs SaramotinsSaramotins at the 2014 UCI Road World ChampionshipsPersonal informationFull nameAleksejs SaramotinsBorn (1982-04-08) 8 April 1982 (age 42)Riga, Latvian SSR (now Latvia)Height184 cm (6 ft 0 in)Weight75 kg (165 lb)Team informationDisciplineRoadRoleRiderRider typeClassics specialist[1]Professional teams2005–2008Rietumu Banka–Riga2009Team Designa Køkken2010Team HTC–Columbia2011–2012Cofidi...

 

Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Alat tulis – berita · surat kabar · buku · cendekiawan · JSTOR Alat tulis adalah peralatan yang dipergunakan untuk menuliskan atau menorehkan tanda atau bentuk di atas suatu permukaan. Alat ini biasanya ...

Синелобый амазон Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:ЧетвероногиеКлада:АмниотыКлада:ЗавропсидыКласс:Пт�...

 

artikel ini perlu dirapikan agar memenuhi standar Wikipedia. Tidak ada alasan yang diberikan. Silakan kembangkan artikel ini semampu Anda. Merapikan artikel dapat dilakukan dengan wikifikasi atau membagi artikel ke paragraf-paragraf. Jika sudah dirapikan, silakan hapus templat ini. (Pelajari cara dan kapan saatnya untuk menghapus pesan templat ini) T-95 adalah sebutan informal yang umum dari generasi keempat tank Rusia[1] yang berada di bawah pembangunan Uralvagonzavod sebelum dibatal...

 

Soyuz 4Model dari Soyuz 4 dan Soyuz 5 setelah melakukan docking pertama antara dua wahana antariksa berawak pada 16 Januari 1969Jenis misiPenerbangan uji cobaOperatorProgram luar angkasa Uni SovietCOSPAR ID1969-004ASATCAT no.3654Durasi misi2 hari, 23 jam, 20 menit, 47 detikFrekuensi orbit48 Properti wahanaJenis wahana antariksaSoyuz 7K-OK(A)ProdusenExperimental Design Bureau OKB-1Massa luncur6.625 kilogram (14.606 pon) AwakJumlah awak1 meluncur3 mendaratAwakVladimir S...

Grat d'AosteFonctionÉvêqueBiographieDécès 7 septembre 470AosteActivité PrêtreAutres informationsÉtape de canonisation SaintFête 7 septembremodifier - modifier le code - modifier Wikidata Grat (Ve siècle - Aoste, 7 septembre ...) est un évêque valdôtain du Ve siècle, saint patron de la ville d'Aoste et de la Vallée d'Aoste. Il ne faut pas le confondre avec Grat d'Oloron, premier évêque d'Oloron-Sainte-Marie (Pyrénées-Atlantiques). Biographie et légendes Statue de S...

 

Italian footballer (born 1954) Moreno Roggi Personal informationFull name Moreno RoggiDate of birth (1954-03-24) 24 March 1954 (age 70)Place of birth San Miniato, ItalyPosition(s) DefenderSenior career*Years Team Apps (Gls)1970–1972 Empoli 17 (0)1972–1978 Fiorentina 82 (4)1978–1979 Avellino 9 (0)International career1974–1976 Italy 7 (0) *Club domestic league appearances and goals Moreno Roggi (Italian pronunciation: [moˈrɛːno ˈroddʒi]; born 24 March 1954) is an Itali...

 

American baseball player (born 1986) Baseball player Caleb JosephJoseph with the Baltimore Orioles in 2017CatcherBorn: (1986-06-18) June 18, 1986 (age 37)Nashville, Tennessee, U.S.Batted: RightThrew: RightMLB debutMay 7, 2014, for the Baltimore OriolesLast MLB appearanceSeptember 9, 2020, for the Toronto Blue JaysMLB statisticsBatting average.222Home runs32Runs batted in127 Teams Baltimore Orioles (2014–2018) Arizona Diamondbacks (2019) Toronto Blue Jays (...

Upper house of the Parliament of Cambodia This article needs attention from an expert in Cambodia. The specific problem is: Diagram does not match 2018 election results. WikiProject Cambodia may be able to help recruit an expert. (September 2018) Senate ព្រឹទ្ធសភាPrœ̆tthôsâphéa5th SenateTypeTypeUpper house of the Parliament of Cambodia LeadershipPresidentHun Sen (CPP) since 3 April 2024 First Vice PresidentPrak Sokhonn (CPP) since 3 April 2024 Second Vice Pres...

 

Buste de Théophraste, considéré comme le père de la botanique. L'histoire de la botanique est l'exposition et la narration des idées, des recherches et des travaux liés à la description, à la classification, au fonctionnement, à la distribution et aux relations des organismes appartenant aux règnes des Champignons, des Chromistes et des Plantes au cours des différentes périodes historiques[n 1],[n 2]. Depuis l'Antiquité, l'étude des plantes a été abordée selon deux approches ...

 

Wesseln Lambang kebesaranLetak Wesseln di Dithmarschen NegaraJermanNegara bagianSchleswig-HolsteinKreisDithmarschen Municipal assoc.KLG Heider UmlandPemerintahan • MayorHelma MöllerLuas • Total3,76 km2 (145 sq mi)Ketinggian11 m (36 ft)Populasi (2013-12-31)[1] • Total1.418 • Kepadatan3,8/km2 (9,8/sq mi)Zona waktuWET/WMPET (UTC+1/+2)Kode pos25746Kode area telepon0 48 1Pelat kendaraanHEISitus webwww.amt-w...

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (December 2012) (Learn how and when to remove this message)This article's lead section may be too short to adequately summarize the key points. Please consider...

 

Ancient acrostic composed of 44 proverbs Adam clutches a child in the presence of the child-snatcher Lilith Rabbinic literatureTalmud Readers by Adolf Behrman Talmudic literature Tannaitic Mishnah Tosefta Amoraic (Gemara) Jerusalem Talmud Babylonian Talmud Later Minor Tractates Halakhic Midrash Exodus Mekhilta of Rabbi Ishmael Mekhilta of Rabbi Shimon bar Yochai Leviticus Sifra (Torat Kohanim) Numbers and Deuteronomy Sifre Sifrei Zutta on Numbers (Mekhilta le-Sefer Devarim) Aggadic Midrash Ta...

 

Tomopteris, a holoplanktic polychaete worm with an unusual yellow bioluminescence that emanates from its parapodia[1] Holoplankton are organisms that are planktic (they live in the water column and cannot swim against a current) for their entire life cycle. Holoplankton can be contrasted with meroplankton, which are planktic organisms that spend part of their life cycle in the benthic zone. Examples of holoplankton include some diatoms, radiolarians, some dinoflagellates, foraminifer...

Indian Movie Actress and Writer Komal JhaJha in 2023BornRanchi, Bihar, (present-day Jharkhand), IndiaNationalityIndianAlma materB.E – Civil from MSRIT, BangaloreOccupation(s)Actress, civil engineer, writerYears active2012–presentHeight5 ft 7 in (170 cm)RelativesDr. Bharti Jha (mother) , Dr. SN Jha (Father) , Dr, Asha Jha (Grandmother), Dr. Bindeshwar Pathak (Founder, Sulabh International)( Maternal Grand Uncle)Websiteikomaljha.com Komal Jha is an Indian movie actr...

 

La peine de mort dans le monde Abolie pour tous les crimes Abolie pour tous les crimes sauf quelques exceptions Légale mais non appliquée Légale et appliquée Cette section a besoin d'être recyclée (juillet 2023). Une réorganisation et une clarification du contenu sont nécessaires. Améliorez-la ou discutez des points à améliorer. L'application de la peine de mort dans le monde est pratiquée par plusieurs États de tous les continents, mais la plupart l'ont abolie en droit ou e...