今天学习了对象数组,写点东西总结一下。废话不多说,啥是对象数组呢?

对象数组的概念是这么讲的,对象数组就是数组里的每个元素都是类的对象,赋值时先定义对象,然后将对象直接赋给数组。

举个例子,使用对象数组实现多个Hero的管理

 import java.util.Arrays;
import java.util.Scanner; public class Test4 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
HeroManager hm=new HeroManager();
System.out.println("------增加英雄------");
Heros.print1();
hm.add(new Heros("关羽","男",30));
hm.add(new Heros("张飞","男",31));
hm.add(new Heros("刘备","男",32));
hm.add(new Heros("曹操","男",33));
hm.add(new Heros("孙权","男",34));
hm.list();
System.out.println("------查找英雄------");
Heros q=hm.find(34);
q.print();
System.out.println("------删除英雄------");
hm.delete(34);
hm.list();
System.out.println("------更新英雄------");
hm.update(new Heros("小郝","女",31));
hm.list();
} }
//管理类
class HeroManager{
private Heros[] heros=new Heros[3];
private int count=0;
public void add(Heros h){
if(count>=heros.length){
int newLen=heros.length*3/2+1;//一般扩充原来长度的一半
heros=Arrays.copyOf(heros, newLen);
}
heros[count]=h;
count++;
}
public Heros find(int id){
for(int i=0;i<count;i++){
if(heros[i].getId()==id){
return heros[i];
}
}
return null; }
//关羽 张飞 刘备 曹操
public void delete(int id){
for(int i=0;i<count;i++){
if(heros[i].getId()==id){
for(int j=i;j<count-1;j++){
heros[j]=heros[j+1];
}
heros[count-1]=null;
count--;
break;
}
}
}
public void update(Heros h1){
Heros m=find(h1.getId());
if(m!=null){
m.setName(h1.getName());
m.setSex(h1.getSex());
}
}
public void list(){ for(int i=0;i<count;i++){
heros[i].print();
}
} } //英雄类
class Heros{
private String name;
private String sex;
private int id;
public Heros(){ }
public Heros(String name,String sex,int id){
this.name=name;
this.sex=sex;
this.id=id;
}
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public void print(){
System.out.println(name+"\t"+sex+"\t"+id);
}
public static void print1(){
System.out.println("姓名"+"\t"+"性别"+"\t"+"排名"+"\t");
} }

Java面向对象_对象数组的更多相关文章

  1. Java面向对象_对象内存分析—值传递和引用传递

    对象内存分析,我一直学的比较模糊,今天抽空整理一下,希望能理清. 先说一下,内存分析从何而来,这对于我们这些刚接触java的人来说都比较模糊,就从new关键字说起吧. new关键字表示创建一个对象或者 ...

  2. Java面向对象_对象一一对应关系和this关键字

    一.打个比方,一个人有一个身份证号,一个身份证号对应一个人.一个英雄对应一把武器,一把武器对应一个英雄.生活中很多对象都存在一一对应关系,那么一一对应关系在代码中是如何实现的呢?举个例子,英雄和武器一 ...

  3. Java面向对象 其他对象

     Java面向对象  其他对象 知识概要:             (1)可变参数 (2)静态导入 (3)System (4)Runtime (5)Date  Calendar (6)Math 本 ...

  4. Java核心基础第5篇-Java面向对象_类和对象

    Java面向对象之类和对象 一.面向对象概述 Java是完全的面向对象编程(Object Oriented Programming),简称OOP. 面向对象编程的思维方式更加符合大家的日常生活,因为我 ...

  5. java实现把对象数组通过excel方式导出的功能

    一.导入相关jar包,pom依赖如下: <dependency> <groupId>org.apache.poi</groupId> <artifactId& ...

  6. JAVA学习一 对象数组

    对象数组 今天在写一个代码,才发现自己对于对象数组的理解是不够的,那么就讲讲自己现在的理解. 对于数组中的每一个元素都是一个针对对象的引用 他会指向你的具体的一个堆上的对象,它本身知识一个地址值,与其 ...

  7. JavaSE基础知识(5)—面向对象(对象数组和对象关联)

    一.对象数组 1.说明 数组的定义类型为对象类型 2.动态初始化 1.声明并开辟空间 Person[] pers = new Person[长度];2.赋值 for(int i=0;i<pers ...

  8. C++_对象数组与对象指针

    对象数组与对象指针 1. 对象数组 所谓对象数组是指每一数组元素都是对象的数组, 也就是说,若一个类有若干个对象,则把这一系列的对象用一个数组来存放. 对象数组的元素是对象, 不仅具有数据成员,而且还 ...

  9. Java面向对象_常用类库api——对象比较器

    概念:对两个或多个数据项进行比较,以确定他们是否相等,或确定他们之间的大小关系及排列顺序成为比较. 1.Comparable接口: 此接口强行对实现它的每个类的对象进行整体排序.这种排序被称为类的自然 ...

随机推荐

  1. Docker容器里的进程为什么要前台运行

    <第一本Docker书>里面,讲到Docker容器启动web服务时,都指定了前台运行的参数,例如apache: ENTRYPOINT [ "/usr/sbin/apache2&q ...

  2. 添加一个用户并且让用户获得root权限

    1.创建一般用户: 完全参考默认值创建一个用户, 一般账号UID应该是500以后的. 默认会创建用户家目录和账号一模一样的群组名.创建使用账号且给予口令才算完成了用户的创建流程. useradd us ...

  3. B+树索引和哈希索引的明显区别是:

    如果是等值查询,那么哈希索引明显有绝对优势,因为只需要经过一次算法即可找到相应的键值:当然了,这个前提是,键值都是唯一的.如果键值不是唯一的,就需要先找到该键所在位置,然后再根据链表往后扫描,直到找到 ...

  4. spring IOC 注解@Resource

    1.@Resource(重要)a)加入 :j2ee/common-annotations.jar b)默认按名称,名称找不到,按类型 默认按照名称setName1到xml中找和id相同的,没有的话再找 ...

  5. oracle--分页过程demo1

    oracle分页过程demo1: --ROWNUM用法 select o.*,rownum rn from (select * from emp) o where rownum<=10; sel ...

  6. PowerDesigner生成CDM模型

    一.新建概念数据模型  1)选择File-->New,弹出如图所示对话框,选择CDM模型(即概念数据模型)建立模型. 2)完成概念数据模型的创建.以下图示,对当前的工作空间进行简单介绍.(以后再 ...

  7. 问题:C#时间差;结果:C# 使用TimeSpan计算两个时间差

    C# 使用TimeSpan计算两个时间差 可以加两个日期之间任何一个时间单位. private string DateDiff(DateTime DateTime1, DateTime DateTim ...

  8. Tomcat+Nginx实现动静分离

    Tomcat是我们经常用的服务器,轻便快捷,但是数据量大的时候,会影响访问.响应速度,这时Nginx就出现了. Nginx可做反向代理.负载均衡.动态与静态资源的分离的工作,这里我们就用它来做动静分离 ...

  9. 1.6 xss挑战平台练习

    ------------------------- XSS挑战之旅 ------------------------- 最近在学习xss,找到了一个xss练习平台,在线地址:http://test.x ...

  10. sublime插件-OmniMarkupPreviewer浏览器打开报404解决办法

    Sublime Text > Preferences > Package Settings > OmniMarkupPreviewer > Settings - Default ...