Java类和对象(实现初级客户系统增删改查)

第六章总结

通过第六章的学习,对类和对象有了自己的理解和感悟,逐渐将面向过程的编程思想转化为了面向对象的编程思想。
学习完了本章的内容,将其进行总结,将类的属性,方法,构造器,封装性,关键字的使用等知识点进行复习,把知识点放进同一个程序中,实现一个小的项目,实现增删该查的功能。

客户类Customer



//Customer 类用来封装用户的信息
public class Customer {
    private String name;
    private int age;
    private int phone;
    private String gender;
    private String email;

    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 int getPhone() {
        return phone;
    }

    public void setPhone(int phone) {
        this.phone = phone;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
    public Customer ( String name,int age,int phone,String gender,String email){
        this.age=age;
        this.email=email;
        this.gender=gender;
        this.name=name;
        this.phone=phone;
    }
}

客户清单类Customerlist

/*
Customerlist为Customer类提供方法数组,用来进行管理Customer类的对象
    提供能够进行遍历的方法等
 */




/*
构造这个类的思路是,我们使用类的嵌套,也就是在这个类中嵌套了一个Csutomer类,
并且使用这个类去定义了一个数组,数组的大小由使用者决定,这个数组属于该类的一
个属性,第二个属性是total,他的目的是为了进行判断此时数组中已经存储了多少个
元素,同时也可以实现索引等
 */
public class Customerlist {
    private Customer customers[];
    private int total;//记录已经保存的客户的数量

    /*
        totalcustomer 的作用是用来指定数组的长度
        Customerd的是构造方法即是构造器
 */

    public Customerlist(int totalcustomer){
        customers=new Customer[totalcustomer];//对数进行初始化
    }

    /*
    在Customer类中定义了一个方法叫做增加客户的方法,可以看到,此处的参数
    类型是Customer类,也就是我们如果想要增加客户的花,可以在Customervie
    中直接将参数传递进去,将指定的客户添加到数组中,若添加成功,则返回值为
    true,否则返回值为false。
 */


    public boolean addCustomer(Customer customer){
        if(total>=customers.length)
        {
            System.out.println("成员已满,添加失败");
            return false;
        }
        /*
        此处的customer是一个参数,如果经过一定判断之后,还能够继续进行客户的增加,
        那么在这个类中最开始定义的Customer类的数组的元素就会被赋值
         */
        customers[total++]=customer;//total是存储在类中的,在使用之前没有进行定义,所以初始值是0
        return true;
    }
    /*
    输入想要取代的客户的序号,将该客户的所有信息替换成新录入的客户的信息
    true:修改成功  false:修改失败
     */

    public boolean replaceCustomer(int index,Customer customer){
        if(index<0||index>=total){
            System.out.println("想要修改的客户的信息不存在,请重新输入");
            return false;
        }
        customers[index]=customer;
        return true;
    }

    /*
    输入想要删除的信息,通过参数的索引,将指定位置的客户进行删除
    若删除成功true  false:删除失败
     */
    public boolean delete(int index){
        if(index<0||index>=total)
        {
            System.out.println("想要删除的客户的信息不存在,请重新输入");
            return false;
        }
        for(int i=index;i<total-1;i++){//total表示此时拥有的客户的数量,因为要删除其中的一个客户
//            因此需要total-1表示删除该客户之后的客户的数量
            customers[i]=customers[i+1];
        }
        //最后有数据的位置需要变为空指针
        customers[total-1]=null;
        total--;//客户的数量减少
        return true;
    }
    public Customer[] getAllCustomers(){
        Customer cust[]=new Customer[total];
        for(int i=0;i<total;i++){
            cust[i]=customers[i];
        }
        return cust;
    }
    /*
    获取指定位置上的客户
    如果找到了该元素,就返回
    否则,返回null
     */
    public Customer getCustomer(int index){
        if(index<0||index>=total)
        {
            return null;
        }
        return customers[index];
    }

    /*
    获取存储的客户的数量
     */

    public Customer[] getCustomers() {
        return customers;
    }

    public void setCustomers(Customer[] customers) {
        this.customers = customers;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }
}

主界面类Customerview

/*
用来进行人机交互,显示菜单,执行某一种功能等
在这个类中构造主函数,进行
 */
import com.sun.deploy.security.SelectableSecurityManager;
import com.sun.javafx.tk.ScreenConfigurationAccessor;

import java.sql.SQLOutput;
import  java.util.Scanner;
public class Customerview {


    /*
    首先new了一个customerlist,totalcustomer代表的是在Customerlist类中开辟的数组的大小,
    在此处new对象的时候,树边将数组的大小进行了选择,此处输入了10,代表数组的最大能存储的客户的数量是10个
     */



    private Customerlist customerlist=new Customerlist(10);//构造方法,同时也称之为构造器

    //
    //进入菜单函数(菜单页面)
    public void enterMainMenu(){
        boolean isFlag=true;
        while (isFlag) {
            System.out.println("*************************************" + "\n");
            System.out.println("*          客户信息管理软件           *" + "\n");
            System.out.println("*1.添加客户                2. 删除客户*" + "\n");
            System.out.println("*3.修改客户                4. 客户列表*" + "\n");
            System.out.println("*                                    *" + "\n");
            System.out.println("**************************************" + "\n");
            System.out.println("           <输入0 退出系统>                \n");
            System.out.println("请输出想要选择的功能");
            Scanner in = new Scanner(System.in);
            int n = in.nextInt();
            switch (n) {
                case 1:
                    addCustomer();
                    break;
                case 2:
                    modiCustomer();
                    break;
                case 3:
                    deleteCustomer();
                    break;
                case 4:
                    listCustomer();
                    break;
                case 0:
                    System.out.println("请确认是否要退出?是请输入Y,否则输入N");
                    String s = in.next();
                    if (s.charAt(0) == 'Y') {
                        System.out.println("感谢你的使用!");
                        isFlag = false;
                    } else if (s.charAt(0) == 'N') {
                        enterMainMenu();
                        break;
                    }
            }
        }
    }
    //增加新的客户
    private void addCustomer(){
        /*
        定义了几个局部变量,用来接收使用者通过键盘的输入,将这些值作为
        使用构造器构造对象的时候传递的参数
         */


        Scanner in=new Scanner(System.in);
        System.out.println("--------------增加客户信息-------------");
        System.out.printf("姓名:");
        String name=in.next();
        System.out.printf("性别: ");
        String sex=in.next();
        System.out.printf("年龄: ");
        int age=in.nextInt();
        System.out.printf("电话: ");
        int phone =in.nextInt();
        System.out.printf("邮箱:");
        String email=in.next();
//        将上述定义的变量中存储的数据封装到对象中
        Customer customer=new Customer(name,age,phone,sex,email);//每执行一次这个函数,都会录入用户所输入的
        //同时将新new的customer作为函数的参数进行传递
        boolean isadd=customerlist.addCustomer(customer);
        if(isadd)
            System.out.println("-----------添加成功-------------");
        else
            System.out.println("-------客户已满,添加失败--------");
    }
    //修改客户的信息
    private void modiCustomer(){
        Scanner in=new Scanner(System.in);
        System.out.printf("请输入想要更改的客户的编号: ");
        int n=in.nextInt();
        n--;
        System.out.println("请输入新的客户的信息: ");
        System.out.printf("姓名:");
          String name=in.next();
        System.out.printf("性别: ");
        String sex=in.next();
        System.out.printf("年龄: ");
        int age=in.nextInt();
        System.out.printf("电话: ");
        int phone =in.nextInt();
        System.out.printf("邮箱:");
        String email=in.next();
        Customer customer=new Customer(name,age,phone,sex,email);
        customerlist.replaceCustomer(n,customer);
        System.out.println("修改成功!");
    }
    //删除客户
    private void deleteCustomer(){
        Scanner in=new Scanner(System.in);
        System.out.println("请输入想要删除的顾客的编号: ");
        int n=in.nextInt();
        n--;
        customerlist.delete(n);
        System.out.println("删除成功!");
    }
    //显示所有的客户
    private void listCustomer(){
        System.out.println("-------------------------客户列表---------------------");
        int total =customerlist.getTotal();
        if(total==0)
            System.out.println("没有客户记录");
        else{
            System.out.println("编号\t姓名\t性别\t年龄\t电话\t邮箱");
            Customer custs[]=customerlist.getAllCustomers();
            for(int i=0;i<custs.length;i++){
                Customer cust=custs[i];
                System.out.println((i+1)+"  \t"+cust.getName()+"  \t"+
                        cust.getGender()+"  \t"+cust.getAge()+" \t"+cust.getPhone()+"  \t"+
                        cust.getPhone()+"  \t"+cust.getEmail());
            }
        }
        System.out.println("-----------------------------------------------------");
    }


    public static void main(String[] args) {
        Customerview main=new Customerview();
        main.enterMainMenu();
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值