【Java】—— Java面向对象基础:Java中类的构造器与属性初始化,Student类的实例

news2024/9/24 11:22:34

目录

定义Student类

在main方法中创建Student对象

结论


        在Java中,类的构造器(Constructor)是一个特殊的方法,用于在创建对象时初始化对象的属性。今天,我们将通过一个简单的Student类实例,来探讨如何在Java中定义和使用多个构造器,以及如何通过这些构造器来创建对象并初始化其属性。

定义Student

        首先,我们定义了一个Student类,该类包含四个属性:姓名(name)、年龄(age)、学校(school)和专业(major)。为了灵活地创建Student对象并初始化这些属性,我们为这个类定义了三个构造器。

public class Student {

    String name;
    int age;
    String school;
    String major;   // 专业
    // 第一个构造器,仅初始化姓名和年龄
    public Student(String n,int a){
        name = n;
        age = a;
    }
    // 第二个构造器,初始化姓名、年龄和学校
    public Student(String n,int a,String s){
        name = n;
        age = a;
        school = s;
    }
    // 第三个构造器,初始化所有属性  
    public Student(String n,int a,String s,String m){
        name = n;
        age = a;
        school = s;
        major = m;
    }

    // 定义一个方法用于输出学生的信息
    public String getInfo(){
        return "name = " + name + ", age = " + age + ", school = "
                + school + ", major = " + major;
    }

}

main方法中创建Student对象

接下来,我们在main方法中创建Student对象,并分别使用这三个构造器来初始化它们。


  
public class StudentTest {  
    public static void main(String[] args) {  
        // 使用第一个构造器创建对象s1,并初始化姓名和年龄  
        Student s1 = new Student("自由基", 45);  
        System.out.println(s1.getInfo()); // 输出:name = 自由基, age = 45, school = null, major = null  
  
        // 使用第二个构造器创建对象s2,并初始化姓名、年龄和学校  
        Student s2 = new Student("零全新", 30, "科技大学");  
        System.out.println(s2.getInfo()); // 输出:name = 零全新, age = 30, school = 科技大学, major = null  
  
        // 使用第三个构造器创建对象s3,并初始化所有属性  
        Student s3 = new Student("张三", 22, "北京大学", "计算机科学与技术");  
        System.out.println(s3.getInfo()); // 输出:name = 张三, age = 22, school = 北京大学, major = 计算机科学与技术  
    }  
}

运行结果

结论

        通过上面的示例,我们学习了如何在Java中定义多个构造器来初始化类的不同属性。构造器允许我们在创建对象时根据需要提供不同的初始化参数,从而增加了类的灵活性和重用性。此外,我们还通过getInfo方法演示了如何输出对象的属性值,这对于调试和展示对象状态非常有用。

        希望这篇文章能帮助你更好地理解Java中的构造器及其用法。如果你有任何疑问或想要进一步探讨,请随时在评论区留言。

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

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

相关文章

【数据分享】2000—2023年250米分辨率逐月归一化植被指数(NDVI)栅格数据(免费获取/全国/分省)

NDVI,全名为Normalized Difference Vegetation Index,中文名称为归一化植被指数。这个指数可以用来定性和定量评价植被覆盖及其生长活力,我们也可以简单地将它理解为体现植被密度和健康状况的一个指标。之前我们给大家分享了来源于MOD13A3数据…

手握15个大厂offer,我在大模型风口起飞

在“金三银四”的招聘季中,社交媒体上分享offer信息的“求助帖”比比皆是。帖子一般只披露公司名称和薪资区间,模糊具体岗位,作为判断是否值得去的衡量标准。 2024年毕业的985硕士生白丁(化名)一口气晒出了自己在秋招…

使用STM32CubeMX新建工程

开发板:STM32h743xi 编程软件:Keil、STM32CubeMX 项目:GPIO外设操作(彩色LED灯) 学习打卡:Day1 学习地址:【野火】STM32 HAL库开发实战指南 教学视频 手把手教学STM32全系列 零基础入门CubeMXHA…

echarts组件——漏斗图

echarts组件——漏斗图 组件代码 <template><div :class"classname" :style"{height:height,width:width}" /> </template><script> import * as echarts from echarts require(echarts/theme/macarons) // echarts theme import…

虚拟试穿(VTON)和虚拟换装(VD)技术分享

虚拟试穿技术&#xff08;VTON&#xff09;和虚拟换装&#xff08;VD&#xff09;技术是一种应用于电子商务和在线零售的技术&#xff0c;旨在通过数字手段提升用户的购物体验&#xff0c;让用户能够在没有实际试穿的情况下&#xff0c;看到自己穿上特定服装的样子。这种技术的…

js 如何获取文件名

"bbb/aaa/ss.pdf" 如何获取到文件名 ss.pdf split(/) 分割字符串 function getFileName(filePath) {// 使用正斜杠 / 分割路径&#xff0c;并获取最后一个元素作为文件名let parts filePath.split(/)// console.log(parts) // [bbb, aaa, ss.pdf]let fileName pa…

深度解析CancellationToken在HttpClient请求中的应用

概述 在现代的Web开发中&#xff0c;爬虫技术已成为数据获取的重要手段。随着Web技术的发展&#xff0c;服务器端的反爬机制也愈发复杂和智能化&#xff0c;因此&#xff0c;我们需要不断优化爬虫的设计和实现&#xff0c;以提高效率和稳定性。在本文中&#xff0c;我们将重点…

Windows中Git对文件名大小写不敏感的问题解决方法

文章目录 前言一、Git 对文件名大小写不敏感方法1.使用git命令进行修改方法2.关闭git 忽略大小写配置 &#xff08;可以当前项目设置&#xff0c;也可以全局设置 --global&#xff09; 二、新的问题&#xff08;重复的目录&#xff09;原因分析解决方法 前言 Git是一个免费的、…

wpf prism 《4》 事件 发布订阅

PubSubEvent 继承 EventBase TEventType GetEvent() where TEventType : EventBase, new();

Java使用POI创建不同类型单元格

这篇文章将演示如何使用POI 展示如何创建一个包含不同类型单元格&#xff08;如字符串、数字、日期、布尔值和公式&#xff09;的Excel文件&#xff0c;并设置单元格样式&#xff0c;包括字体、颜色、边框和对齐方式。 代码 import org.apache.poi.ss.usermodel.*; import org…

Leetcode5. 最长回文子串(背向指针)

问题描述&#xff1a; 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 示例 1&#xff1a; 输入&#xff1a;s "babad" 输出&#xff1a;"bab" 解释&#xff1a;"aba" 同样是符合题意的答案。示例 2&#xff1a; 输入&#xff1a;…

医疗数字化转型数据中台架构方案(三)

为实现医疗数字化转型&#xff0c;我们将构建一个全面的数据中台架构&#xff0c;通过整合来自电子病历、影像系统、实验室数据及外部健康数据源的信息&#xff0c;应用大数据技术对数据进行统一存储、处理和分析&#xff1b;该数据中台将采用云计算和分布式架构&#xff0c;支…

MySQL:简述对事务的认识

浅谈对Spring事务的认识&#xff1a;https://xiaoer.blog.csdn.net/article/details/80849971 一、事务的特性 事务是数据库永恒不变的话题&#xff0c; ACID&#xff1a;原子性&#xff0c;一致性&#xff0c;隔离性&#xff0c;持久性。 &#xff08;1&#xff09;原子性&am…

DSLP——改变我团队的数据科学项目管理框架

到目前为止&#xff0c;它是数据科学的最佳框架。您可以将其用于您的团队或仅供您自己使用。以下是我使用它的方式。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 虽然软件工程实践要求问题的产生是为了适应不断变化的客户需求&#xff0c;但我们需要能…

护眼大路灯是不是智商税?全面测评书客、雷士、米家护眼大路灯

目前很多护眼大路灯存在虚标参数、夸大宣传&#xff0c;甚至一些质量低劣的产品还会对眼睛造成更严重的伤害。所以&#xff0c;究竟怎样才能买到一台真正好用的护眼大路灯呢&#xff1f;雷士护眼大路灯真的好吗&#xff1f;本次通过对书客、雷士、米家三款护眼大路灯的实测&…

ODOO17文档打印(输出)方案 -- ODOO17 document printing (output) scheme

根据使用场景不同&#xff0c;ODOO17支持以下几种文档打印(输出)方案&#xff1a; According to different usage scenarios, ODOO17 supports the following document printing (output) schemes: 1、QWEB ODOO原生打印功能&#xff08;生成PDF文档&#xff09; odoo使用的主…

JavaScript高阶 day-04

目录 一.什么是原型&#xff0c;什么是原型链&#xff1f; 二.call / apply / bind 有啥区别 三.JS四种检测数据类型的方式 四.说说继承 五.for..in和for..of和forEach的区别 六.forEach和map方法的区别 七. js高阶中数组的常用的操作方法 八.什么是严格模式 九.什么是…

深入了解Python数据可视化库——Seaborn

数据可视化在数据分析和机器学习领域中占据着重要地位,它不仅能帮助我们直观地理解数据,还能在探索数据、发现模式和趋势时提供极大的便利。Python语言中有多个优秀的可视化库,其中,Seaborn 因其简单易用且美观的图表风格而备受青睐。Seaborn是基于Matplotlib构建的高级API…

“千鼠万抗”全球快速扩张,百奥赛图即将跨过拐点实现盈利

造汽车还是为车企提供智驾技术&#xff0c;开发AI应用还是做底层大模型&#xff0c;造芯片还是研发光刻机&#xff1f;这是发生在每条产业链上关于价值链定位的故事。 产业发展离不开任一环节的玩家&#xff0c;但毋庸置疑的是&#xff0c;向价值链更高的领域突围&#xff0c;…

LLM —— 强化学习(RLHF-PPO和DPO)学习笔记

强化学习整体流程 智能体执行动作与环境进行交互&#xff0c;根据奖励R的反馈结果不断进行更新。 价值函数 奖励将会考虑两个方面的奖励&#xff0c;一个当下的奖励&#xff0c;一个是未来的奖励&#xff08;为了防止陷入局部最优解&#xff09;。 LLM强化学习 强化学习模型分…