Java 如何为每个对象使用变量

Java 如何为每个对象使用变量,java,class,oop,object,Java,Class,Oop,Object,我有一个元素数组。我根据每个元素的名称创建对象,并调用一些getter函数。我正在创建的类的对象实际上是一个第三方库,“Sigar” 问题是我不想修改这个第三方库,因为我不能为每个对象分别保存变量值。我需要想出一些方法来保持每个对象的独立变量 我希望我的描述能解释我想要什么。下面是我的代码 private long lastDiskCheck = 0; private long lastDiskRead = 0; private long lastDiskWrite = 0; private S

我有一个元素数组。我根据每个元素的名称创建对象,并调用一些getter函数。我正在创建的类的对象实际上是一个第三方库,“Sigar”

问题是我不想修改这个第三方库,因为我不能为每个对象分别保存变量值。我需要想出一些方法来保持每个对象的独立变量

我希望我的描述能解释我想要什么。下面是我的代码

private long lastDiskCheck = 0;
private long lastDiskRead = 0;
private long lastDiskWrite = 0;
private String getDiskUsage() {
    try {
        List<FileSystem> result = new ArrayList<FileSystem>();
        org.hyperic.sigar.FileSystem[] fss = null;
        fss = sig.getFileSystemList();
        List<Integer> diskUsage = new ArrayList<Integer>();
        String ioStat = "";
        for (int i = 0; i<fss.length; i++) {
            FileSystem fs = fss[i];
            FileSystemUsage usage = sig.getFileSystemUsage(fs.getDirName());
            if (lastDiskCheck!=0) {
                long diff = (nanoTime() - lastDiskCheck)/1000000;
                long diffRead = usage.getDiskReadBytes() - lastDiskRead;
                long diffWrite = usage.getDiskWriteBytes() - lastDiskWrite;
                ioStat = String.format("(%d/%d kB/s)", diffRead/diff, diffWrite / diff);
            }
            lastDiskRead = usage.getDiskReadBytes();
            lastDiskWrite = usage.getDiskWriteBytes();
            lastDiskCheck = nanoTime();
            diskUsage.add((int)(usage.getUsePercent()*100));
        }
        return String.format("%d%% %s", (Collections.max(diskUsage)), ioStat);
    } catch (SigarException e) {
        e.printStackTrace();
    }
    return "n/a";
}
更新循环中我不想要的每个对象。如何使每个对象保持不同

public class MyClass {
    private long lastDiskCheck;
    private long lastDiskRead;
    private long lastDiskWrite;

    private YourObject object;

    public void setLastDiskCheck(lastDiskCheck){ // setter of lastDiskCheck
        this.lastDiskCheck = lastDiskCheck;
    }

    public long getLastDiskCheck(){ //getter of lastDiskCheck
        return lastDiskCheck;
    }
}

使用这种方法,您可以在MyClass中保留每个对象,并为每个对象保留不同的值。

在您的情况下。您应该学习Java中面向对象编程的四大支柱:

之后,您将了解如何创建不同的实例,如果您有编程知识,您将不会有任何问题

更重要的是,澄清并回答您的问题。最好的解决方案是创建一个具有私有属性的类。您将使用getter/setters方法(public修饰符)访问这些属性。实际上,您可以创建一些对象,并且可以使用getter和setter引入和接收每个对象的值


简要说明:

你可以创建一个类来保存你的对象和这3个值。你能给我举个例子吗?我对java非常陌生。我有一些困惑,如果你能给我一些更详细的样品,我将不胜感激。我不知道如何与这个新类交互。您将使用这个新类生成对象。你将设置每个值并用它进行操作。你是说这个新类的“用这个新类”吗?你能给我举个二传手的例子吗?我真的很感激。我想我想我做的太多了,谢谢你的时间:)你能检查一下吗?我不清楚的是,如果我在一个新类中声明这些属性,它将是该类的属性和该类的对象。我用setter和getter设置了一个新类DiskMembers。但我仍然不知道如何与这个新类交互;arrayTest[0]。集合名(“Charlie”);arrayTest[1]。设置名称(“Robert”);arrayTest[2]。设置名称(“Mario”);现在,每次调用getName时,都会收到不同对象的不同名称。你明白我的意思吗?前面的“代码”是一个带有随机设置器的随机示例。这很有帮助:),谢谢。你能看看这个吗
public class MyClass {
    private long lastDiskCheck;
    private long lastDiskRead;
    private long lastDiskWrite;

    private YourObject object;

    public void setLastDiskCheck(lastDiskCheck){ // setter of lastDiskCheck
        this.lastDiskCheck = lastDiskCheck;
    }

    public long getLastDiskCheck(){ //getter of lastDiskCheck
        return lastDiskCheck;
    }
}