Tôi không có bất kỳ trải nghiệm Java nào và có nền C.Tại sao tôi nên đặt chính() trong một lớp học chuyên dụng?
Tôi muốn tạo kiểu dữ liệu mới, như kiểu dữ liệu trừu tượng. Trong C, điều này sẽ được thực hiện bằng cách tạo một cấu trúc cho kiểu dữ liệu mới; Tôi hiểu rằng trong Java, bạn tạo một lớp cho kiểu dữ liệu mới đó, và sau đó đi về việc tạo các đối tượng cho lớp đó.
Tôi đã viết hai cách khác nhau này và cả hai cách này dường như hoạt động. Nhưng tôi không hiểu những thiếu sót của cách thứ hai.
Ở đây, tôi tạo một lớp cho kiểu dữ liệu, tạo một thể hiện của nó và sau đó thực hiện các thao tác. Tôi đã tìm thấy đây là thiết kế được sử dụng trong các hướng dẫn trên Internet.
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; } }
Ở đây, tôi tạo một thể hiện của lớp trong cùng một lớp nơi tôi có chức năng điều khiển. Các hoạt động như
sum
cũng được định nghĩa là thành viên của lớp. Về cơ bản, chỉ có một lớp.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()); } }
những thiếu sót của DesignTwo là gì, và tại sao DesignOne ưa thích?
Thực ra chúng tương đương với pesonally tôi thích cách tiếp cận đầu tiên, nơi bạn có một lớp phụ chỉ cho phương thức chính của bạn vì bạn không làm lộn xộn các lớp của bạn với các phương thức chính không cần thiết. Thay vào đó bạn sẽ có một phương thức chính được xác định là điểm vào cho chương trình của bạn. –