2010-07-24 13 views
5

Matrisi temsil etmek için bir sınıf yazıyorum.Java'da değişkenleri aşırı yükleyebilir miyim?

public class matrix { 
    private int[][] matrix; 
    private double[][] matrix; 
    //And so on and so forth so that the user can enter any primitive type and 
    //get a matrix of it 
} 

Bu yasal şifre mi, yoksa onların matris tutan veri türlerine bağlı olarak farklı değişken isimlerine sahip olurdu: Ben böyle bir şey bakmak istiyorum?

+1

size derleyici kullanmak niye Bazı nedeni Bulmak? – EJP

cevap

11

Değişkenleri aşırı yükleyemezsiniz. Yaklaşımınızla, farklı bir ad vermelisiniz, ardından farklı türlerde getMatrix yöntemini aşırı yüklemelisiniz.

public class Matrix<T> { 
    private T[][] matrix; 
    public T getMatrix() {return matrix;} 
    ... 
} 

ve sonra ne istersen türleri nesneleri oluşturmak:

Daha iyi bir yaklaşım Java Generics kullanmaktır Matrix<Integer>, Matrix<Double> vb

+0

Teşekkürler, bu bana milyonlarca farklı kurucu ve yöntem yapmak zorunda kalmamı sağlıyor. Ayrıca muy zarif! –

1

Ben Java Generics, fikri size gereken herhangi bir türü için özel olan jenerik Matrix sınıfı olurdu olmasıdır Java 5.

beri standart bir Java özelliği arıyoruz düşünüyorum.

örneğin, öğreticiler bol vardır: göstermiştir Ne here

+1

Lütfen yorumlarınızı cevap olarak değil yorum olarak gönderin. – danben

1

yasal Java kodu değil. Önereceğiniz yaklaşım (farklı adlar) işe yarayacaktı ya da Java'nın nesne sisteminden faydalanabiliyor ve kutulu değerler (sınıf üyesi sadece bir Nesne gibi) ya da türün bir parametre olduğu gibi jenerikler kullanabiliyordunuz.

İlgili konular