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());
        }
    }
    
    
  • 相关阅读:
    C++编程之约定俗成的习惯(1)
    “亚信科技杯”南邮第七届大学生程序设计竞赛之网络预赛 (K L题解) CSS出题
    “亚信科技杯”南邮第七届大学生程序设计竞赛之网络预赛 (K L题解) CSS出题
    “亚信科技杯”南邮第七届大学生程序设计竞赛之网络预赛 (K L题解) CSS出题
    “亚信科技杯”南邮第七届大学生程序设计竞赛之网络预赛 (K L题解) CSS出题
    万万没想到(2) 南邮NOJ2058
    万万没想到(2) 南邮NOJ2058
    万万没想到(2) 南邮NOJ2058
    万万没想到(2) 南邮NOJ2058
    万万没想到(1) 南邮NOJ
  • 原文地址:https://www.cnblogs.com/hq82/p/12252524.html
Copyright © 2011-2022 走看看