zoukankan      html  css  js  c++  java
  • 28. java 面向对象

    一、猜数字

    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());
        }
    }
    
    
  • 相关阅读:
    Head first javascript(七)
    Python Fundamental for Django
    Head first javascript(六)
    Head first javascript(五)
    Head first javascript(四)
    Head first javascript(三)
    Head first javascript(二)
    Head first javascript(一)
    Sicily 1090. Highways 解题报告
    Python GUI programming(tkinter)
  • 原文地址:https://www.cnblogs.com/hq82/p/12252524.html
Copyright © 2011-2022 走看看