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);//局部变量,输出10
        System.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.mfbz.cn/a/610317.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

批量无人值守设备运维如何轻松搞定,设备授权和分组很关键

如今数字化时代,很多企业的一线业务依托无人值守的智能终端设备展开,这类设备的广泛使用可以帮助企业以较小的成本铺开大规模的业务,比如现在随处可见的智能售货机,商场的各类智能互动终端等等。 这类设备整体上可以降低业务开展…

注册测绘师历年真题及答案解析

点赞、留言、关注“地知通”公众号,免费获取注册测绘师历年真题及答案解析学习材料。 声明:转载此文不为商业用途。文字和图片版权归原作者所有,若有来源标注错误或侵犯了您的合法权益,请与我们联系,我们将及时处理&am…

RegExp魔法阵与Cookie记忆宫殿:JavaScript 中的秘密宝藏

个人主页:学习前端的小z 个人专栏:JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 🔆RegExp 🎲 1 什么是正则表达式 🎲2 创建…

Android11 InputDispatcher 分发事件流程分析

在 Android11 InputReader分析 一文中分析到,InputReader将数据放入iq队列后,唤醒InputDispatcher线程,执行InputDispatcher的dispatchOnce方法 //frameworks\native\services\inputflinger\dispatcher\InputDispatcher.cpp void InputDispa…

【MQTT】MQTT协议和相关概念介绍

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

转行网络安全的重要建议,助你顺利入门

目录 为什么写这篇文章 为什么我更合适回答这个问题 先问自己3个问题 1.一定要明确自己是否是真喜欢,还是一时好奇。 2.自学的习惯 3.选择网安、攻防这行的目标是什么? 确认无误后,那如何进入这个行业? 1.选择渗透测试集中…

Boost库的使用

1 下载与安装 1.1 下载 网址:Boost C Libraries 进入后选择自己需要的版本安装即可 1.2 安装 1.2.1 解压 1.2.2 编译安装 双击bootstrap.bat 这一步完成后会生成一个b2.exe文件 双击b2.exe文件运行(此步需要花费较长的时间) 之后再stag…

新增分类——后端

实现功能: 代码开发逻辑: 页面发送ajax请求,将新增分类窗口输入的数据以json形式提交到服务端服务端Controller接收页面提交的数据并调用Service将数据进行保存Service调用Mapper操作数据库,保存数据 代码实现: Con…

遇到如此反复的外贸客户,你可以这样做~

来源:宜选网,侵删 当你们遇到爽快的买家的时候,你是否有把握一定能把她拿下呢? 还是说即使客户很爽快,你也会耐心认真的沟通呢? 今天要和大家分享的这个买家,我本以为他是一个很爽快的买家&am…

前端使用Compressor.js实现图片压缩上传

前端使用Compressor.js实现图片压缩上传 Compressor.js官方文档 安装 npm install compressorjs使用 在使用ElementUI或者其他UI框架的上传组件时,都会有上传之前的钩子函数,在这个函数中可以拿到原始file,这里我用VantUI的上传做演示 a…

基于TRIZ理论的锂电池生产工艺优化思路

在能源科技迅猛发展的今天,锂电池作为重要的储能元件,其生产工艺的优化与革新显得尤为关键。本文将基于TRIZ理论,探讨锂电池生产工艺的优化路径,以期提升能源产业的效率与环保性。 TRIZ,即发明问题解决理论&#xff0…

三级综合医院微信预约挂号系统源码,PC后台管理端+微信公众号+支付宝小程序全套源码

智慧医院预约挂号系统,微信医疗预约挂号小程序源码,实体医院预约挂号支付系统源码 本系统主要面向中大型的医疗机构,适用于各级公立和民营医院,可对接院内his、lis、pacs系统。 PC后台管理端微信公众号支付宝小程序 系统支持当日…

Apinto下载安装以及集群部署总结

下载 下载官方提供的安装包安装(推荐) wget https://github.com/eolinker/apinto/releases/download/v0.13.3/apinto_v0.13.3_linux_amd64.tar.gz && tar -zxvf apinto_v0.13.3_linux_amd64.tar.gz && cd apinto 安装 先确保已经入解…

浅谈postman设置token依赖步骤

前言: postman做接口测试时,大多数的接口必须在有token的情况下才能运行,我们可以获取token后设置一个环境变量供所在同一个集合中的所有接口使用。 一般是通过调用登录接口,获取到token的值 实战项目:jeecg boot项…

InfluxDB学习之linux上安装InfluxDB

InfluxDB学习之linux上安装InfluxDB 什么是InfluxDB特点使用场景 如何安装windows如何安装linux安装教程(不用登录,) 界面展示特别说明 什么是InfluxDB InfluxDB 是一个用于存储和分析时间序列数据的开源数据库。由 Golang 语言编写&#xff…

什么是HTTP/2?

HTTP/2(原名HTTP 2.0)即超文本传输协议第二版,使用于万维网。HTTP/2主要基于SPDY协议,通过对HTTP头字段进行数据压缩、对数据传输采用多路复用和增加服务端推送等举措,来减少网络延迟,提高客户端的页面加载…

分布式锁讲解

概括 分布式锁是一种用于在分布式系统中实现同步机制的锁。在单机系统中,我们可以使用如Java中的synchronized关键字或者 ReentrantLock来实现线程间的同步,但在分布式系统中,由于多个节点(服务器)之间的并发操作&am…

【探索Java编程:从入门到入狱】Day5

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

CSS基础(盒子模型、浮动、定位)

盒子模型 所有HTML元素可以看作盒子,这个盒子包含了内容、内边距、边框和外边距。 Margin(外边距) -边框外的区域,也就是盒子与其他元素之间的空间,外边距是透明的。Border(边框) - 围绕在内边距和内容外的边框。就是边框大小Padding(内边距…

好题总结汇总

好题总结汇总 总结一些做完很有收获的题。 一、经典问题 DP的结合 1、题意: 给定 n n n 种颜色的球的数量 a 1 , a 2 , . . . , a n a_1, a_2, ..., a_n a1​,a2​,...,an​,选出一些不同种类的球(也就是在n种球中选球的任意情况),将球…
最新文章