2013-09-04 3 views
0

Более конкретно о вопросе: // Там уже два класса А и В:Как отделить отношения между классами в java?

Class A { 
public static List<B> b = new ArrayList<B>(); 
} 

Class B { 
} 

В моей схеме, я хочу объект Ь из класса В. Тогда при любых обстоятельствах объект б будет включать в себя не менее двух объектов «a_x» и «a_y» из класса A. Как я могу создать такие отношения?

ответ

1

Первое, что public static List<B> b = new List<B>(); не компилируется.

Вам может понадобиться общественный static List<B> b = new ArrayList<B>();

Вы не можете создать экземпляр Interface.So обеспечить concreate реализацию. Ex:ArrayList

И, во-вторых, вы должны добавить их прямо там, где вы создаете этот list.

0

Если у вас есть отношения, где каждый B связан с по крайней мере, дваA экземпляров, то B нуждается в поле сбора типизированных. Например:

public class B { 
     private List<A> relatedAList = new ArrayList<>(); 
     ... 
    } 

Это должно быть поле экземпляра, а не статическое поле.

Но если у вас есть 2+ отношения, это не имеет смысла называть соответствующие объекты x и y ... потому что, если есть z и p и так далее. Если не существует фиксированной верхней границы числа связанных объектов A для каждого B, вы должны использовать какую-то коллекцию для представления каждого B связанных A s.

0

Это отношения:

class A 
{ 
    public List<B> b = new ArrayList<B>(); 
} 

class B 
{ 

    A ax; 
    A ay; 

    B(A ax, A ay) 
    { 
     this.ax = ax; 
     this.ay = ay; 
    } 
} 

Это то, что вам нужно?

Зачем вам такое переживание?

Смежные вопросы