Java面向对象案例之描述专业和学生(4)

news2024/12/29 9:34:21

类的方法图

  • 学生类:
    • 属性:学号,姓名,年龄,所学习的专业
    • 方法:学习的方法,描述学习状态。描述内容包括姓名、学号、年龄、所学习的专业信息
  • 专业类:
    • 属性:专业编号,专业名称 、学习该专业的人数
    • 方法:介绍情况的方法,描述专业信息。描述内容包括专业名称以及学习该专业的人数
  • 测试类:
    • 创建测试数据

在这里插入图片描述

代码示例

public class TestCase {
    public static void main(String[] args) {
        /**
         * 1、学校开设某专业课程
         */
        //构造专业对象
        Subject one = new Subject();
        one.setSubjectId("001");
        one.setSubjectName("计算机科学与应用");

        /**
         * 2、学生进入专业学习
         */
        //构造学生对象
        Student liuXin = new Student();
        liuXin.setStuName("张三");
        liuXin.setStuAge(16);
        liuXin.setMySubject(one);
        liuXin.setStuId("C100101");
        //调用学习方法
        liuXin.study();
        System.out.println("===================================");

        //构造学生对象
        Student tianMeng = new Student();
        tianMeng.setStuId("C100102");
        tianMeng.setStuName("李四");
        tianMeng.setStuAge(21);
        tianMeng.setMySubject(one);
        //调用学习方法
        tianMeng.study();
        System.out.println("===================================");

        /**
         * 3、统计本专业的人数
         */
        //调用专业的介绍方法*/
        one.info();
    }
}


/**
 * 专业类:
 * 属性:专业编号,专业名称 、学习该专业的人数
 * 方法:介绍情况的方法,描述专业信息。描述内容包括专业名称以及学习该专业的人数
 */
class Subject {
    private String subjectId;// 专业编号
    private String subjectName;//班级名称
    private int number;//班级人数

    //介绍情况的方法,描述专业信息。描述内容包括专业名称以及学习该专业的人数
    public void info() {
        System.out.println(this.subjectName + "专业目前有" + this.number + "名学生");
    }

    public String getSubjectId() { return subjectId; }
    public void setSubjectId(String subjectId) { this.subjectId = subjectId; }
    public String getSubjectName() { return subjectName; }
    public void setSubjectName(String subjectName) { this.subjectName = subjectName; }
    public int getNumber() { return number; }
    public void setNumber(int number) { this.number = number; }
}

/**
 * 学生类:
 * 属性:学号,姓名,年龄,所学习的专业
 * 方法:学习的方法,描述学习状态。描述内容包括姓名、学号、年龄、所学习的专业信息
 */
class Student {
    private String stuId;// 学号
    private String stuName;// 姓名
    private int stuAge;// 年龄
    private Subject mySubject;// 所学习的专业

    // 学习的方法,描述学习状态。描述内容包括姓名、学号、年龄、所学习的专业信息
    public void study() {
        String msg = "我叫" + this.stuName + ",今年" + this.stuAge + "岁\n现在就读于" + this.mySubject.getSubjectName() + "专业,我的学号是" + this.stuId;
        System.out.println(msg);
    }

    //学生年龄大于18岁
    public void setStuAge(int stuAge) {
        if (stuAge < 18) {
            System.out.println("本大学只收取18岁以上的学生");
            this.stuAge = 18;
        } else
            this.stuAge = stuAge;
    }

    //每产生一名学员,专业人数加1
    public void setMySubject(Subject mySubject) {
        //获取该专业已有学生人数
        int number1 = mySubject.getNumber();
        //修改学生人数
        number1++;
        mySubject.setNumber(number1);
        //设置专业信息
        this.mySubject = mySubject;
    }

    public String getStuId() { return stuId; }
    public void setStuId(String stuId) { this.stuId = stuId; }
    public String getStuName() { return stuName; }
    public void setStuName(String stuName) { this.stuName = stuName; }
    public int getStuAge() { return stuAge; }
    public Subject getMySubject() { return mySubject; }
}

运行截图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1521841.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Poi-tl Documentation】自定义行删除标签

前置说明&#xff1a; <dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.12.1</version> </dependency>模板样式&#xff1a; 删除行表格测试.docx 实现思路&#xff1a;通过定制占位…

监视和内存观察

监视和内存观察 5.监视和内存观察5.1 监视5.2 内存 5.监视和内存观察 在调试的过程中我们&#xff0c;如果要观察代码执行过程中&#xff0c;上下文环境中的变量的值&#xff0c;有哪些方法呢&#xff1f; 这些观察的前提条件一定是开始调试后观察&#xff0c;比如&#xff1…

【深度学习模型移植】用torch普通算子组合替代torch.einsum方法

首先不得不佩服大模型的强大之处&#xff0c;在算法移植过程中遇到einsum算子在ONNX中不支持&#xff0c;因此需要使用普通算子替代。参考TensorRT - 使用torch普通算子组合替代torch.einsum爱因斯坦求和约定算子的一般性方法。可以写出简单的替换方法&#xff0c;但是该方法会…

AI健身教练-引体向上-俯卧撑计数-仰卧起坐姿态估计-康复训练姿态识别-姿态矫正

在AI健身应用中&#xff0c;通过关键点检测技术可以实现对用户动作的精准捕捉和分析&#xff0c;从而进行统计计数和规范性姿态识别。 统计计数&#xff1a;比如在做瑜伽、健身操等运动时&#xff0c;系统可以通过对人体关键点&#xff08;如手部、脚部、关节等&#xff09;的…

MySQL语法分类 DQL(4)聚合函数

为了更好的学习这里给出基本表数据用于查询操作 create table student (id int, name varchar(20), age int, sex varchar(5),address varchar(100),math int,english int );insert into student (id,name,age,sex,address,math,english) values (1,马云,55,男,杭州,66,78),…

GPT实战系列-LangChain构建自定义Agent

GPT实战系列-LangChain构建自定义Agent LangChain GPT实战系列-LangChain如何构建基通义千问的多工具链 GPT实战系列-构建多参数的自定义LangChain工具 GPT实战系列-通过Basetool构建自定义LangChain工具方法 GPT实战系列-一种构建LangChain自定义Tool工具的简单方法 GPT…

Navicat 面试题及答案整理,最新面试题

Navicat 在数据库管理中的主要用途有哪些&#xff1f; Navicat 是一款数据库管理工具&#xff0c;其主要用途包括&#xff1a; 1、多数据库支持&#xff1a; Navicat 支持多种数据库连接&#xff0c;包括 MySQL、Oracle、PostgreSQL、SQLite、SQL Server 等&#xff0c;方便用…

学点Java打小工_Day4_数组_冒泡排序

1 数组基本概念 程序算法数据结构 算法&#xff1a;解决程序的流程步骤 数据结构&#xff1a;将数据按照某种特定的结构来存储 设计良好的数据结构会导致良好的算法。 ArrayList、LinkedList 数组是最简单的数据结构。 数组&#xff1a;存放同一种类型数据的集合&#xff0c;在…

Python笔记|字符串的转义

重新梳理一遍python的基础知识 除了数字&#xff0c;Python 还可以操作字符串。字符串有多种表现形式&#xff0c;用单引号&#xff08;……&#xff09;或双引号&#xff08;"……"&#xff09;标注的结果相同 。反斜杠 \ 用于转义&#xff1a; >>>spam e…

git push解决办法:! [remote rejected] prod -> prod (pre-receive hook declined)

今天想把最近改的东西上传到Gogs上发版一下子的&#xff0c;但是发现有冲突合并不了&#xff0c;于是我切回自己的分支合并了prod&#xff0c;把冲突处理了一下子&#xff0c;还又增加了一点修改&#xff0c;push后.......又回到prod进行git push&#xff0c;哦豁~这就出了问题…

Linux网络编程: 以太网帧Frame/ARP/RARP详解

一、TCP/IP五层模型 物理层&#xff08;Physical Layer&#xff09;&#xff1a;物理层是最底层&#xff0c;负责传输比特流&#xff08;bitstream&#xff09;以及物理介质的传输方式。它定义了如何在物理媒介上传输原始的比特流&#xff0c;例如通过电缆、光纤或无线传输等。…

稀碎从零算法笔记Day19-LeetCode:相交链表

题型&#xff1a;链表基本操作 链接&#xff1a;160. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&…

人形机器人进展:IEEE Robotics出版双臂通用协同机械手操作架构

文章目录 1. Main2. My ThoughtsReference彩蛋a. OpenAI 投资: 人形机器人公司 Figure AIb. 人工智能软件工程师 Devin 上线 1. Main 图1 人居环境下的人形双臂机器人系统 通用人形机器人 作为近年来机器人与AI交叉领域的研究热点和技术竞争高地&#xff0c;因其具备在 非结构化…

服务器部署项目总结

服务器部署项目总结 yzh 24/3/15 前言 本着一定成功的信心去部署前后端分离的项目&#xff0c;结果却“路遇坎坷”&#x1f62d;&#x1f62d;&#x1f62d;&#x1f62d; 代码和程序总是无情的啊&#xff0c;当然&#xff0c;也是因为一段时间没学习对于知识模糊了&#xff…

【ollama】(7):使用Nvidia Jetson Nano设备,成功运行ollama,运行qwen:0.5b-chat,速度还可以,可以做创新项目了

1&#xff0c;视频地址 https://www.bilibili.com/video/BV1Pj421o7W5/ 【ollama】&#xff08;7&#xff09;&#xff1a;使用Nvidia Jetson Nano设备&#xff0c;成功运行ollama&#xff0c;运行qwen:0.5b-chat&#xff0c;速度还可以&#xff0c;可以做创新项目了 2&#x…

PMP的学习方法

PMBOK编撰了管理项目需要的49个过程&#xff08;输入、工具技术、输出&#xff09;。工具技术文件&#xff0c;林林总总百余个。第一部分&#xff0c;按照十大知识领域顺序从前到后编排&#xff1b;第二部分&#xff0c;按照五大过程组顺序重新编排了一遍。 一&#xff0c;PMB…

【Poi-tl Documentation】区块对标签显示隐藏改造

前置说明&#xff1a; <dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.12.1</version> </dependency>模板&#xff1a; 删除行表格测试.docx 改造前测试效果 package run.siyuan…

数据结构——通讯录项目

1.通讯录的介绍 顺序表是通讯录的底层结构。 通讯录是将顺序表的类型替换成结构体类型来储存用户数据&#xff0c;通过运用顺序表结构来实现的。 用户数据结构&#xff1a; typedef struct PersonInfo {char name[12];char sex[10];int age;char tel[11];char addr[100]; }…

Java Web 概述

XML基础 XML概述 XML(exiensile markup language&#xff0c;可扩展标记语言)是一套定义语义标记的规则&#xff0c;这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言&#xff0c;可以定义其他与特定领域有关的、语义的、结构化的标记。 XML与 HTML 都…

【C语言步行梯】各类操作符、类型转换与原码、反码、补码详谈

&#x1f3af;每日努力一点点&#xff0c;技术进步看得见 &#x1f3e0;专栏介绍&#xff1a;【C语言步行梯】专栏用于介绍C语言相关内容&#xff0c;每篇文章将通过图片代码片段网络相关题目的方式编写&#xff0c;欢迎订阅~~ 文章目录 算术运算符原码、反码、补码介绍移位运算…