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接口: 此接口强行对实现它的每个类的对象进行整体排序.这种排序被称为类的自然 ...
随机推荐
- win7下vs2010开发atl服务
问题一: 编译服务后,提示出下错误 Microsoft.CppCommon.targets(113,5): error MSB3073: 命令 " ***.exe " /RegS ...
- Poj 2662,2909 Goldbach's Conjecture (素数判定)
一.Description In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard ...
- windows修改远程桌面RDP连接数
windows 2003在默认情况下最多只允许两个用户进行远程终端连接,当达到两个远程桌面连接的到时候,再有人尝试连接,就会提示已经达到最大终端数,无法连上了. 一.windows2003终端连接数修 ...
- C语言学习笔记--const 和 volatile关键字
1.const关键字 (1)const 修饰的变量是只读的,它不是真正的常量,本质还是变量,只是告诉编译器不能出现在赋值号左边! (2)const 修饰的局部变量在栈上分配空间 (3)const 修饰 ...
- LoadRunner 12 模拟 RSA加密 登录的实现(JS)
LR 12 中 web_js_run API 非常坑,只能调用一个 JS 文件:更坑的是,不能通用 一个JS调用另外一个JS:(可能有,但在网上找了N个国家,都没有找到!如有,还请朋友告之,谢谢.) ...
- [dp]最长单调递增子序列LIS
https://www.51nod.com/tutorial/course.html#!courseId=12 解题关键: 如果将子序列按照长度由短到长排列,将他们的最大元素放在一起,形成新序列$B\ ...
- SpringBoot02 Controller的使用、数据库操作、事物管理、修改banner
1 Controller的使用 特点:编程技巧和SpringMVC几乎完全一样 注意:@RestController = @Controller + @ResponseBody 注意:读取路径参数和请 ...
- C++11新标准
1. 新类型 long long和unsigned long long: char16_t 和 char32_t: 新增原始字符串: 2. 统一的初始化 C++11扩大了用大括号括起的列表(初始化列表 ...
- 使用python ftplib包递归下载文件夹及文件
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2018-06-11 09:35:49 # @Author : Yaheng Wang ...
- windows下primer3-py安装
primer3是由怀特黑德生物医学研究所Steve Rozen等人发起的一个自动寡核苷酸分析和设计的开源项目,被广泛应用在分子生物领域.primer3-py是用python语言封装的primer3的A ...