Я хочу передать строковый массив в качестве параметра в конструкторе копирования класса.Я хочу знать, какой из этих способов является правильным / обычным способом в объектно-ориентированном Java-программировании:
-Копирование массива внутри конструктора копирования -Копирование массива внутри метода "getArray" объекта, являющегося объектомскопировано с -Both of вышеупомянутого
Моя цель - скопировать массив по значениям, а не по ссылке, чтобы сохранить инкапсуляцию.
String[] apps;
// First version
public Smartphone(Smartphone p)
{
this.apps = Arrays.copyOf(p.getApps(), p.getApps().length);
}
public String[] getApps()
{
return apps;
}
// Second version
public Smartphone(Smartphone p)
{
this.apps = p.getApps();
}
public String[] getApps()
{
return Arrays.copyOf(apps, apps.length);
}
// Third version
public Smartphone(Smartphone p)
{
this.apps = Arrays.copyOf(p.getApps(), p.getApps().length);
}
public String[] getApps()
{
return Arrays.copyOf(apps, apps.length);
}