У меня нет опыта Java и есть фон C.
Я хотел бы создать новый тип данных, например абстрактный тип данных. В C это будет сделано путем создания структуры для нового типа данных; Я понимаю, что в Java вы создаете класс для этого нового типа данных, а затем начинаете создавать объекты для этого класса.
Я написал два разных способа, и они оба работают. Но я не понимаю недостатков второго пути.
-
Здесь я создаю класс для типа данных, создаю его экземпляр и выполняю операции. Я нашел, что это дизайн, используемый в учебных пособиях в Интернете.
public class DesignOne { public static void main(String[] args) { MyDataType obj = new MyDataType(3,4); System.out.println(obj.sum()); } } class MyDataType { int i; int j; MyDataType(int i, int j) { this.i = i; this.j = j; } int sum() { return this.i + this.j; } }
-
Здесь я создаю экземпляр класса в том же классе, где у меня есть моя функция драйвера. Операции типа
sum
также определяются как члены класса. В принципе, есть только один класс.public class DesignTwo { int i; int j; DesignTwo(int i, int j) { this.i = i; this.j = j; } int sum() { return this.i + this.j; } public static void main(String[] args) { DesignTwo obj = new DesignTwo(3,4); System.out.println("sum == "+obj.sum()); } }
Каковы недостатки DesignTwo, и почему предпочтительнее DesignOne?