【Java语言】类和对象

是用来对一个对象进行描述的,主要描述这个对象哪些属性。

       类需要class进行修饰,一个Java文件中可以存在多个类,但是只能存在一个public类且必须与Java文件名相同。eg:有一个Demo.Java文件,在文件中只能存在public class Demo{},但是可以有多个class …;下面是构建的一个学生类:

类的实例化 

类的实例化就是上面这个图中创建的s这个对象,用类类型创建对象的过程;

  • new 关键字用于创建一个对象的实例.
  • 使用 . 来访问对象中的属性和方法.
  • 同一个类可以创建对个实例.  

       类里面放着成员变量、成员方法、构造方法等 ,都需要关键字进行修饰(public、private、default、protect);

  • 成员变量:描述类的属性;在没有赋值的情况下,它有默认的初值
  1. 整型默认为0,字符串(引用变量)默认null;
  2. 字符型默认"\u0000";
  3. 布尔类型默认flase;
  4. double型默认0.0,float型默认0.0f;
  • 成员方法:描述类的功能
  1. 方法中的创建的变量都局部变量必须都要初始化否则会出现编译错误;
  • 构造方法: 特殊的成员方法
  1. 构造方法必须与类名一致,在创建实例对象是就调用了构造方法,并且在s这个对象中只能调用一次;
  2. 没有返回类型,void也不行;
  3. 参数没有强制要求根据实例对象的需求而实现,如果有参数可以用this调用;eg:this.a = a
  4. 构造方法可以多个同时出现,必须满足参数个数不一样    <==>  方法重载

this引用

       this引用指向当前对象(成员方法运行时调用该成员方法的对象);   eg:创建一个s,用s.调用构造方法则构造方法中的this.age = age中的this.age指的就是s这个实例对象的年龄,可以说this等价于s;

       这样的目的就是万一存在实例对象的成员变量与构造方法的变量相同时,区分更好确定实例对象的成员变量 ;

封装

       面向对象程序的三大类:封装、继承、多态。现在主要讲讲封装,封装就是将数据和操作数的方法进行结合·,隐藏对象的属性和方法。

在Java中,有自带包和自定义包;

       如果使用自带包中的类就需要import语句导入包,可能有时候不同的包中会出现相同的类名,这时就需要详细的写出类名。

       自定义包就是在文件最上方加上一个package语句指定代码在哪个包中,如果没有package语句就可能放在一个默认的包中(src);写包名的时候可以com.+域名+.+包名;创建完成后就可以新建类了;

 在包中使用关键字也需要注意(前面说明关键字的用法)。

static 

       static不能修饰局部变量(方法中的变量) ,能修饰成员变量、成员方法等;被static修饰的成员称为静态成员,静态成员都是类成员,不属于某个具体对象,所以在访问该静态成员时一般通过类名访问,也可以通过对象访问(就是一般不建议)。

静态成员变量

       被static修饰的成员变量被称为静态成员变量;静态成员变量的特点: 

  • 类创建,它也创建;静态成员变量是最先创建定义的,所以在方法中定义静态变量的话,在静态成员变量中找不到事先定义的变量,就会出现编译错误;
  • 静态成员变量是所有对象共享的,所以每个对象引用后都会保存其最终的值,而且它都是存放在方法区;
  • 当类结束时,它也随着类销毁而销毁; 

静态方法 

       被static修饰的成员方法被称为静态方法;静态方法的特点:

  • 在静态方法中不能直接访问非静态成员变量,静态成员都是最先创建的,如果先前访问就会出现变量未定义的问题;
  • 静态方法中不能调用任何非静态方法,因为非静态方法有this参数,在静态方法中调用时候无法传递this引用

代码块

       使用 {} 定义的一段代码称为代码块。代码块分为普通、构造、静态和同步代码块(暂时不说同步)。执行顺序先是静态代码块,然后构造代码块,载然后构造方法

普通代码块

       直接用{}定义的代码块就是普通代码块;

构造代码块

       一般用于初始化实例成员变量,也叫实例代码块; 只有在创建对象的时候才会使用;

静态代码块 

       使用static定义的代码块叫静态代码块; 静态代码块不管调用多少次对象就只能执行一次而且也是静态成员变量创建后就执行。总而言之静态成员都是最先创建的相比其他的代码块;

打印对象

       打印对象可以不用通过成员方法调用,利用toString可以通过对象直接打印。

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

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

相关文章

大模型系列——AlphaZero/强化学习/MCTS

AlphaGo Zero无需任何人类历史棋谱&#xff0c;仅使用深度强化学习&#xff0c;从零开始训练三天的成就已远远超过了人类数千年积累的围棋知识。 1、围棋知识 &#xff08;1&#xff09;如何简单理解围棋知识 &#xff08;2&#xff09;数子法分胜负&#xff1a;https://zhu…

CSS.导入方式

1.内部样式 在head的style里面定义如 <style>p1{color: brown;}</style> 2.内联样式 直接在标签的里面定义如 <p2 style"color: blue;">这是用了内联样式&#xff0c;蓝色</p2><br> 3.外部样式表 在css文件夹里面构建一个css文件…

LeetCode题(二分查找,C++实现)

LeetCode题&#xff08;二分查找&#xff0c;C实现&#xff09; 记录一下做题过程&#xff0c;肯定会有比我的更好的实现办法&#xff0c;这里只是一个参考&#xff0c;能帮到大家就再好不过了。 目录 LeetCode题&#xff08;二分查找&#xff0c;C实现&#xff09; 一、搜…

ComfyUI初体验

ComfyUI 我就不过多介绍了&#xff0c;安装和基础使用可以看下面大佬的视频&#xff0c;感觉自己靠图文描述的效果不一定好&#xff0c;大家看视频比较方便。 ComfyUI全球爆红&#xff0c;AI绘画进入“工作流时代”&#xff1f;做最好懂的Comfy UI入门教程&#xff1a;Stable D…

STM32G474硬件CRC7和软件CRC7校验

1、CRC7的多项式和初始值 #define CRC_Hardware_POLYNOMIAL_7B 0x09//硬件CRC多项式为0x09 //SD卡中的校验算法CRC7&#xff0c;生成多项式为x^7 x^3 1&#xff0c;由于bit7不存在&#xff0c;只有bit31和bit01&#xff0c;所以多项式为0x09#define CRC7_INIT_VALUE 0…

传输线临界长度

临界长度 临界长度是联结传输线长度与信号反射量之间的一个重要参数。如果用信号在传输线 上的时间延迟来表示传输线长度&#xff0c;临界长度在数值上可表示为 临界长度是传输线末端信号能否达到振铃的最大幅度的传输线长度临界值。传输线长度小于临界长度时&#xff0c;振铃…

微信小程序 - 动画(Animation)执行过程 / 实现过程 / 实现方式

前言 因官方文档描述不清晰,本文主要介绍微信小程序动画 实现过程 / 实现方式。 实现过程 推荐你对照 官方文档 来看本文章,这样更有利于理解。 简单来说,整个动画实现过程就三步: 创建一个动画实例 animation。调用实例的方法来描述动画。最后通过动画实例的 export 方法…

UI设计软件全景:13款工具助力创意实现

选择恰当的UI设计工具对于创建美观且用户体验良好的应用程序界面至关重要。不同的APP功能可能需要不同的界面设计软件&#xff0c;但并非所有工具都需要精通&#xff0c;熟练掌握几个常用的就足够了。以下是13款APP界面设计软件&#xff0c;它们能够为你的团队提供绘制APP界面所…

【动手学强化学习】part2-动态规划算法

阐述、总结【动手学强化学习】章节内容的学习情况&#xff0c;复现并理解代码。 文章目录 一、什么是动态规划&#xff1f;1.1概念1.2适用条件 二、算法示例2.1问题建模2.2策略迭代&#xff08;policyiteration&#xff09;算法2.2.1伪代码2.2.2完整代码2.2.3运行结果2.2.4代码…

2024年【焊工(中级)】最新解析及焊工(中级)考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 焊工&#xff08;中级&#xff09;最新解析参考答案及焊工&#xff08;中级&#xff09;考试试题解析是安全生产模拟考试一点通题库老师及焊工&#xff08;中级&#xff09;操作证已考过的学员汇总&#xff0c;相对有…

Java题集练习4

Java题集练习4 1 异常有什么用&#xff1f; 用来找到代码中产生的错误 防止运行出错2 异常在java中以什么形式存在&#xff1f; 异常在java中以类的形式存在&#xff0c;分为运行时异常和编译期异常&#xff0c;他们都在类Exception中3 异常是否可以自定义&#xff1f;如何自…

2024年【金属非金属矿山(地下矿山)安全管理人员】考试报名及金属非金属矿山(地下矿山)安全管理人员复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 金属非金属矿山&#xff08;地下矿山&#xff09;安全管理人员考试报名是安全生产模拟考试一点通生成的&#xff0c;金属非金属矿山&#xff08;地下矿山&#xff09;安全管理人员证模拟考试题库是根据金属非金属矿山…

海洋生物图像分割系统:一键训练

海洋生物图像分割系统源码&#xff06;数据集分享 [yolov8-seg-C2f-EMSCP&#xff06;yolov8-seg-dyhead等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Global Al l…

基于SpringBoot+Vue+MySQL的房屋租赁系统

系统展示 系统背景 随着城市化进程的加速和人口流动性的增加&#xff0c;房屋租赁市场逐渐成为城市生活的重要组成部分。然而&#xff0c;传统的房屋租赁方式存在诸多问题&#xff0c;如信息不对称、交易成本高、租赁关系不稳定等&#xff0c;这些问题严重影响了租赁市场的健康…

第三届“基于模型的系统工程及数字工程大会”盛况回顾,同元软控发表精彩演讲

2024年10月27日&#xff0c;第三届“基于模型的系统工程及数字工程大会”&#xff08;MBSE&DE 2024&#xff09;在合肥召开。本届大会是中国系统工程学会第23届学术年会重点分会场论坛之一&#xff0c;由中国系统工程学会科技系统工程专业委员会联合中国图学学会数字化设计…

云原生笔记

#1024程序员节|征文# 单页应用(Single-Page Application&#xff0c;SPA) 云原生基础 云原生全景内容宽泛&#xff0c;以至于刚开始就极具挑战性。 云原生应用是高度分布式系统&#xff0c;它们存在于云中&#xff0c;并且能够对变化保持韧性。系统是由多个服务组成的&#…

在 AMD GPU 上构建解码器 Transformer 模型

Building a decoder transformer model on AMD GPU(s) — ROCm Blogs 2024年3月12日 作者 Phillip Dang. 在这篇博客中&#xff0c;我们展示了如何使用 PyTorch 2.0 和 ROCm 在单个节点上的单个和多个 AMD GPU 上运行Andrej Karpathy’s beautiful PyTorch re-implementation …

LabVIEW Modbus通讯稳定性提升

在LabVIEW开发Modbus通讯程序时&#xff0c;通讯不稳定是一个常见问题&#xff0c;可能导致数据丢失、延迟或错误。为了确保通讯的可靠性&#xff0c;可以从多个角度进行优化&#xff0c;以下是一些有效的解决方案&#xff0c;结合实际案例进行分析。 1. 优化通讯参数设置 通讯…

rtp协议:rtcp包发送和接收规则和报告!

RTCP Packet Send and Receive Rules&#xff1a; 发送和接收 RTCP 包的规则在此列出。允许在多播环境或多点单播环境中运行的实现必须满足第 6.2 节中的要求。这样的实现可以使用本节定义的算法来满足这些要求&#xff0c;或者可以使用其他算法&#xff0c;只要其性能等同或更…

泄密?不可能!谨记10个确保公司数据不泄密的措施,你必须了解!(企业防泄密的最佳选择)

泄密&#xff1f;不可能&#xff01;这10个确保公司数据不泄密的措施&#xff0c;你必须谨记&#xff01; 在数据为王的时代&#xff0c;企业信息的保密性直接关系到其核心竞争力与市场地位。 然而&#xff0c;数据泄露事件却屡见不鲜&#xff0c;给企业的声誉和利益带来巨大…