Java面向对象_对象数组
今天学习了对象数组,写点东西总结一下。废话不多说,啥是对象数组呢?
对象数组的概念是这么讲的,对象数组就是数组里的每个元素都是类的对象,赋值时先定义对象,然后将对象直接赋给数组。
举个例子,使用对象数组实现多个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面向对象_对象数组的更多相关文章
- Java面向对象_对象内存分析—值传递和引用传递
对象内存分析,我一直学的比较模糊,今天抽空整理一下,希望能理清. 先说一下,内存分析从何而来,这对于我们这些刚接触java的人来说都比较模糊,就从new关键字说起吧. new关键字表示创建一个对象或者 ...
- Java面向对象_对象一一对应关系和this关键字
一.打个比方,一个人有一个身份证号,一个身份证号对应一个人.一个英雄对应一把武器,一把武器对应一个英雄.生活中很多对象都存在一一对应关系,那么一一对应关系在代码中是如何实现的呢?举个例子,英雄和武器一 ...
- Java面向对象 其他对象
Java面向对象 其他对象 知识概要: (1)可变参数 (2)静态导入 (3)System (4)Runtime (5)Date Calendar (6)Math 本 ...
- Java核心基础第5篇-Java面向对象_类和对象
Java面向对象之类和对象 一.面向对象概述 Java是完全的面向对象编程(Object Oriented Programming),简称OOP. 面向对象编程的思维方式更加符合大家的日常生活,因为我 ...
- java实现把对象数组通过excel方式导出的功能
一.导入相关jar包,pom依赖如下: <dependency> <groupId>org.apache.poi</groupId> <artifactId& ...
- JAVA学习一 对象数组
对象数组 今天在写一个代码,才发现自己对于对象数组的理解是不够的,那么就讲讲自己现在的理解. 对于数组中的每一个元素都是一个针对对象的引用 他会指向你的具体的一个堆上的对象,它本身知识一个地址值,与其 ...
- JavaSE基础知识(5)—面向对象(对象数组和对象关联)
一.对象数组 1.说明 数组的定义类型为对象类型 2.动态初始化 1.声明并开辟空间 Person[] pers = new Person[长度];2.赋值 for(int i=0;i<pers ...
- C++_对象数组与对象指针
对象数组与对象指针 1. 对象数组 所谓对象数组是指每一数组元素都是对象的数组, 也就是说,若一个类有若干个对象,则把这一系列的对象用一个数组来存放. 对象数组的元素是对象, 不仅具有数据成员,而且还 ...
- Java面向对象_常用类库api——对象比较器
概念:对两个或多个数据项进行比较,以确定他们是否相等,或确定他们之间的大小关系及排列顺序成为比较. 1.Comparable接口: 此接口强行对实现它的每个类的对象进行整体排序.这种排序被称为类的自然 ...
随机推荐
- mac下安装node
学着使用homebrew进行安装,发现很是方便. homebrew是mac下的一款管理安装的工具. 1. 安装homebrew 使用mac自带的ruby下载安装: ruby -e "$(cu ...
- 【转】 Pro Android学习笔记(三三):Menu(4):Alternative菜单
目录(?)[-] 什么是Alternative menu替代菜单 小例子说明 Alternative menu代码 关于Category和规范代码写法 关于flags 多个匹配的itemId等参数 什 ...
- MyBatis总结(1)
MyBatis前身是ibatis,是一个数据持久层框架.封装优化了普通JDBC过程, 如数据库连接的创建.设置SQL语句参数.执行SQL语句.事务.结果映射以及资源释放等. MyBatis是一个支持普 ...
- 转载:Android Studio调试功能使用总结
这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可. 2.开启调试会话 ...
- day01_虚拟机与主机之间ip配置
虚拟机1: centos_ node1 虚拟机2:centos_node2 宿主主机虚拟机ip配置: vmnet1 来自为知笔记(Wiz)
- [matlab]bp神经网络工具箱学习笔记
基本就三个函数: newff():创建一个bp神经网络 train():训练函数 sim():仿真函数 同时具有可视化界面,但目前不知道可视化界面如何进行仿真,且设置不太全 工具箱:Neural ne ...
- “box-shadow”属性(转)
“box-shadow”属性 box-shadow属性是一个CSS3属性,允许我们在几乎任何元素上来创建阴影效果,类似于在设计软件中的”drop shadow”.这些阴影效果允许我们在原本平面的.二维 ...
- 使用Openssl编译svn并安装
我的操作系统是CentOS 6.8.公司的svn服务器安装在windows系统中,并且使用 VisualSVN 对外提供https服务. 在centos 6.8上如果我使用yum 安装svn,那么根本 ...
- 学习过程的记录:实验室电脑上的jdk环境变量
亲爱的,先区分安装路径和软件的存放路径好不好呢? 1.变量名:JAVA_HOME 变量值:D:\Program Files\Java\jdk1.7.0_21 2. 编辑 Path(粘贴到最后) %JA ...
- linux 统计 程序 运行时间
测试 代码运行时间 linux 中的 <sys/time.h> 中 有个函数可以获取当前时间,精确到 微秒 ----> gettimeofday() #include <sy ...