JAVA类和对象

如何创建类

⚠Java当中一切皆对象

⚠如何描述对象?用类。

我们可以类当成一个模板,用来描述对象特征,行为等等

//自定义的类型 -> 你定义的一个 Java当中 没有的类型
class PetDog {public String name;//名字public String color;//颜色// 狗的属性public void barks() {System.out.println(name + ": 旺旺旺~~~");}// 狗的行为public void wag() {System.out.println(name + ": 摇尾巴~~~");}
}

如何修改文件内类的名称

 

因为这样不方便更改类的名称 

类的实例化

定义了一个类,就相当于在计算机中定义了一种新的类型 ,与 int double 类似,只不过 int double java 语言自 带的内置类型,而类是用户自定义了一个新的类型,比如上述的:PetDog 类。它是类 ( 一种新定义的类型) 有了这些自定义的类型之后,就可以使用这些类来定义实例 ( 或者称为对象 )
用类类型创建对象的过程,称为类的实例化 ,在 java 中采用 new 关键字,配合类名来实例化对象。

实例化出来的东西就是一个真正的实体

    public static void main(String[] args) {//通过new 关键字 可以实例化 多个对象//任何变量在使用的时候是已经被赋值的//.用来访问对象的属性或者方法PetDog petDog1 = new PetDog();petDog1.name = "feifei";petDog1.color = "红色";System.out.println(petDog1.name);System.out.println(petDog1.color);petDog1.barks();petDog1.wag();System.out.println("=============");PetDog petDog2 = new PetDog();petDog2.name = "花花";petDog2.color = "灰色";petDog2.barks();petDog2.wag();System.out.println(petDog2.name);System.out.println(petDog2.color);}

 new petdog1和2相当于开辟两块内存

this关键字

作用一

public class Date {public int year;public int month;public int day;public void setDate(int y, int m, int d){year = y;month = m;day = d;}public static void main(String[] args) {Date date = new Date();date.setDate(1999,1,1);}
}

 

但是如果再创建一个新的日期,同样调用这个方法,那么问题来了,你怎么知道是给哪个对象调用的方法呢? 

Date date2 = new Date();
date2.setDate(1989,11,11);

 其实系统是知道的

这里的this用来判断是哪个date来调用这个方法 

这里的year,month,day其实是

this.year = y;
this.month = m;
this.day = d;

作用二

设计另一个setDate和print方法

    public void setDate(int year, int month, int day){year = year;month = month;day = day;}public void print(){System.out.println("year: " + year + "month: " + month + "day: " + day);}

在调用这些方法的时候发现打印结果全都是0???

在setDate方法里面,形参和成员变量相同,由于局部变量优先原则,形参给形参自己赋值了,相当于什么都没赋,打印出来的就是int形式的null也就是0

修改setDate方法,在每个形参前面加一个this指向当前对象。

 

所以当我们的形参变量和成员变量一样的时候,要在形参前面加一个this

所以尽量使用this,一定错不了

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

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

相关文章

数学建模:主成分分析法

🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 主成分分析法 算法流程 构建原始数据矩阵 X X X ,其中矩阵的形状为 x ∗ n x * n x∗n ,有 m m m 个对象, n n n 个评价指标。然后进行矩阵的归一化处理。首先计算矩…

vue3 组合式api中 ref 和$parent 的使用

ref 的使用 vue3中, 在 组件中添加一个 component ref“xxx” ,就可以在父组件中得到 子组件的 dom 对象, 以及 虚拟的 dom 对象, 有了虚拟 dom, 我们就可以在父组件中控制子组件的显示了 ref 的使用方法 vue3中ref 的特点 以上…

删除、移动、复制文件时总是要卡在99%一段时间解决方法

Win10文件夹重命名、移动、删除等操作卡顿3-5秒。 原因分析: 查看发现,卡顿期间资源管理器无响应,并且其高度占用CPU资源,但是对于非文件夹文件操作没有问题。 解决方案: 1、双击“此电脑”,选择“查看”,再选择“选…

三、mycat分库分表

第五章 分库分表 一个数据库由很多表的构成,每个表对应着不同的业务,垂直切分是指按照业 务将表进行分类,分布到不同 的数据库上面,这样也就将数据或者说压力分担到不同 的库上面,如下图: 系统被切分成了&…

常静相伴:深度解析C++中的const与static关键字

个人主页:北海 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏✨收录专栏:C/C🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!&#x1f9…

java八股文面试[多线程]——并发三大特性 原子 可见 顺序

AutomicInteger : volatile CAS 总线LOCK MESI 两个协议 TODO volatile的可见性和禁止重排序是怎么实现的: DCL场景: new操作会在字节码层面生成两个步骤: 分配内存、调用构造器 然后把引用赋值给singleton 不加volatile则会发生指令重…

Docker从认识到实践再到底层原理(二-2)|Namespace+cgroups

前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…

ssm+vue乐购游戏商城系统源码和论文

ssmvue乐购游戏商城系统源码和论文115 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 随着社会的发展,游戏品种越来越多,计算机的优势和普及使得乐购游戏商城系统的开发成为必需…

Databricks 入门之sql(二)常用函数

1.类型转换函数 使用CAST函数转换数据类型(可以起别名) SELECTrating,CAST(timeRecorded as timestamp) FROMmovieRatings; 支持的数据类型有: BIGINT、BINARY、BOOLEAN、DATE 、DECIMAL(p,s)、 DOUBLE、 FLOAT、 INT、 INTERVAL interva…

android studio git没有显示Local Changes界面

设置android studio git没有显示Local Changes界面 Setting -> Version Control-> commit -> 把use non-modal commit interface 的勾勾去掉,如下图所示 然后点击apply,回到git界面就看到了,亲测有效

2023年7月京东护发市场数据分析(京东数据产品)

如今,与面部护肤相比,多数消费者认为头皮也需要认真对待,这在年轻消费群体中体现的较为明显。 随着消费者对护发理念的认同感不断加深,人们日常居家洗护的步骤也更加精细、使用产品品类也愈加多样化。除传统的护发素、发膜等护发…

Web3 社交平台如何脱颖而出?我们和 PoPP 聊了聊

能够颠覆 Web2 传统模式的社交产品有着怎样的特征?PoPP 作为专注于 Web3 的私域流量变现平台,为开发者和用户提供了社交产品发展的新路径,让社区用户充分实现互动交流,着力于创作内容的激励与变现。事实上,面对 Web3 社…

电脑可以上网,微信都可以用,但浏览器打不开网页

可以试试设置DNS(其他windows版本步骤): 1.打开控制面板 2.网络和Internet 3.查看网络计算机和设备 4.按照下图步骤: 5.按下图进行

WorkPlus Meet支持企业局域网内部使用的视频会议系统

在当今飞速发展的数字时代,企业内部协作和沟通变得愈发多元化和重要。与此同时,随着数据泄露和信息安全风险的威胁不断升级,企业音视频沟通在各个业务场景中的广泛应用。为了提高工作效率,实现信息共享与协同办公,保证…

CSP的理解与绕过

文章目录 前言CSP简介CSP如何工作CSP指令CSP指令值 例题[AFCTF 2021]BABY_CSP 前言 刚学习完xss,把xsss-labs靶场都通了打算试试水,遇到此题[AFCTF 2021]BABY_CSP,借此机会学习下CSP CSP简介 Content Security Policy (CSP)内容安全策略&am…

Spring与Mybatis整合aop整合pageHelper分页插件

前言 Spring与MyBatis整合的意义在于提供了一种结合优势的方式,以便更好地开发和管理持久层(数据库访问)代码。 这里也是总结了几点主要意义 简化配置:Spring与MyBatis整合后,可以通过Spring的配置文件来管理和配置M…

行业追踪,2023-08-31

自动复盘 2023-08-31 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

Elasticsearch:自动使用服务器时间设置日期字段并更新时区

在大多数情况下,你的数据包含一个以 create_date 命名的字段。 即使没有日期字段,处理各种格式和时区的日期对数据仓库来说也是一个重大挑战。 与此类似,如果要检测变化的数据,则必须准确设置日期字段。 在 Elasticsearch 中还有…

Doris集群安装部署(1.2.4.1 release)

此文阅读需要有Linux和服务器硬件基础!某些内容写的不是特别细,如果常见的linux基础命令tar、uzip、mv、mkdir、系统包的安装等等,以文字带过了,这样可以减少文章篇幅。官方的安装部署方式一定要好好看一下,最好是尝试…

BL122:钡铼技术驱动,实现无缝Modbus到Profinet转换

钡铼技术BL122协议转换网关是一款专业的设备,用于将Modbus协议转换为Profinet协议。BL122采用了先进的嵌入式ARM MCU和基于Linux OS系统的开发,具备出色的性能和高度的稳定性。 BL122支持多种下行采集方式,包括Modbus RTU、Modbus TCP和Modbu…