【问题标题】:How to create data object dynamically in java?如何在java中动态创建数据对象?
【发布时间】:2012-11-12 20:48:14
【问题描述】:

我正在学习 Java 中的数据对象

我对动态创建数据对象有疑问。

例如,

我们有...

public class tasks {
private int vmnumber; 
private int tasknumber;
private String status;
public tasks(int vmnumber , int tasknumber , String status) {
this.vmnumber = vmnumber;
this.tasknumber = tasknumber;
this.status = status; }

还有一些 getvmnumber gettasknumber 、 getstatus 和一些 set 函数用于

我对创建数据对象的理解是我们每次都必须初始化。

例如,在主文件中,

public class task{
public static void main(String [] args){
task t = null , t2 = null;

t = new task();
t.tasknumber = 3;
t.vmnumber = 4;
t.status = "Start";

t2 = new task();
t.tasknumber = 2;
t.vmnumber = 1;
t.status = "Wait";
}

但是,我想我们如何动态创建数据对象,因为程序可能会实时获取任务的信息。(然后我们不能手动创建数据对象,我们需要可以创建数据对象的东西动态...)

其次,我想知道如何从数据对象中获取数据。

例如,如果我们想找到任务号 3 的所有信息,我应该怎么做? 可以说,我们有 task1、task2、task3 数据对象,我们想查看 task1 的所有信息。那我该怎么办?

谢谢

【问题讨论】:

  • 您正在那里动态创建数据对象...
  • “动态”创建它是什么意思?它会以什么方式被动态化?为了检索task1 的信息,您拥有可用于读取其变量的getter(您说过您拥有)。我在这里错过了什么吗?

标签: java object dynamic data-objects


【解决方案1】:

从你的问题来看,有几点需要讨论。

我猜你想创建新任务,这可能是来自应用程序用户界面的请求,或者是 web 服务,批处理......

好吧,您已经知道如何使用 new 关键字创建对象了。根据原始请求,您的 main 函数可能必须创建同一类“Task”的多个实例。

此外,当您实例化“Task”类时,您绝不会希望直接为它的属性赋值。

因此,您应该编码 t.tasknumber = 3,而不是编码:t.setTaskNumber(3)

此外,您应该重命名类的属性以反映 JavaBeans 约定: - private int taskNumber 而不是 tasknumber

当然,这只是一个约定,在您的程序中并不是强制性的。但它有助于生成 getter/setter,而且,它是一种约定 :-)

要在您创建的任务中检索“信息”,您只需调用 getter : - myTask.getTaskNumber()

希望对你有所帮助。

【讨论】:

  • 我们创建 getter 和 setter 来确保封装。这是 OOP(面向对象编程)的核心概念。只有您的类(或者可能从它继承的类)可以直接访问其属性。考虑这个例子:你有一个类 Person,它拥有一个“年龄”属性。如果任何代码可以更改 myPerson.age = -20 的值,想象一下混乱 :-) 使用 setter myPerson.set(int age),您可以在将其分配给实例“myPerson”之前检查该值。跨度>
猜你喜欢
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多