java面向对象解决实际问题【母牛生产问题】

本文通过Java面向对象编程解决一个实际问题——母牛生产问题。已知初始一只0岁母牛,4岁开始生产,12岁停止,产下母牛概率50%,每年生一只,15岁屠宰。25年后,预期牛的数量约为230只。通过程序模拟分析牛的成长、生育和屠宰过程,展示面向对象思想在解决问题中的应用。
摘要由CSDN通过智能技术生成
问题: 已知一只母牛4岁开始生产(人工受孕),12岁停止生产,产下的母牛概率为50%,每只母牛每年只生一只牛, 生下来的牛视为0岁。15岁送入屠宰场,现有一只母牛(0岁),请问25年后有多少只牛?
  1. 使用程序进行模拟此场景,计算25年后牛数量的期望值(平均值)
  2. 使用面向对象的思想去处理问题,会变得更加清晰明了
  3. 问题分析:
  • 核心对象: 牛
  • 核心属性: 性别(影响是否可生育),年龄(影响是否可生育,是否能继续存活)
  • 核心行为: 成长(随时间流逝牛会长大,影响其年龄),生育(产出新牛)
  1. 根据上述分析编写牛类
public class Niu {
   
    /**
     * 性别 1==>母牛  0==>公牛
     */
    private int sex;
    /**
     * 年龄 生下来0岁,4岁开始生牛,12岁停止生产,15岁送屠宰场
     */
    private int age;

    Niu(int sex) {
   
        this.sex = sex;
        // 一只新生牛的初始化岁数
        this.age = 0;
    }

    public void grow() {
   
        this.age = this.age + 1;
    }

    public void produce(List<Niu> list) {
   
        if (sex != 1 || age < 4 || age > 11) {
   
            // 公牛不会生产 年龄限制不能生产
            return;
        }
        // 母牛开始生产了 生产的性别随机使用ThreadLocalRandom随机生成 0公牛  1母牛
        Niu newNiu = new Niu(ThreadLocalRandom.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值