需求说明:
- 实现对兵营类的封装
- 将兵营类中的所有属性设置为私有访问权限。
- 将兵营类中所有属性的赋值方法设置为公有访问权限。
- 要求兵营名称的长度在4~8位之间。
- 要求兵营士兵的人数在100~500之间。
实现思路:
封装兵营类的实现思路如下:
将 Barracks 类中所有的属性均定义为私有访问权限。
将已经创建的士兵总数count属性定义为静态变量,在Barracks类中定义大小为3的兵营对象数组变量bksarray。
在 setName()方法中,对用户输入的兵营名称的长度进行校验。如果输入的名称合法,将继续进行下一步的操作;否则系统给出友好提示信息,要求用户重新输入。
在setSelfCount()方法中,完成对用户输入的当前兵营已创建士兵的数量进行合理的校验。如果输入的信息不符合系统要求,则系统给出友好提示信息,要求用户重新输入。
实现代码:
Barracks 类
import java.util.Scanner; public class Barracks { private String name;//兵营名字 private int selfCount;//士兵数量 public void setName(String name) { if (name.length()<8&&name.length()>4) { this.name = name; } else { System.out.println("兵营名称的长度在4~8位之间"); } } public void setSelfCount(int selfCount) { if (selfCount>100&&selfCount<500) { this.selfCount = selfCount; }else { System.out.println("兵营士兵的人数在100~500之间"); } } public String getName() { return this.name; } public int getSelfCount() { return selfCount; } }
Test 类
import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Barracks0 b = new Barracks0(); System.out.println("请输入兵营名称:"); b.setName(sc.next()); System.out.println("请输入兵营人数:"); b.setSelfCount(sc.nextInt()); System.out.println("兵营名称:"+b.getName()); System.out.println("兵营人数:"+b.getSelfCount()); } }