Java学习【类与对象】

类和对象

开始我们就不讲那些把大象放冰箱需要几步来引入面向对象的例子了,直接上干货。
在Java中,类是对现实世界中某一类事物的抽象描述。它包含了该类事物的属性和方法。属性用于描述事物的状态,而方法则用于描述事物可以做的事情。对象也就时类的实例,通过关键字new出来一个具体的对象。

举个例子吧:
在这里插入图片描述

public class Student {//成员变量,也就是Student类包括的属性public String sno;public String name;public String gender;public int age;public int score;//成员方法public static void printName(String name){System.out.println(name);}//测试public static void main(String[] args) {Student s1 = new Student();s1.name = "张三";printName(s1.name);}
}

其实类和C语言中的结构体差不多,当我们在主函数中创建一个类的对象时,是通过 new 关键字来实现的,然后通过对象名 + . 来获取属性

注意事项:
1.类名首字母要大写,见名知意,驼峰模式,也就是多个单词组成一个单词,每个单词首字母大写
2.一个Java文件可以定义多个class类,但用public修饰的类名要和文件名一致
在这里插入图片描述
3.建议一个类一个java文件

this 关键字

如果说我们想要在Student类中写一个setName的方法,但是我们定义变量名要采用见名知意的方法,那么此时我们再用name,就和之前定义的属性name冲突了,就会产生以下的矛盾,因为此时name在方法体内,变成了局部变量,根据局部优先的原则,此时就是两个空值在互相赋值

public void setName(String name) {name = name;}

那么怎么解决呢?通过this关键字就可以区分成员变量和局部变量

private String name;private int age;private String sex;public void printAge(int age){age = 10;System.out.println(age);//局部变量,输出10System.out.println(this.age);//成员变量,输出0}

构造方法

作用:在创建对象的时候给成员变量进行赋值
特点:
1.方法名与类名完全相同
2.没有返回值类型,void 也不用写
3.没有返回值

public class Student {private String name;private int age;private String sex;//空参构造public Student(){}//带全部参数的构造方法public Student(String name,int age,String sex){this.name=name;this.age=age;this.sex=sex;}public static void main(String[] args) {Student s1 = new Student();//调用空参构造Student s2 = new Student("张三",20,"男");//调用构造方法}
}

注意:
如果没有定义构造方法,系统将给出一个默认的无参构造方法
如果定义了构造方法,系统就不再默认提供构造方法
推荐:
无论是否使用,都手动书写无参构造方法和带全部参数的构造方法

标准JavaBean

用来描述一类事物的类就叫做JavaBean类,在JavaBean中是不用写main方法的,之前写的编写main方法的类叫做测试类,在测试类中,创建JavaBean的对象进行赋值调用

一个标准的JavaBean要做到以下要求:
1.类名见名知意
2.成员变量用private修饰
3.至少提供两个构造方法(无参,带全部参数)
4.提供每一个成员变量的get,set方法
可以通过alt + insert快捷键来一键生成构造方法和get,set方法

在这里插入图片描述

在这里插入图片描述
另外还有一个好用到起飞的一键生成标准javabean的插件
在这里插入图片描述
装好之后就可以鼠标右键,找到ptg to javabean
在这里插入图片描述

以下就是一个标准的JavaBean类

public class Student {private String name;private int age;private String sex;//空参构造public Student(){}//带全部参数的构造方法public Student(String name,int age,String sex){this.name=name;this.age=age;this.sex=sex;}public static void main(String[] args) {Student s1 = new Student();Student s2 = new Student("张三",20,"男");}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String toString() {return "Student{name = " + name + ", age = " + age + ", sex = " + sex + "}";}
}

关于类和对象的内容就简单介绍到这里啦

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

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

相关文章

Redis 支持的 Java 客户端都有哪些?

Redis 是一种高性能的键值存储系统,它以其快速、灵活和可扩展的特性而闻名。在 Java 开发中,与 Redis 交互的方式通常是通过使用 Redis 的 Java 客户端。 这些客户端提供了访问 Redis 数据库的接口,使开发人员能够在 Java 应用程序中轻松地使…

电脑设置在哪里打开?Window与Mac双系统操作指南

随着科技的不断发展,电脑已经成为我们日常生活和工作中不可或缺的一部分。然而,对于许多初学者来说,如何找到并熟悉电脑的设置界面可能是一个挑战。特别是对于那些同时使用Windows和Mac双系统的用户来说,更是需要一篇详尽的指南来…

qml 和 c++类的数据交互

1、 新建一个需要交互的C++类 1)添加QObject头文件 2)添加自QObject的继承 3)添加Q_OBJECT宏 4)使用Q_PROPERTY,定义两个交互的属性,并设置读写的方法和变更属性的信号。 5)添加方法、槽函数和变量 2、在main.cpp中添加实例化对象的QML上下文 1)添加需要QML交互的…

在做题中学习(54):点名

LCR 173. 点名 - 力扣(LeetCode) 此题有不同的几种解法: 解法一:暴力枚举 O(n); 解法二:哈希表 把原数组丢入哈希表,遍历哈希表,看看哪个数值为0即可。 O(n)空间O(n)时间 解法三&…

Redis如何避免数据丢失?——RDB

目录 1. RDB机制的配置 2. fork()函数和写时复制(Copy On Write) 什么是Copy On Write 系统fork中使用Copy On Write机制 3. RDB文件结构 RDB文件内容和内容顺序 InfoAuxFields是rdb信息数据 数据库数据 数据 数据存储格式 字符串编码 操作码 4. RDB的2…

【自研网关系列】数字签名和url动态加密

🌈Yu-Gateway::基于 Netty 构建的自研 API 网关,采用 Java 原生实现,整合 Nacos 作为注册配置中心。其设计目标是为微服务架构提供高性能、可扩展的统一入口和基础设施,承载请求路由、安全控制、流量治理等…

【Java EE】数据库连接池详解

文章目录 🎍数据库连接池🌸Hikari🌸Druid 🍀MySQL开发企业规范⭕总结 🎍数据库连接池 在上⾯Mybatis的讲解中,我们使⽤了数据库连接池技术,避免频繁的创建连接,销毁连接 下⾯我们来了解下数据库连接池 数据库连接池负…

「ETL实战」搭建数仓,解决多源业务系统关联分析难题(定制化业务)

在大数据分析盛行的今天,关联分析作为数据挖掘和业务洞察的重要手段,受到了极大关注。然而,随着数据量的激增和源业务系统的复杂性增加,关联分析的性能问题逐渐成为了一个不可忽视的挑战。 本文将介绍借助ETL工具,如何…

大数据面试题 —— 数据库

目录 关系型数据库与非关系型数据库的区别数据库三范式MySQL中 drop、delete、truncate的区别MySQL中 char和 varchar 的区别MySQL中inner join、left join、right join以及full join的区别MySQL中 having 和 where 的区别count(*)、count(1)、count(列名)的区别MySQL中视图和表…

Threejs 学习笔记 | 灯光与阴影

文章目录 Threejs 学习笔记 | 灯光与阴影如何让灯光照射在物体上有阴影LightShadow - 阴影类的基类平行光的shadow计算投影属性 - DirectionalLightShadow类平行光的投射相机 聚光灯的shadow计算投影属性- SpotLightShadow类聚光灯的投射相机 平行光 DirectionalLight聚光灯 Sp…

12.轻量级锁原理及其实战

文章目录 轻量级锁原理及其实战1.轻量级锁的核心原理2.轻量级锁的演示2.1.轻量级锁的演示代码2.2.结果分析 3.轻量级锁的分类3.1.普通自旋锁3.2.自适应自旋锁 4.轻量级锁的膨胀 轻量级锁原理及其实战 引入轻量级锁的主要目的是在多线程环境竞争不激烈的情况下, 通过…

verilog中不重叠序列检测

编写一个序列检测模块,检测输入信号(a)是否满足011100序列, 要求以每六个输入为一组,不检测重复序列,例如第一位数据不符合,则不考虑后五位。一直到第七位数据即下一组信号的第一位开始检测。当…

C++下使用Matplotlib-cpp的一些配置

Aconda3安装使用 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/下载 切换清华源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ con…

修改latex中block中公式与block标题间隔过大的问题

修改block中公式与block间隔过大的问题 如图的block中公式出现了空白:代码见下方 \begin{proof}[证明]\begin{align*}&Z\alpha \beta _XX\beta _YY\varepsilon \rightarrow XZ\alpha X\beta _XX^2\beta _YXY\varepsilon X&\\&E\left( Z \right) \alpha \beta _XE\…

STM32实现1.8寸液晶屏 LCD SPI串口显示屏模块 TFT彩屏(标准库和HAL库实现)

目录 一、所选模块 液晶模块选择(淘宝上均有售卖) 模块引脚 二、嵌入式单片机型号 三、接线表设计 四、开发环境版本说明 五、标准库实现 六、HAL库实现 七、完整工程(内含标准库和HAL库源码) 代码链接 一、所选模块 液…

pycharm如何对for循环中第n次循序执行断点

目录 在 PyCharm 中,您可以设置条件断点来实现这个功能,这样只有在满足特定条件时断点才会被触发。以下是设置仅在 for 循环的第 n 次迭代时触发断点的步骤: 设置断点: 首先,找到您想要在 for 循环中设置断点的行。点击…

《应用现代化技术能力成熟度评估模型》介绍

在中国软件行业协会、应用现代化产业联盟以及中国电子技术标准化研究院的指导下,产业多家企业共同支持和参与下,完成的《应用现代化技术能力成熟度评估模型》标准。该标准从应用敏捷、稳定可靠、安全可信、业务智能、成本优化五大维度及22个能力项来评估…

计算机网络学习记录 网络的大概认识 Day1

你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github gitee 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 😄 (^ ~ ^) 想看更多 那就点个关注吧 我会尽力带来有趣的内容 计算机网络学习记录Day1 本文基于1.1 计算机网络在信息…

Highcharts 实现3D饼图 tooltip轮播

实现3D饼图,并且轮播显示tooltip 自定义toottip样式 import Highcharts from highcharts; import highcharts from highcharts; import highcharts3d from highcharts/highcharts-3d;highcharts3d(Highcharts); highcharts3d(highcharts); import { useEffect, use…

2024 VMware VCP一条龙通关-送题库

VMware VCP-DCV 2024(2V0-21.23)认证考试,2024年可高分通过。 1.5. An administrator has a host profile named Standard-Config. The administrator wants to change the other host profiles to use only the storage configuration setti…