**第一题:**
输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数。
提示:
对比char字符在ASK码的范围,就可以确定它符号的类别
char字符ASK码的范围
* 数字0到9: 48~57
* 字母A到Z:65到90 a到z:97到122
* 空格是32
如:
```
char a = 'a';
97<= a <=122
```
~~~
public class Demo {
public static void main(String[] args) {
getCharNum("");
}
public static void getCharNum(String str) {
//数字字符总数
int num = 0;
//字母字符总数
int eng = 0;
//空格总数
int space = 0;
//其他字符总数
int other = 0;
if(str != null) {
//首先将string类型的字符串,变为一个个的char数组
char[] charArray = str.toCharArray();
for(int i = 0; i < charArray.length; i++) {
char c = charArray[i];
//对遍历出来的char值做判断
if (c >= 48 && c <= 57) {//字符是数字
num++;
} else if ((c >= 65 && c <= 90) || (c >= 97 && c <= 122)) {//字符是字母
eng++;
} else if (c == 32) {//字符是空格
space++;
} else {
other++;//其他
}
}
System.out.println("数字有:" + num + "个," + "字母有:" + eng + "个," + "空格有:" + space + "个," + "其他字符有:" + other + "个");
} else {
System.out.println("输入字符不合法");
}
}
}
~~~
**第二题**
要求写一个秒表类(StopWatch),该秒表类该类在系统中只能有存在一个实例。并且存在star方法,可以用于开始计时,并且输出开始时间,同时存在stop方法用于停止计时,输出结束时间,要求秒表可以存储以毫秒为单位十个计时任务
~~~
public class StopWatch {
private static StopWatch stopWatch = new StopWatch();
private StopWatch() {
}
public static StopWatch getInstance() {
return stopWatch;
}
private long startTime;
private List<Long> record = new ArrayList<Long>();
public List<Long> getRecord() {
return record;
}
public void start() {
Date date = new Date();
this.startTime = date.getTime();
}
public void end() {
if(startTime == 0) {
System.out.println("未曾开始");
} else {
Date date = new Date();
long endTime = date.getTime();
long time = endTime - startTime;
if(record.size() >= 10) {
record.remove(0);
record.add(time);
} else {
record.add(time);
}
this.startTime = 0;
}
}
}
public class Demo {
public static void main(String[] args) throws InterruptedException {
StopWatch stopWatch = StopWatch.getInstance();
//第一次计时
stopWatch.start();
System.out.println(stopWatch.getRecord());
//让程序休息30毫秒
Thread.sleep(30);
stopWatch.end();
System.out.println(stopWatch.getRecord());
//第二次计时
stopWatch.start();
//让程序休息10毫秒
Thread.sleep(10);
stopWatch.end();
System.out.println(stopWatch.getRecord());
stopWatch.start();
Thread.sleep(3);
stopWatch.end();
System.out.println(stopWatch.getRecord());
stopWatch.start();
Thread.sleep(4);
stopWatch.end();
System.out.println(stopWatch.getRecord());
stopWatch.start();
Thread.sleep(5);
stopWatch.end();
System.out.println(stopWatch.getRecord());
stopWatch.start();
Thread.sleep(6);
stopWatch.end();
System.out.println(stopWatch.getRecord());
stopWatch.start();
Thread.sleep(7);
stopWatch.end();
System.out.println(stopWatch.getRecord());
stopWatch.start();
Thread.sleep(8);
stopWatch.end();
System.out.println(stopWatch.getRecord());
stopWatch.start();
Thread.sleep(9);
stopWatch.end();
System.out.println(stopWatch.getRecord());
stopWatch.start();
Thread.sleep(10);
stopWatch.end();
System.out.println(stopWatch.getRecord());
stopWatch.start();
Thread.sleep(11);
stopWatch.end();
System.out.println(stopWatch.getRecord());
stopWatch.start();
Thread.sleep(12);
stopWatch.end();
System.out.println(stopWatch.getRecord());
}
}
~~~
# 综合案例(面向对象)
## 场景案例:
学校新开一门专业,叫做计算机科学与应用,专业编号J0001,学制年限为4年。
现有三名学生如下表所示,加入该专业学习,要求采用Java面向对象的思维描述该场景:
| 姓名 | 学号 | 性别 | 年龄 |
| --- | --- | --- | --- |
| 张三 | S01 | 男 | 18岁 |
| 李四 | S02 | 女 | 17岁 |
| 王五 | S03 | 男 | 18岁 |
## 实现效果

## 案例分析
1. 本场景中共存在几个对象?各自的特征是什么?
2. 我们又可以针对这几个对象抽象归纳出几个类出来
## 代码实现
- Java业余班教学管理
- JAVA基础
- JAVA开发学习准备
- JAVA介绍
- 开发JAVA的准备
- JAVA的运行原理
- JDK配置
- 我的第一个JAVA程序
- 类与对象
- 基础语言要素
- 数据类型
- Eclipse的安装与使用
- 变量
- 直接量
- 运算符
- 流程控制
- 数组结构
- 面向对象
- 隐藏与封装
- 深入构造器
- 类的继承
- 多态
- 包装类
- final修饰符
- 抽象类
- 接口
- 设计模式
- 单例模式
- 工厂模式
- 集合框架
- 集合排序
- 常用类学习
- 异常处理
- Java基础综合练习
- JAVA高级
- 泛型
- 多线程
- 线程的创建
- 线程的生命周期
- 线程同步
- 线程通信
- 输入输出流(I/O编程)
- File文件操作
- 字节流与字符流
- 数据库
- 数据库介绍
- 数据库安装
- SQL
- 表的基本操作
- 修改数据语句
- 数据检索操作
- 多表数据操作
- 表结构设计
- 综合应用
- JavaWeb
