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

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

举个例子,使用对象数组实现多个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. canvas变换(移动,缩放等)

    代码: 1 /** 2 * Created by Administrator on 2016/1/30. 3 */ 4 function draw (id){ 5 var canvas = docum ...

  2. php-fpm包的安装与配置

    实验环境:CentOS7 [root@~ localhost]#yum -y install php-fpm php-fpm包:用于将php运行于fpm模式 #在安装php-fpm时,一般同时安装如下 ...

  3. java基础知识(6)---抽象类与接口

    抽象类: abstract抽象:不具体,看不明白.抽象类表象体现.在不断抽取过程中,将共性内容中的方法声明抽取,但是方法不一样,没有抽取,这时抽取到的方法,并不具体,需要被指定关键字abstract所 ...

  4. VisualGDB系列2:VisualGDB对Linux平台的支持特性

    根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 1 复杂问题的直观解决方案 只需要轻点几 ...

  5. java中的接口和抽象类的区别

    1.接口从用户的角度(使用实现的代码)看问题. 2.接口由编译器强制的一个模块间协作的合约. 3.无成员变量. 4.成员函数只能声明不能实现,(jdk1.8中的default 方法可以有方法体). 接 ...

  6. <正则吃饺子> :关于使用pd创建表时需要注意的地方

    公司项目使用pd设计数据库表.之前用过,但是年代比较久远了,有些细节忘记了,今天重新使用时候,生疏了,现在稍微记录下吧. 1.pd创建表的使用,可以直接从网上搜索,博文比较多,如 “pd 设计数据库表 ...

  7. 代码 c++实现动态栈

    //============================================================================ // Name : 栈.cpp // Au ...

  8. div中嵌套的多个div使用了浮动后居中的办法

    今天做网页的时候遇到了标题中的问题,网上查到了解决办法,记录一下一放以后忘记 <div class="wai"> <div style="float:l ...

  9. TCP三次握手四次挥手原理

    转自http://www.cnblogs.com/liuxiaoming/archive/2013/04/27/3047803.html TCP协议三次握手原理: 首先,给张图片,建立TCP三次握手的 ...

  10. 7.SSRF漏洞绕过IP限制

    绕过SSRF过滤的几种方法 下文出现的192.168.0.1,10.0.0.1全部为服务器端的内网地址. 1.更改IP地址写法 一些开发者会通过对传过来的URL参数进行正则匹配的方式来过滤掉内网IP, ...