#java #class #oop #reference
#java #класс #ооп #ссылка
Вопрос:
Я изучаю как начинающий ООП на языке Java и обнаружил, что застрял при попытке выполнить определенную задачу. Прямо сейчас я пытаюсь решить проблему, когда у меня есть класс A, который имеет 2 атрибута, один из которых — объект того же типа A и список с объектами типа B, этот тип B имеет только один атрибут и его значение int.
Class B{
int number;
}
Class A{
A next;
List<B> objects;
{
Часть проблемы, с которой я сталкиваюсь, заключается в том, чтобы «Создать метод в классе A, который вернет объект B с наименьшим номером в текущем экземпляре класса A и его преемников (A next). Я не пытаюсь найти код, а способ перемещения между текущим экземпляром класса, в котором я нахожусь (ссылка на класс A), и его прямыми ссылками (следующий). Я задаю этот вопрос здесь, потому что я не смог найти подобный вопрос в своих поисках.
Комментарии:
1. из метода внутри класса A вы получаете доступ к объектам next с
this.next.objects
помощью (при условии, что поля не являются частными).
Ответ №1:
Я обновил класс следующим кодом
import java.util.*;
public class A {
List<B> obj1;
A next;
A(A a,List<B> o){
next = a;
obj1 = o;
}
public void lowestNumber()
{
List<B> objects = new ArrayList<B>();
int i = obj1.get(0).number;
System.out.println(" A next object size of list b is " next.obj1.size());
for(B ob: obj1)
{
if(ob.number < i)
{
i = ob.number;
objects.add(ob);
}
}
if(objects.size() != 0)
{
int j = objects.size() - 1;
System.out.println(" B object lowest number is " objects.get(j).number);
}
else {
System.out.println(" B object lowest number is " objects.get(0).number);
}
}
}
и для выполнения этого для метода main я создал отдельный класс C.java
следующий код выглядит следующим образом
import java.util.*;
public class C {
public static void main(String[] args)
{
List<B> y = new ArrayList<B>();
List<B> u = new ArrayList<B>();
B y1 = new B();
y1.number = 3;
B y2 = new B();
y2.number = 4;
B y3 = new B();
y3.number = 1;
B y4 = new B();
y4.number = 2;
y.add(y1);
y.add(y2);
y.add(y3);
u.add(y4);
u.add(y3);
A n2 = new A(null, u);
A n1 = new A(n2, y);
n1.lowestNumber();
}
}
Результат — это
A next object size of list b is 2
B object lowest number is 1