一维数组和二维数组的笔记

数组也是对象

将数组跟表格的形式对应起来理解,表头就是class的属性,每一行就是一个对象

数组在内存中分布图

下面的代码是展示一部分数组的初始化和打印

  • 数组初始化

需要注意静态初始化的时候必须紧跟在声明后

  • 数组的拷贝

arraycopy 方法的用法

  • for 循环的基本用法
package com.arraylearning;

public class Test1 {
    public static void main(String[] args) {


    //静态初始化必须在声明后直接初始化
      Man[] mans = {new Man(01,"a"),
                 new Man(02,"b"),
            new Man(03,"c"),
        new Man(04,"d"),
                new Man(05,"e")

    };
      //数组的copy
      Man[] mans1 = new Man[5];
      System.arraycopy(mans,0,mans1,0,mans.length);
      for(Man x:mans1){
          System.out.println(x);
      }


      for (int i=0;i<mans.length;i++){
          Man m = mans[i];
          System.out.println(m);
      }
      //把数组mans遍历一遍,然后将每一m取出来给对象Man
        //它一般用于读取
      for( Man  m:mans){
          System.out.println(m);
      }
}

}
class Man{
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    //重写,本来是打印hashcode
    public String toString(){
        return "id"+id+",name"+this.name;
    }
    public Man(int id, String name) {
        this.id = id;
        this.name = name;
    }
    //如果你创建了有参数的构造器,那么无参数的就需要你自己加
    public  Man(){

    }
}

二维数组

因为数组也是对象,所以当new了一个数组对象的时候,它还可以将这些数组对象再放进一组数组中,相当于表格一个对象是有很多属性的,它就相当于一个数组,然后将n个这样的表格对象放到一个数组中去,就形成了表格,那也就是二维数组的形成。
package com.arraylearning.utlarray;

/*
使用javabean和数组存储表格信息
 */
public class Test3 {
    public static void main(String[] args) {


        Emp emp0 = new Emp(1001, "gao1", 18, "program", "2009-10-10");

        Emp emp1 = new Emp(1002, "gao2", 28, "program", "2009-10-10");
        Emp emp2 = new Emp(1003, "gao3", 38, "program", "2009-10-10");

        //way1
       // Emp[] emps={emp0,emp1,emp2};
        Emp[] emps = new Emp[3];
        emps[0] = emp0;
        emps[1] =emp1;
        emps[2] =emp2;
        for(int i=0;i< emps.length;i++){
            //toString()method不需要打出来了
            System.out.println(emps[i]);
        }

    }
}
class Emp{
    private  int id;
    private String name;
    private int age;
    private  String job;
    private String hiradate;
    public Emp(){}

    public Emp(int id, String name, int age, String job, String hiradate) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.job = job;
        this.hiradate = hiradate;
    }

    @Override
    public String toString() {
        //use getId 比较好,便于程序修改
        return "Emp{" +
                "id=" + getId() +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", job='" + job + '\'' +
                ", hiradate='" + hiradate + '\'' +
                '}';
    }

    public String  getId() {
        return id+"号";
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    public String getHiradate() {
        return hiradate;
    }

    public void setHiradate(String hiradate) {
        this.hiradate = hiradate;
    }
}


这个作业是对数组的学习应用

package com.arraylearning.utlarray;

import java.util.Scanner;

public class Hometest {

    public static void main(String[] args) {

        Goods staff1 = new Goods(1,"百战牌鼠标","BZ_001",99.21,0.9);
        Goods staff2 = new Goods(2,"键盘侠玩偶","WO_102",403.00,0.7);
        Goods staff3 = new Goods(3,"实战java程序设计","BK_001",89.00,0.8);
        Goods staff4 = new Goods(4,"高器牌西服","GQ_XF_12",700.00,0.5);
        Goods staff5 = new Goods(5,"大米牌手机","DM_PH_13",900.00,0.3);
        Goods[] allinfo = new Goods[5];
      allinfo[0]=staff1;
      allinfo[1]=staff2;
      allinfo[2]=staff3;
      allinfo[3]=staff4;
      allinfo[4]=staff5;



        for(int i=0;i<allinfo.length;i++){

            System.out.println(allinfo[i]);

        } 
        for(int i=0;i<allinfo.length;i++){
            allinfo[i].search(100);
 }

    }



}
class Goods{
    private int id;
    private String goodsName;
    private String type;
    private double price;
    private double discount;
    public Goods(){}

    public Goods(int id, String goodsName, String type, double price, double discount) {
        this.id = id;
        this.goodsName = goodsName;
        this.type = type;
        this.price = price;
        this.discount = discount;
    }
    //创建一个方法,如果输入价格大于购买就返回所有商品
    public void search(double i){
        if(i<getFinalPrice()){
            System.out.println(this.toString());
        }
    }

    @Override
    public String toString() {
        return "Goods{" +
                "id=" + getId() +
                ", goodsName='" + getGoodsName()+ '\'' +
                ", type='" + getType()+ '\'' +
                ", price=" + getPrice()+
                ", discount=" + getDiscount() +
                '}';
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public  double getDiscount(){
        return  discount;
    }
    public double getFinalPrice() {
        return this.price*discount;
    }

    public void setDiscount(double discount) {
        this.discount = discount;
    }


}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值