java对象数组 创建对象数组,初始化对象数组「建议收藏」

java对象数组 创建对象数组,初始化对象数组「建议收藏」对象数组的概念:如果一个数组中的元素是对象类型,则称该数组为对象数组。当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象。对象数组的定义和使用:对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例化。对象数组的声明形式是:类名对象数组名[];为对象数组分配内存空间:对象数组名=new类名[数组长度];//注意:此处不是构…

大家好,又见面了,我是你们的朋友全栈君。

对象数组的概念:
如果一个数组中的元素是对象类型,则称该数组为对象数组。
当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象。
对象数组的定义和使用:
对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例化。
对象数组的声明形式是:
类名 对象数组名 [ ];
为对象数组分配内存空间:
对象数组名=new 类名[数组长度];//注意 :此处不是构造方法了
可以将对象数组的声明和创建用一条语句来完成。例如:定义一个学生类对象数组,可以用下面的语句定义:Student stu[ ]=new Student[30]; stu [ ]是对象数组名,它所表示的数组一共有30个元素,每一个元素都是Student类的对象名,还没有实例化,所以还必须为每一个元素实例化。比如如下的过程:
for(int i=0;i<stu.length;i++)
stu[i]=new Student();
实例化以后就可以使用每一个元素对象。
设计一个雇员类,并创建雇员类的对象数组,输出每个雇员的信息

//设计一个雇员类,并创建雇员类的对象数组,输出每个雇员的信息
class Employee {   //雇员类
 private String id;  //编号
 private String name; //姓名
 private int age;     //年龄
 private String vocation; //职务
 public Employee(){} //构造方法一
 public Employee(String id,String name,int age,String vocation){
  set(id,name,age,vocation);
 }
 //设置属性的方法
 public void set(String id,String name,int age,String vocation){
  this.id=id;
  this.name=name;
  this.age=age;
  this.vocation=vocation;
 }
 public String toString() {
  String mess=id+","+name+","+age+","+vocation;
  return mess;
 }
}
public class Example4  {
 public static void main(String[] args) {
  Employee 雇员[]=new Employee[3];
  int i;
  for(i=0;i<雇员.length;i++)//为对象数组中每一个元素实例化
  雇员[i]=new Employee();//如果没有写构造方法一,而这样写,会出错
  //因为类中有有参的构造方法,系统就不会在默认给无参的构造方法了,
  //所以当类中写了有参的构造方法后,要用无参的构造方法时必须写出来
  
  //每一个对象元素分别初始化
  雇员[0].set("0001","张文军",50,"总经理");
  雇员[1].set("0002","李琦",45,"副经理");
  雇员[2].set("1016","张丽",28,"秘书");
  for (Employee employee:雇员)
   System.out.println(employee.toString());
 }
}

在这里插入图片描述
普通型for循环和增强型for循环
普通型

a={1,2,3,4,5};
for(int i=0;i<a.length;i++) {
 System.out.println9(a[1]);
}

增强型

for(int element:a) {
System.out.println(element);
}

两者结果相同,但是增强型更为简洁

对象数组还可以采用初始化的方法创建。创建形式是:
类名 对象数组名[ ]={对象列表};

设计一个雇员类,创建雇员类的对象数组并初始化,输出每个雇员的信息,仍然沿用上面的Employee类,程序如下

class Employee {   //雇员类
 private String id;  //编号
 private String name; //姓名
 private int age;     //年龄
 private String vocation; //职务
 public Employee(){} //构造方法一
 public Employee(String id,String name,int age,String vocation){
  set(id,name,age,vocation);
 }
 //设置属性的方法
 public void set(String id,String name,int age,String vocation){
  this.id=id;
  this.name=name;
  this.age=age;
  this.vocation=vocation;
 }
 public String toString() {
  String mess=id+","+name+","+age+","+vocation;
  return mess;
 }
}
public class Example11 {
 public static void main(String[] args) {
  //先创建3个雇员对象
  Employee employee1=new Employee("0001","张文军",50,"总经理");
  Employee employee2=new Employee("0005","李琦",45,"副经理");
  Employee employee3=new Employee("1016","张丽",28,"秘书");
  //声明对象数组并直接初始化
  Employee 雇员1[]={employee1,employee2,employee3};
  output(雇员1);//输出雇员信息
  System.out.println("------------------");//分割线
  //声明对象数组并直接初始化,初始化元素直接调用
  //构造方法创建对象
  Employee 雇员2[]={new Employee("0001","张文军",50,"总经理"),
  new Employee("0005","李琦",45,"副经理"),
  new Employee("1016","张丽",28,"秘书")};
  output(雇员2);
 }
 //定义方法用于输出雇员信息,注意方法是private,static
 private static void output(Employee 雇员[]){
  for(Employee employee:雇员)
   System.out.println(employee.toString());
 }
}

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143937.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月20日 下午2:00
下一篇 2022年5月20日 下午2:20


相关推荐

  • python k折交叉验证,python中sklearnk折交叉验证

    python k折交叉验证,python中sklearnk折交叉验证python 中 sklearnk 折交叉验证发布时间 2018 06 1011 09 浏览次数 492 标签 pythonsklear 模型验证回顾进行模型验证的一个重要目的是要选出一个最合适的模型 对于监督学习而言 我们希望模型对于未知数据的泛化能力强 所以就需要模型验证这一过程来体现不同的模型对于未知数据的表现效果 最先我们用训练准确度 用全部数据进行训练和测试 来衡量模型的表现 这种方

    2026年3月16日
    2
  • Java文件路径/服务器路径的获取

    Java文件路径/服务器路径的获取Java文件路径获取几种获取方式getResourceAsStream()返回的是inputstreamgetResource()返回:URLClass.getResource(“”)   返回的是当前Class这个类所在包开始的为置Class.getResource(“/”)返回的是classpath的位置getClassLoader().getResour

    2022年7月11日
    58
  • pinn求解ode_pt_pin

    pinn求解ode_pt_pin今天硕士论文开题答辩,想着学了这么长时间的PINN,七七八八也看了一些文献,一来是为了整理思路,二来可以方便以后回顾复习。使用PINN求解PDE与传统有限元、有限差分、谱方法等最大的区别是,无需做预先的假设,线性化和网格化。求解一般的偏微分方程的形式:PINN具体算法步骤如下:其中只有初边界训练数据包含u的值,内部配置点不包含u的值,只有定义域内部的点。(这一点一直迷糊,最近才理清楚)。PINN求解PDE框架图:可以通过自动微分最小化损失函数,得到神经网络最优参数,从而的到.

    2025年7月13日
    4
  • 通达OA 小飞鱼开发培训第四讲 工作流介绍(图文)[通俗易懂]

    通达OA 小飞鱼开发培训第四讲 工作流介绍(图文)

    2022年1月27日
    53
  • UVA644

    UVA644题意:输入多个序列,判断是否存在前缀关系。思路如下:现

    2022年6月16日
    32
  • Python批量修改文件名,文件再多也只要一秒,省时又不闹心

    Python批量修改文件名,文件再多也只要一秒,省时又不闹心前言嗨喽!大家好,这里是魔王对于电脑中的文件夹啊,我们那是新建一个又一个啊,有时候,我们整理资料的时候就会发现,文件夹那是一个杂乱无章,一个一个的去修改太浪费时间,咋今天就来分享一个小技巧:批量修改文件名一、在原有的名字前中后批量加字随意一点,这是我刚刚新建的文件夹和我存放的路径。我们来看看代码,我都详细注释了。importos#导入模块filename=’C:\\Users\\Administrator\\Desktop\\123’#文件地址list_path=os.l

    2025年7月10日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号