一、猜数字
1. Number
package GuessTheNumber;
import java.util.Scanner;
/**
* @ Author HuQi
* @ Date 2020/2/2 14:52
* @ Version 1.0
* ---------------------------
*/
public class Number {
private int num;
public Number(int num) {
this.num = num;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
private boolean guess(int num) {
if (num > this.num) {
System.out.println("太大");
return false;
} else if (num < this.num) {
System.out.println("太小");
return false;
} else {
System.out.println("猜对了");
return true;
}
}
public void start(Number number) {
//创建扫描器对象
Scanner sc = new Scanner(System.in);
//重复猜数字
while (true) {
System.out.println("请输入数字:");
int num = sc.nextInt();
boolean result = number.guess(num);
if (result == true) {
break;
} else {
continue;
}
}
}
}
2. RandomNum
package GuessTheNumber;
/**
* @ Author HuQi
* @ Date 2020/2/2 14:50
* @ Version 1.0
* ---------------------------
* 要求:定义一个类,有一个数字属性 int num,在构造器中对数字初始化
* 要求产生1-100之间随机数
*
*/
public class RandomNum {
public static void main(String[] args) {
Number number = new Number((int) (Math.random() * 100 + 1));
//启动游戏
number.start(number);
}
}
二、程序运行时间
1. RunTime
package TestAbstract;
/**
* @ Author HuQi
* @ Date 2020/2/2 15:15
* @ Version 1.0
* ---------------------------
* 记录程序运行时间:使用System.currentTimeMillis
* 设计一个类,实现可以记录任何代码运行的时间
* 提示:抽象方法和抽象类
* 抽象方法特点:必须被子类重写如果子类重写了父类方法,将来调用会调用子类的方法
*
*/
public class RunTime extends Timer {
public static void main(String[] args) {
RunTime runTime = new RunTime();
runTime.start();
}
@Override
public void proceed() {
for (int i = 0; i < 10000 ; i++) {
System.out.println(i);
}
}
}
2. Timer
package TestAbstract;
/**
* @ Author HuQi
* @ Date 2020/2/2 15:20
* @ Version 1.0
* ---------------------------
* 要求:一定要被子类继承才能使用,用于记录某段程序的运行时间
*/
public abstract class Timer {
//被子类重写,用于定义要执行的代码
public abstract void proceed();
//将此方法修饰为final,子类不可重写,但可调用
public final void start(){
//记录起始时间
long startTime = System.currentTimeMillis();
//执行代码
proceed();
//记录结束时间
long endTime = System.currentTimeMillis();
System.out.println("程序耗时:" + (endTime - startTime) + "ms");
}
}
三、不同形状面积周长
1. Shape
package InterfaceTest;
/**
* @ Author HuQi
* @ Date 2020/2/2 15:33
* @ Version 1.0
* ---------------------------
*/
public interface Shape {
//计算面积
double area();
//计算周长
double length();
}
2. Rectangle
package InterfaceTest;
/**
* @ Author HuQi
* @ Date 2020/2/2 15:38
* @ Version 1.0
* ---------------------------
* 矩形
*/
public class Rectangle implements Shape {
//长
private double length;
//宽
private double width;
public Rectangle() {
}
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
public double area() {
return length * width;
}
@Override
public double length() {
return (length + width) * 2;
}
}
3. Triangle
package InterfaceTest;
/**
* @ Author HuQi
* @ Date 2020/2/2 15:42
* @ Version 1.0
* ---------------------------
* 三角形
*/
public class Triangle implements Shape {
private double sideOne;
private double sideTwo;
private double sideThree;
public Triangle() {
}
public Triangle(double sideOne, double sideTwo, double sideThree) {
this.sideOne = sideOne;
this.sideTwo = sideTwo;
this.sideThree = sideThree;
}
@Override
public double area() {
double p = length() / 2;
return Math.sqrt(p * (p - sideOne) * (p - sideTwo) * (p - sideThree));
}
@Override
public double length() {
return sideOne + sideTwo + sideThree;
}
}
4. Circle
package InterfaceTest;
/**
* @ Author HuQi
* @ Date 2020/2/2 15:48
* @ Version 1.0
* ---------------------------
*/
public class Circle implements Shape {
private double radius;
public Circle() {
}
public Circle(double radius) {
this.radius = radius;
}
@Override
public double area() {
return Math.PI * radius * radius;
}
@Override
public double length() {
return 2 * Math.PI * radius;
}
}
5. Test
package InterfaceTest;
/**
* @ Author HuQi
* @ Date 2020/2/2 15:29
* @ Version 1.0
* ---------------------------
* 要求:可以计算多种图形的面积和周长
* 圆形、三角形、矩形
* 1.形成一个形状接口,提供两个抽象方法,(面积、周长)
* 2.定义三个实现形状接口
*/
public class Test {
public static void main(String[] args) {
//矩形
Rectangle rect = new Rectangle(12, 18);
System.out.println("矩形面积:" + rect.area());
System.out.println("矩形周长:" + rect.length());
//三角形
Triangle tri = new Triangle(10,20,30);
System.out.println("三角形面积:" + tri.area());
System.out.println("三角形周长:" + tri.length());
//圆形
Circle cir = new Circle(19);
System.out.println("圆形面积:" + cir.area());
System.out.println("圆形周长:" + cir.length());
}
}