zoukankan      html  css  js  c++  java
  • java基础--集合练习

    1.用数组表示多重性

     练习目标-在类中使用数组作为模拟集合操作: 在本练习中,将用数组实现银行与客户间的多重关系。

    任务

     对银行来说,可添加Bank类。 Bank 对象跟踪自身与其客户间的关系。用Customer对象的数组实现这个集合化的关系。还要保持一个整数属性来跟踪银行当前有多少客户。

    1. 创建 Bank

       2.Bank类增加两个属性:customers(Customer对象的数组)numberOfCustomers(整数,跟踪下一个customers数组索引)

         3.添加公有构造器,以合适的最大尺寸(至少大于5)初始化customers数组。

         4.添加addCustomer方法。该方法必须依照参数(姓,名)构造一个新的Customer对象然后把它放到customer数组中。还必须把numberofCustomers属性的值加1

         5.添加getNumOfCustomers 访问方法,它返回numberofCustomers属性值。

        6.添加getCustomer方法。它返回与给出的index参数相关的客户。

        7.编译并运行TestBanking程序。可以看到下列输出结果:

        Customer [1] is Simms,Jane

        Customer [2] is Bryant,Owen

        Customer [3] is Soley,Tim

        Customer [4] is Soley,Maria

    public class Bank {
        private  Customer[] customers ; //创建对象属性
        private int numberOfCustomers;
        public int getNumberOfCustomers() {
            return numberOfCustomers;
        }
        public void setNumberOfCustomers(int numberOfCustomers) {
            this.numberOfCustomers = numberOfCustomers;
        }
            //在构造方法中初始化数组
        public Bank()
        {
             customers = new Customer[6];
            
        }
          //构造Customer对象并把它放入数组中
        public void addCustomer(String f,String l)
        {     
            this.customers[numberOfCustomers] =new Customer(f,l);
            
            this.numberOfCustomers+=1;
            
        }
    
    public int getnumberOfCustomers()
    {
        return this.numberOfCustomers;
    }
    //获取客户数量的方法
    public Customer getcustomers(int i)
    {
        return this.customers[i];
    }
    }
    public class Customer {
    private String f;
    private String l;
    public String getF() {
        return f;
    }
    public void setF(String f) {
        this.f = f;
    }
    public String getL() {
        return l;
    }
    //重写toString方法
    @Override
    public String toString() {
        // TODO 自动生成的方法存根
        return this.getF()+" ,"+this.getL();
    }
    public void setL(String l) {
        this.l = l;
    }
    //Customer对象的构造方法
    public Customer(String f,String l)
    {
        this.f =f;
        this.l=l;
    }
    }
    public class TestBank {
    
        public static void main(String[] args) {
        Bank b =new Bank();
        b.addCustomer("Simms","Jane");
        b.addCustomer("Bryant", "Owen");
        b.addCustomer("Soley", "Tim");
        b.addCustomer("Soley", "Maria");
        for(int i =0;i<b.getnumberOfCustomers();i++)
        {
            System.out.println("Customer" +"["+(i+1)+"]"+" "+"is"+" "+b.getcustomers(i));
        }
        System.out.println("第三个客户是:"+b.getcustomers(2));
        }
    
    }

    2.List表示多重性

    练习目标-在类中使用List作为模拟集合操作: 在本练习中,将用List实现银行与客户间的多重关系。

    任务

    对银行来说,可添加Bank类。 Bank 对象跟踪自身与其客户间的关系。用Customer对象的List实现这个集合化的关系。还要保持一个整数属性来跟踪银行当前有多少客户。

    1.创建 Bank

    2.Bank类增加两个属性:customers(Customer对象的List)numberOfCustomers(整数, 当前Customer对象的数量)

    3.添加公有构造器,初始化customersList

    4.添加addCustomer方法。该方法必须依照参数(姓,名)构造一个新的Customer对象然后把它放到customerList中。

    5.添加getNumOfCustomers 访问方法,它返回numberofCustomers属性值。

    6.添加getCustomer方法。它返回与给出的index参数相关的客户。

    7.编译并运行TestBanking程序。可以看到下列输出结果:

       Customer 1 is Simms,Jane

       Customer 2 is Bryant,Owen

       Customer 3 is Soley,Tim

       Customer 4 is Soley,Maria

      当前客户数量 = 4

    import java.util.ArrayList;
    import java.util.List;
    
    public class Bank {
    private List<Customer>customers; //集合属性
    private int numberOfCustomers; //索引属性
    public Bank()
    {
        customers = new ArrayList<>();
    }
    //往customers里面添加Customer对象
    public void addCustomer(String f,String l)
    {
        Customer c =new Customer(f,l);
        customers.add(c);
    }    
    //添加索引方法,并返回索引数
    public int getNumOfCustomers()
    {
        numberOfCustomers =customers.size();
        return numberOfCustomers;
    }
    
    public Customer getCustomer(int i)
    {
        return customers.get(i);
    }
    }
    public class Customer {
        private String firstname;
        private String lastname;
        public String getFirstname() {
            return firstname;
        }
        public void setFirstname(String firstname) {
            this.firstname = firstname;
        }
        public String getLastname() {
            return lastname;
        }
        public void setLastname(String lastname) {
            this.lastname = lastname;
        }
        public Customer(String f,String l)
        {
            this.firstname =f;
            this.lastname =l;
        }
        @Override
        public String toString() {
            // TODO 自动生成的方法存根
            return this.firstname+" ,"+this.lastname;
        }
        
    }
    public class TestBanking {
    
        public static void main(String[] args) {
            Bank b = new Bank();
            b.addCustomer("Simms", "Jane");
            b.addCustomer("Bryant", "Owen");
            b.addCustomer("Soley", "Tim");
            b.addCustomer("Soley", "Maria");
            for(int i =0;i<b.getNumOfCustomers();i++)
            {
                System.out.println("Customer"+" "+(i+1)+" "+" is"+" "+b.getCustomer(i));
            }
            System.out.println("第二个客户是:"+b.getCustomer(1));
            System.out.println("客户的数量是:"+b.getNumOfCustomers());
        }
    
    }

  • 相关阅读:
    SQLite Select语句的意外发现
    和一个经理人谈话的经典语句
    [转]如何动态增长一个数组的大小
    [转]Spring AOP中文教程
    为Wildfish框架增加方法调用日志[Aspectsharp]
    第四周学习心得
    《大道至简:软件工程实践者的思想》观后感
    第三周学习心得
    暑假第一周Java学习心得
    第二周学习心得
  • 原文地址:https://www.cnblogs.com/miracle-0807/p/5907868.html
Copyright © 2011-2022 走看看