Java: 访问 class 中的一个属性 who 也是同一个 class 的对象
Java: Accessing an attribute in a class who also is an object of the same class
我正在学习 Java 语言的 OOP 初学者,发现自己在尝试执行特定任务时卡住了。现在我正在尝试解决一个问题,我有一个 class A 有 2 个属性,一个是相同类型 A 的对象和一个包含类型 B 对象的列表,这个类型 B 只有一个属性和它是一个整数。
Class B{
int number;
}
Class A{
A next;
List<B> objects;
{
我遇到的部分问题是“在 class A 中创建一个方法,它将 return [=19= 的当前实例中编号最小的对象 B ] A 及其后继者(下一个 A)。我不是要查找代码,而是要找到一种能够在我所在的 class 的当前实例之间移动的方法(参考 Class A) 及其前向引用 (A next)。我在这里提出这个问题是因为我无法在搜索中找到这样的问题。
我已经通过以下代码更新了 A class
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);
}
}
}
为了执行这个,我为主要方法创建了单独的 class 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
我正在学习 Java 语言的 OOP 初学者,发现自己在尝试执行特定任务时卡住了。现在我正在尝试解决一个问题,我有一个 class A 有 2 个属性,一个是相同类型 A 的对象和一个包含类型 B 对象的列表,这个类型 B 只有一个属性和它是一个整数。
Class B{
int number;
}
Class A{
A next;
List<B> objects;
{
我遇到的部分问题是“在 class A 中创建一个方法,它将 return [=19= 的当前实例中编号最小的对象 B ] A 及其后继者(下一个 A)。我不是要查找代码,而是要找到一种能够在我所在的 class 的当前实例之间移动的方法(参考 Class A) 及其前向引用 (A next)。我在这里提出这个问题是因为我无法在搜索中找到这样的问题。
我已经通过以下代码更新了 A class
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);
}
}
}
为了执行这个,我为主要方法创建了单独的 class 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