Bu makale, Java'da bir nesneyi kopyalamaya yönelik yaklaşımları gösterecektir.
Java'da Bir Nesneyi Nasıl Kopyalarım?
Java'da bir nesne aşağıdaki yaklaşımlar kullanılarak kopyalanabilir:
“ içindeki tüm sınıflara erişin. java.util Örneklere geçmeden önce ” paketi:
içe aktarmak java. faydalı . *;
Yaklaşım 1: “Copy Constructor” Kullanarak Java'da Bir Nesneyi Kopyalama
“ Oluşturucuyu Kopyala ”, daha önce oluşturulan aynı sınıf nesnesine başvurarak bir nesne oluşturur/tanımlar.
Örnek
Aşağıdaki örnek, bir nesneyi kopyalamak için 'Kopya Oluşturucu'yu uygular:
halk sınıf Nesneyi Kopyala {
int İD ;
Sicim şehir ;
Nesneyi Kopyala ( int İD , Sicim şehir ) {
Bu . İD = İD ;
Bu . şehir = şehir ; }
Nesneyi Kopyala ( CopyObject nesnesi ) {
Bu . İD = nesne. İD ;
Bu . şehir = nesne. şehir ; }
halk geçersiz görüntülemek ( ) {
Sistem. dışarı . yazdır ( 'Kimlik ->' + Bu . İD ) ;
Sistem. dışarı . yazdır ( 'Şehir ->' + Bu . şehir ) ; }
halk statik geçersiz ana ( Sicim [ ] argümanlar ) {
tarayıcı girişi = yeni Tarayıcı ( Sistem. içinde ) ;
Sistem. dışarı . yazdır ( 'Kimliği girin: ' ) ;
int İD = giriş. sonrakiInt ( ) ;
Sistem. dışarı . yazdır ( 'Şehri girin: ' ) ;
Sicim şehir = giriş. Sonraki ( ) ;
Nesneyi Kopyala1 = yeni Nesneyi Kopyala ( İD , şehir ) ;
Nesneyi Kopyala nesne2 = yeni Nesneyi Kopyala ( nesne1 ) ;
Sistem. dışarı . yazdır ( 'Varsayılan Nesne ->' ) ;
nesne1. görüntülemek ( ) ;
Sistem. dışarı . yazdır ( 'Kopyalanan Nesne ->' ) ;
nesne2. görüntülemek ( ) ;
giriş. kapalı ( ) ;
} }
Yukarıdaki kod parçacığında:
- “ adlı bir sınıf oluşturun. Nesneyi Kopyala ”.
- Sınıfın belirtilen üye değişkenlerini belirtin.
- Bundan sonra, iletilen değerleri ' aracılığıyla belirtilen değişkenlere tahsis eden parametreli bir sınıf oluşturucu oluşturun. Bu ”.
- Şimdi, bir 'oluşturun Oluşturucuyu Kopyala ”, önceden oluşturulmuş bir sınıf tipi nesneyi daha sonra argüman olarak iletilecek olan parametresi olarak alır.
- Ayrıca, işlevi tanımlayın ' görüntülemek() ” geçen nesne değerlerini görüntüler.
- İçinde ' ana() yöntemiyle kullanıcı girişine izin vermek için bir 'Tarayıcı' nesnesi yapın. System.in ' parametre.
- Ayrıca, “ nextInt() ' Ve ' Sonraki() Sırasıyla tamsayı ve dizi kullanıcı girişlerini almak için yöntemler.
- “ aracılığıyla bir sınıf nesnesi oluşturun. yeni ” anahtar kelime ve “ Nesneyi Kopyala() ” bağımsız değişkenleri olarak kullanıcı giriş değerlerine sahip yapıcı.
- Ayrıca, sınıf kopya oluşturucusuna başvurarak kopyalanan içerikleri döndürmek için argümanı olarak oluşturulan nesneye sahip bir kopya nesnesi oluşturun.
- Son olarak, “ görüntülemek() geçen kullanıcı giriş değerlerini görüntülemek ve “Tarayıcıyı” kapatmak için ” işlevi.
Çıktı
Bu çıktıda, bir kopya nesnenin oluşturulduğu ve buna göre görüntülendiği ima edilebilir.
Yaklaşım 2: “clone()” Yöntemiyle Java'da Bir Nesneyi Kopyalamak
“ klon() ' yöntemi' java.lang.Object ” sınıfı bir nesneyi parametre olarak alır, oluşturur ve bir kopyasını verir. Bu yöntem, önceden oluşturulmuş (kopyalanması gereken) nesneye ve “clone()” yöntemine başvurarak bir nesneyi kopyalamak için uygulanabilir.
Sözdizimi
nesne. klon ( )Bu metot nesnenin bir kopyasını verir ve “ CloneNotSupportedException ' nesnenin sınıfı 'Klonlanabilir' arayüzü uygulamıyor/uygulamıyorsa.
Örnek
Aşağıdaki kod satırlarını gözden geçirin:
int İD ;
Sicim şehir ;
Nesneyi Kopyala ( int İD , Sicim şehir ) {
Bu . İD = İD ;
Bu . şehir = şehir ;
}
halk geçersiz görüntülemek ( ) {
Sistem. dışarı . yazdır ( 'Kimlik ->' + Bu . İD ) ;
Sistem. dışarı . yazdır ( 'Şehir ->' + Bu . şehir ) ;
}
halk statik geçersiz ana ( Sicim [ ] argümanlar ) atar CloneNotSupportedException {
tarayıcı girişi = yeni Tarayıcı ( Sistem. içinde ) ;
Sistem. dışarı . yazdır ( 'Kimliği girin: ' ) ;
int İD = giriş. sonrakiInt ( ) ;
Sistem. dışarı . yazdır ( 'Şehri girin: ' ) ;
Sicim şehir = giriş. Sonraki ( ) ;
Nesneyi Kopyala1 = yeni Nesneyi Kopyala ( İD , şehir ) ;
Sistem. dışarı . yazdır ( 'Varsayılan Nesne ->' ) ;
nesne1. görüntülemek ( ) ;
Sistem. dışarı . yazdır ( 'Kopyalanan Nesne ->' ) ;
Nesneyi Kopyala nesne2 = ( Nesneyi Kopyala ) nesne1. klon ( ) ;
nesne2. görüntülemek ( ) ;
giriş. kapalı ( ) ;
} }
Yukarıdaki kod bloğuna göre aşağıda belirtilen adımları gerçekleştirin:
- Sırasıyla bir sınıf tanımlama, üye değişkenleri belirleme, parametreleştirilmiş bir sınıf oluşturucu oluşturma (geçirilen değerleri tahsis etme) ve değerleri görüntülemek için bir işlev tanımlama için tartışılan yaklaşımları hatırlayın.
- Şimdi ' ana() ”, benzer şekilde, kullanıcı değerleri girer ve bu değerleri oluşturulan sınıf nesnesine iletir ve ilgili işlev aracılığıyla görüntüler.
- Bundan sonra “ klon() ” yöntemi, bir kopya nesnesi oluşturmak için önceden oluşturulmuş nesneyle ilişkilendirilen yürürlüğe girer.
- Son olarak, kopyalanan nesne içeriklerini de tartışılan işlev aracılığıyla görüntüleyin.
Çıktı
Bu sonuçta, sınıf nesnesinin uygun şekilde kopyalanmasının sağlanması için, kullanıcı giriş değerlerinin aynı sonuçlarla iki kez döndürüldüğü gözlemlenebilir.
Çözüm
Java'da bir nesne ' kullanılarak kopyalanabilir. Oluşturucuyu Kopyala ', ya da ' klon() ' yöntem. Önceki yaklaşım, önceden oluşturulmuş nesneyi bir kopya oluşturucu argümanı olarak alarak nesneyi kopyalar. İkinci yaklaşım, oluşturulan sınıf nesnesiyle doğrudan ilişkilidir. Bu yazı, Java'da bir nesneyi kopyalama yaklaşımlarını gösterdi.