java辅助类Find解决常规方法调用时一对多的return返还值。解决数组、集合遍历,判断/查找等冗余代码

本文介绍了如何使用Java辅助类Find优化数组和集合的遍历、判断与查找等操作,减少冗余代码。通过API帮助文档的生成,展示了辅助类在DVD迷你租赁管理中的五个优势,包括基础数据操作的便捷性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、API帮助文档的基本生成方式:

API:java应程序编程接口;也可以称API说明文档,由javaDoc命令生成。

1、在这里我以MyEclipse开发工具为例子。打开MyEclipse并新建一个项目。在项目下新建一个包,包名自己随便取即可。

2、在包里面需要新建一个.java类,这里以说明文字下面的DVD代码注释为示例。

@author 标明开发该类模块的作者

@param 标明参数

@version 标明该类模块的版本

@see 参考转向,也就是相关主题

@throws 表示抛出异常描述

@param 对方法中某参数的说明

@return 对方法返回值的说明

@exception 对方法可能抛出的异常进行说明

@deprecated 表示废弃。这里不建议使用

“@author”和“@verson”两个,大家有兴趣的可以去探究下其他的几个方法。

3、右键项目,选择Export选择java文件夹,点击java文件夹下面的Javadoc,然后点击“Next”

选择你要生成的java项目。并更改你想保存的API文件地址,点击“Finish”。

4、设置注释的修饰符生成范围,默认public型,如果需要详细程序详细注释可以改为private,点击“Finish”之后会有提示,只需要点击“Yes To All”即可。

5、打开你保存的文件夹,你会发现有很多生成的文件,那么应该点击那个一呢?聪明的你一定能猜到“index.html”双击打开它。

 

下面将列举辅助类Find,的属性解决基础DVD迷你租赁管理的5个基本数据操作优势。


下面依次为工具辅助类,工具类,实体类,。 测试类

//util  辅助类

package com.DVD.util;

import com.DVD.bean.Dvd;

/**
 * fu注查找下标,与元素是否存在
 * @author ASUS
 *
 */
    /*
     * 用法之一遍历数组、集合时获得查询的目标位置,空位,目标对象,查询结果,
     * 只要和对象相关的都能查。
      */
	public class Find {
	        //DVD对象   重点时dv属于查找对象,一旦查到实体类所属需求关系将立马起取代作用。
	         public Dvd dv=null;
	        //查询结果
	         public  boolean flag=false;
	         public  boolean aDD=false;
	        //下标标记
	         public  int index=-1;
		
		
	}

//属性管理类


package com.DVD.util;


import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Scanner;

import com.DVD.bean.Dvd;

/**
 * DVD属性的初始化与相关取值赋值操作
 * @author ASUS
 *
 */
	public class DvdDataCenter {
	//创建Dvd对象
	static Dvd  dv1=new Dvd("罗马假日",15,1,1,2);
	static Dvd  dv2=new Dvd("风声鹤唳",12,0,0,1);
	static Dvd  dv3=new Dvd("浪漫满屋",30,0,0,1);
	//创建存储集合
	public static ArrayList list=new ArrayList();
			
	//初始化
	static{
		list.add(dv1);
		list.add(dv2);
		list.add(dv3);
			
	}
	
				
	/**
	 * 
	 * @param name:电影名
	 * @return 返回查找结果,查找集合为空的位置,
	 */
	public Find find(String name){
		Find fd=new Find();
		//遍历
		for (int i = 0; i < list.size(); i++) {
		//这里如果时数组还可以知道为空元素的下标位置。
		if(list.isEmpty()==true) {
		//查第一个为空元素的位置
		//fd.index=i;
		break;
	}

		Dvd dv=(Dvd)list.get(i);
		//查状态
		if(dv.getDvdName().equals(name)&&dv.getStates().equals("可借")){
			fd.aDD=true;
		}else{
			fd.aDD=false;
		}
		//找到了
		if(dv.getDvdName().equals(name)){
		     	 //重名
			fd.flag=true;
			//获得重名对象
			fd.dv=dv;
			//找到重名下标
			fd.index=i;
			return fd;
			//未找到
		}else{
			//未重名
			fd.flag=false;
		}
					
	               }
			return fd;    //?
	   }
			
       }


//流程工具类
package com.DVD.util;

import java.util.InputMismatchException;
import java.util.Scanner;

import com.DVD.bean.Dvd;
import com.assist.DvdMenu;


/**
 * Dvd租赁管理类
 * @author ASUS
 *
 */
		public class DvdManager {
			
			//创建Dvd数据中心管理类
			DvdDataCenter  ddc=new DvdDataCenter();
			//创建界面对象
			public DvdMenu menu=new DvdMenu();
			//Dvd操作变量
			 public Dvd dv=null;
			
			 /*
				 * 获取String输入的方法
				 */
				public String getString(String need){
					Scanner input=new Scanner(System.in);
					System.out.print(need);
					String number=input.next();
					return number;
					
				}
				
				/*
				 * 创建获取int输入方法
				 */
				
				private  int getInt(String need){
					Scanner input=new Scanner(System.in);
					System.out.print(need);
					int number=input.nextInt();
					return number;
				}
				
				/*
				 * 获取功能编号
				 */
				public int getNumber()throws InputMismatchException,Exception{
					int number=getInt("请输入您要操作的功能编号:");
					return number;
				}
			public void execure(int number)throws InputMismatchException,NullPointerException,Exception{
				switch(number){
				case 1:
					System.out.println("       >>>新增DVD<<<");
					//新增时只需要添加编号和名字到集合中
					addDVD();
					break;
				case 2:
					System.out.println("\n     >>>查看DVD<<<\n");
					//遍历MAP集合的键值信息
					lookForDvd();
					break;
				case 3:
					System.out.println("\n     >>>删除DVD<<<\n");
					//根据Dvd名用map接口的remove()删除
					deleteDVD();
					break;
				case 4:
					System.out.println("\n     >>>借出DVD<<<\n");
					//借出DVD需要在未借状态,借完后需要更改DVD状态。
					borrowDvd();
					break;
				case 5:
					System.out.println("\n     >>>归还DVD<<<\n");
					//归还时根据DVD名更改DVD可借状态,与录入的天数计算费用并找零
					returnDvd();
					break;
				case 6:
					System.out.println("\n感谢使用迷你DVD管理器,再见!!!");
					System.exit(1);
				default:
					judge(number);
				}
			}
			/**
			 * 归还Dvd
			 * @throws InputMismatchException,Exception 
			 */
			
			private void returnDvd() throws InputMismatchException,Exception {
				String name=getString("请录入您要归还的DVD片名:");
				Find fd=ddc.find(name);
				//要先有这本书并且状态为已借
				if(fd.flag&&fd.dv.getStates().equals("已借")){
					//先调用find方法找到dv对象。
					int day=getInt("\n请录入借出天数,不满以添按一天算,计费按天/元计算: ");
					double sum=day*1.0;
					double sumPrice=getInt("DVD片名:"+name+";"+day+"天的租赁总费用请支付:"+sum+"元:");
					if((sumPrice-sum)>=0){
						System.out.println("找零:"+(sumPrice-sum)+"元,归还成功~~");
					}else{
						System.out.println("对不起!您的支付金额不足,归还失败~~");
					}
				}else{
					System.out.println("您输入的DVD名不存在,归还失败!");
				}
			}

			/**
			 * 租赁DVD
			 * @throws InputMismatchException,Exception 
			 */
			private void borrowDvd() throws InputMismatchException,Exception {
				String name=getString("请输入您要借取的DVD片名:");
				Find fd=ddc.find(name);
				//必须先有这本书并且状态为可借
				if(fd.flag){
					if(fd.aDD){
					fd.dv.setStatus(2);
					System.out.println("恭喜您,借取成功!");
					}else{
						System.out.println("抱歉您需要的DVD:"+name+"已借出~");
					}
				}else{
					throw new Exception("抱歉!您需要的DVD:"+name+"我们这暂时没有~~");
				}
			}

			/**
			 * 新增DVD
			 */

			private void addDVD() {
				String name=getString("\n请输入您新增的DVD片名:");
				//调用辅助方法Find查看如果输入的片名找到了flag==ture有重名,如果没找到false没有重名;
				Find find=ddc.find(name);
				if(find.flag){
					System.out.println("添加失败,DVD:"+name+"已经存在!");
				}else{
					//新增默认   借出 0次,租赁日期0天,当前盈利价格0元,状态可借。
					ddc.list.add(new Dvd(name,0,0,0,1));
					System.out.println("您添加的DVD:"+name+"是新DVD,添加成功~~");
				}
				
			}

			/**
			 * 查询Dvd:三种方法之一Iterator
			 */
			private void lookForDvd() {
				System.out.println("DVD片名\t借用次数\t借用天数\t当前费用\tDVD状态\n");
				//遍历map集合
				for(Object obj:ddc.list){
					Dvd name=(Dvd)obj;
					System.out.println(name.getDvdName()+"\t"+name.getBorrowCounts()+"\t"+name.getDay1()+
										"\t"+name.getPrice()+"\t"+name.getStates());
				}
			}

			
			
			/**
			 * 删除DVD
			 * @throws InputMismatchException,Exception 
			 */
			
		 	public void deleteDVD() throws InputMismatchException,Exception {
				String name=getString("请输入您要删除的DVD片名:");
				Find find=ddc.find(name);
				if(find.flag){
					ddc.list.remove(find.index);
					//判断删除成功没有
					if(ddc.list.contains(find.dv)){
						System.out.println("DVD:"+name+"删除失败");
					}else{
						System.out.println("DVD:"+name+"删除成功");
					}
				}else{
					System.out.println("您录入的DVD名不存在,删除失败~~");
				}
			}
			
			
		 	/**
			 * 新增DVD
			 */
			
			
//			private void addDVD() {
//				String name=getString("请输入您要新增的DVD名:");
//				//记录长度
//				int length=ddc.map.size();
//					//新增默认   借出 0次,租赁日期0天,当前盈利价格0元,状态可借。
//					dv=new Dvd(0,0,0,1);
//					ddc.map.put(name,dv);
//					//如果存放成功则存放后的长度必定大于存放前长度,如果存放失败
//				if(ddc.map.size()>length){
//					System.out.println("DVD:"+"《"+name+"》"+"新增成功!\n");
//						//如果添加新DVD后长度与原长度不变则表示录入失败
//				}else if(ddc.map.size()<=length){
//					System.out.println("录入失败,DVD:"+"《"+name+"》"+"重复!!");
//				}
//			}

			/**
			 * 录入判断
			 * @throws InputMismatchException, Exception 录入错误
			 */
			private void judge(int number) throws InputMismatchException, Exception {
				if(number<1||number>6){
					System.out.println("您录入的编号范围有误请重新输入1~6整数\n");
				}else{
					throw new Exception("您录入格式不正确,请重新录入\n");
				}
			}
			/**
			 * 查找结果
			 * 
			 */
			
		}
		



//控制台界面类

package com.assist;
/**
 * Dvd租赁系统
 * @author ASUS
 *
 */
 	public class DvdMenu {
	 
	
	public void show(){
		System.out.println("\n   >>>欢迎使用迷你DVD管理器");
		System.out.println("------------------------");
		System.out.println("\t编号1.新增DVD\n");
		System.out.println("\t编号2.查看DVD\n");
		System.out.println("\t编号3.删除DVD\n");
		System.out.println("\t编号4.借出DVD\n");
		System.out.println("\t编号5.归还DVD\n");
		System.out.println("\t编号6.退出租赁管理器\n");
		System.out.println("------------------------");
	}
		
        }







//DVD实体类
	

package com.DVD.bean;


public class Dvd {
	//DVD编号
	private int number;
	//DVD名
	private String dvdName;
	//借用次数
	private int borrowCount;
	//借用天数
	private int day;
	//借用价格
	private double sumPrice;
	//DVD所属状态
	private int status;
	
	//状态属性值的属性值描述
	public String getStates(){
		if(status==1) return "可借";
		if(status==2) return "已借";
		
		return "?";
	}
	
	public String getBorrowCounts(){
		
		return this.borrowCount+"次";
	}
	public String getPrice(){
		return this.sumPrice+"元";
	}
	
	public Dvd() {
	}

	
	public String getDay1(){
		return this.day+"天";
	}







	public Dvd(String dvdName,  int borrowCount, int day, double sumPrice, int      status) {
		
		this.dvdName=dvdName;
		this.borrowCount = borrowCount;
		this.day = day;
		this.sumPrice = sumPrice;
		this.status = status;
	}




	public int getNumber() {
		return number;
	}




	public void setNumber(int number) {
		this.number = number;
	}




	public String getDvdName() {
		return dvdName;
	}

	public void setDvdName(String dvdName) {
		this.dvdName = dvdName;
	}

	public int getBorrowCount() {
		return borrowCount;
	}

	public void setBorrowCount(int borrowCount) {
		this.borrowCount = borrowCount;
	}

	public int getDay() {
		return day;
	}

	public void setDay(int day) {
		this.day = day;
	}

	public double getSumPrice() {
		return sumPrice;
	}

	public void setSumPrice(double sumPrice) {
		this.sumPrice = sumPrice;
	}

	public int getStatus() {
		return status;
	}

	public void setStatus(int status) {
		this.status = status;
	}
	
	
	
		
	}



//测试类
package com.test;

import java.util.InputMismatchException;

import com.DVD.util.DvdManager;

/**
 * 测试dvd管理器管理功能
 * @author ASUS
 *
 */
public class TestDvd {

	public static void main(String[] args) {
		//Dvd管理类对象
		DvdManager dm=new DvdManager();
		while(true){
			//异常捕获
			try{
				//进入租赁管理界面
				dm.menu.show();
				//获取功能编号
				int number=dm.getNumber();
				//执行功能编号
				dm.execure(number);
			}catch(InputMismatchException e){
				System.err.println("您录入格式有误~~");
				
			}catch(NullPointerException e){
				System.err.println("操作异常~~");
			}catch(Exception e){
				System.out.println(e.getMessage());
			}finally{
				System.out.println("");
			}
		}
	}

}


//

 

 

 

 

 

    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值