- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
public class MainClass {
ArrayList mans = new ArrayList();
// I'm filling in this arraylist, but I'm not writing those parts because I want to summarize the
//code.
}
public class Man {
int index_father, index_son;
Tên chuỗi;
public Man(String name){
this.name = name;
}
}
这个男人社区中的一些人有父子关系。我的问题是:
我正在寻找一种更简洁的方式来建立这种父子关系。
我尝试用整数建立这种关系(例如:which_father 显示该男子的父亲在“男子”列表中所在的目录)但这有一些缺点:
1-创建对象时,我总是必须在父亲之后创建儿子。因为:
private void createMan() {
Man man = new Man("Ethan");
man.index_father = 4;
mans.add(man);
mans.get(4).index_son = mans.indexOf(man);
}
如果我们还没有创造出父亲,那么人类的第四个元素就不会被创造出来。
2- 如果我从 mans arraylist 中删除一个元素,which_fathers 将不会显示正确的父亲 man。
我可能对 Java 了解不够,但一定有一种简单的方法可以在对象之间建立联系(比如本例中的父子关系),对吧?
1 Câu trả lời
您可以添加 List
hiện hữuMan
中代表儿子类:
public class Man {
Tên chuỗi;
List sons = new ArrayList<>();
public Man(String name){
this.name = name;
}
}
我认为 OOP 可以帮助简化事情:
public class Person {
Sex sex;
Tên chuỗi;
List children = new ArrayList<>();
Person partner; // husband/wife
public Person(String name, Sex sex){
this.name = name;
this.sex = sex;
}
public void marryTo(Person person){
this.partner = person;
person.setPartner(person);
}
public void setChildFromMarriage(Person child){
children.add(child);
partner.getChildren().add(child);
}
public enum Sex {
MAN, WOMAN
}
}
你可以保留一个List
.
cách sử dụng:
List people = Arrays.asList(
new Person("Jordan", Person.Sex.MAN),
new Person("Tim", Person.Sex.MAN),
new Person("Sarah", Person.Sex.WOMAN)
);
// Let's marry Jordan to Sarah
Person jordan = getPersonByName(people, "Jordan");
Person sarah = getPersonByName(people, "Sarah");
jordan.marryTo(sarah);
Person child = new Person("Jordan Jr", Person.Sex.MAN);
// We can add the child to people list if we want
jordan.setChildFromMarriage(child);
// Let's change their child name using Sarah's reference.
getPersonByName(sarah.getChildren(), "Jordan Jr").setName("Bob");
System.out.println(child.getName()); // Bob
private static Person getPersonByName(List people, String name) {
return people.stream()
.filter(person -> person.getName().equals(name))
.findFirst()
.get();
}
Đầu ra:
Bob
关于java - 如何在对象之间建立链接/关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67742353/
Một trong những giáo sư của tôi đã đưa cho chúng tôi một số câu hỏi thực hành cho một kỳ thi và một trong những câu hỏi đó giống như thế này (mã giả): a.setColor(blue); b.setColor(red); a = b; b.setColor(purple); b
Tôi có vẻ sử dụng bài kiểm tra này rất nhiều if( object && object !== "null" && object !== "undefined" ){ doSomething(); } trên một đối tượng, tôi
C# Object/object là kiểu giá trị hay kiểu tham chiếu? Tôi đã kiểm tra rằng họ có thể giữ tham chiếu, nhưng tham chiếu này không thể được sử dụng để thay đổi đối tượng. sử dụng System; lớp MyClass { public static
Tôi đang gặp sự cố khi gửi json qua AJAX. var data = [{"name": "Will", "surname": "Smith", "age": "40"},{"name": "Wil
Khi tôi cố truy cập đối tượng {{result}} trong View của mình (mà tôi gửi từ máy chủ Express js), nó chỉ hiển thị [object][object] Có ai biết cách lấy giá trị ở định dạng JSON không? Đây là
Tôi có dữ liệu ở nhiều kiểu khác nhau (có thể là chuỗi, số nguyên...). Sau đây là một ví dụ đơn giản: public static void main(String[] args) { before("one"); }
Xin chào, tôi mới làm quen với json và javascript. Tôi tìm thấy phương pháp sử dụng dữ liệu json làm bảng trên trang web này. Tôi tò mò tại sao khi tôi thử sử dụng dữ liệu json làm bảng, tôi lại nhận được [Object,Object]
Đã đóng. Sự cố này cần có thông tin chi tiết để gỡ lỗi. Hiện tại không chấp nhận câu trả lời. Chỉnh sửa câu hỏi để bao gồm hành vi mong muốn, một vấn đề hoặc lỗi cụ thể và
Tôi nghe người khác nói null == object tốt hơn object == null kiểm tra Ví dụ: void m1(Object obj ) { if(null == obj) // Đây có phải là
Đối tượng Match cung cấp quyền truy cập vào các thuộc tính chỉ đọc của một biểu thức chính quy khớp. Mô tả Đối tượng Match chỉ có thể được tạo thông qua phương thức Execute của đối tượng RegExp, phương thức này thực sự trả về một tập hợp các đối tượng Match. Tất cả
Đối tượng lớp Đối tượng được tạo bằng cách sử dụng câu lệnh Class. Cung cấp quyền truy cập vào nhiều sự kiện khác nhau của lớp học. Mô tả: Không được phép khai báo rõ ràng một biến là kiểu Class. Trong bối cảnh của VBScript, thuật ngữ "đối tượng lớp" đề cập đến một
Đối tượng Folder cung cấp quyền truy cập vào tất cả các thuộc tính của một thư mục. Đoạn mã sau minh họa cách lấy đối tượng Thư mục và xem các thuộc tính của nó: Hàm ShowDateCreated(f
Đối tượng File cung cấp quyền truy cập vào tất cả các thuộc tính của một tệp. Đoạn mã sau minh họa cách lấy đối tượng File và xem các thuộc tính của nó: Hàm ShowDateCreated(fil
Đối tượng Drive cung cấp quyền truy cập vào các thuộc tính của ổ đĩa hoặc chia sẻ mạng. Mô tả Mã sau đây minh họa cách sử dụng đối tượng Drive để truy cập các thuộc tính của ổ đĩa: Hàm ShowFreeSpac
Đối tượng FileSystemObject cung cấp quyền truy cập vào hệ thống tập tin của máy tính. Đoạn mã sau minh họa cách sử dụng đối tượng FileSystemObject để trả về đối tượng TextStream có thể đọc được.
Tôi mới làm quen với JavaScript OOP và tôi nghĩ đây là một câu hỏi khá cơ bản nhưng tôi không thể tìm thấy bất kỳ sự trợ giúp nào khi tìm kiếm trên web. Tôi có bỏ lỡ điều gì không, hay tôi đang làm sai cách? Đây là mã mẫu của tôi: functionio
Tôi có thể dễ dàng tạo ra nhiều đồ vật khác nhau. Ví dụ như thế này: var myObject = { myFunction: function () { return ""; } };
hàm Person(fname, lname) { this.fname = fname, this.lname = lname, this.getName = hàm()
Có ai có thể giải thích cho tôi tại sao đoạn mã sau lại trả về (object, Object) không? (console.log(dope) cung cấp những gì nó cần, nhưng trong JSON.stringify và JSON.parse
Tôi đang cố gắng hoàn thành bài tập biểu đồ phân tán từ trại mã miễn phí. Tuy nhiên, tôi mới chỉ tự học d3 được vài giờ và sau khi làm theo hướng dẫn từ lynda.com, tôi đã cố gắng xác định cách hiển thị dữ liệu cụ thể trong chú giải công cụ. Mã này
Tôi là một lập trình viên xuất sắc, rất giỏi!