当前位置: 首页 > news >正文

网站目标定义专业室内设计 网站

网站目标定义,专业室内设计 网站,快速做网站的技术,织梦网站程序模板下载地址系列文章目录 能看懂文字就能明白系列 C语言笔记传送门 #x1f31f; 个人主页#xff1a;古德猫宁- #x1f308; 信念如阳光#xff0c;照亮前行的每一步 文章目录 系列文章目录#x1f308; *信念如阳光#xff0c;照亮前行的每一步* 前言一、this的使用this引用的特… 系列文章目录 能看懂文字就能明白系列 C语言笔记传送门 个人主页古德猫宁- 信念如阳光照亮前行的每一步 文章目录 系列文章目录 *信念如阳光照亮前行的每一步* 前言一、this的使用this引用的特性 二、对象的构造和初始化成员变量和局部变量之间的差别 三、如何初始化对象就地初始化通过构造方法初始化构造方法的特性构造方法的调用 四、默认初始化 前言 本节目标掌握this引用构造方法的定义及其使用 本节重点都是重点 一、this的使用 先看一个例子 public class Date {public int year;public int month;public int day;public void setDay(int y, int m, int d){year y;month m;day d;}public void printDate(){System.out.println(year / month / day);}public static void main(String[] args) { // 构造三个日期类型的对象 d1 d2 d3Date d1 new Date();Date d2 new Date();Date d3 new Date(); // 对d1d2d3的日期设置d1.setDay(2020,9,15);d2.setDay(2020,9,16);d3.setDay(2020,9,17); // 打印日期中的内容d1.printDate();d2.printDate();d3.printDate();} }以上代码定义了一个日期类然后main方法中创建了三个对象并通过Date类中的成员方法对对象进行设置和打印代码整体逻辑非常简单应该没有任何问题。 但是细思之下有以下两个疑问 形参名不小心与成员变量相同 public void setDay(int year, int month, int day){ year year; month month; day day; }这样写的话我们可能就有这些疑问了那函数体中到底是谁给谁赋值成员变量给成员变量参数给参数参数给成员变量成员变量参数估计自己都搞不清楚了。 三个对象都在调用setDate和printDate函数但是这两个函数中没有任何任何有关对象的说明setDate和printDate函数如何知道打印的是哪个对象的数据呢 接下来有请 this登场 this引用指向当前对象成员方法运行时调用该成员方法的对象在成员方法中所有成员变量的操作都是通过该引用去访问。只不过所有的操作对用户是透明的即用户不需要来传递编译器自动完成在后面要习惯使用this。 public class Date { public int year; public int month; public int day; public void setDay(int year, int month, int day){ this.year year; this.month month; this.day day; } public void printDate(){ System.out.println(this.year / this.month / this.day); } } public static void main(String[] args) { Date d new Date(); d.setDay(2023,12,28); d.printDate(); }注意this引用的是调用成员方法的对象 this引用的特性 this的类型对应类类型引用即哪个对象调用就是哪个对象的引用类型this只能在成员方法中使用在成员方法中this只能引用当前对象不能再引用其他对象this是成员方法第一个隐藏的参数编译器会自动传递在成员方法执行时编译器会负责将调用成员方法对象的引用传递给该成员this来负责接收如上图所示 二、对象的构造和初始化 成员变量和局部变量之间的差别 在Java方法内部定义一个局部变量时局部变量必须初始化局部变量是声明在方法中的否则会编译失败C语言则可以 例如 对于上述的代码你可以声明没有值的a但如果想要使用时编译器就会报错而想要上面的代码编译通过只需要给变量a初始化即可 如图 而对于成员变量那可就不一样了在未初始化成员变量的时候编译器仍然可以编译运行注意成员变量是声明在类内而不是方法中 这是为什么呢后面会介绍哒 三、如何初始化对象 那到底如何初始化对象呢在Java中初始化对象的方法有很多种且听小弟慢慢道来 就地初始化 顾名思义在声明变量的时候就赋予变量的值这跟初始化局部变量一样在实际中就地初始化其实比较少除非有特殊业务需求比如任何一次对象的实例化之后都期望这个对象叫dada年龄为20 当然我们也可以借助方法来帮助我们完成初始化 通过构造方法初始化 构造方法也称构造器是一个特殊的成员方法名字必须与类名相同在创建对象时由编译器自动调用并且在整个对象的生命周期只调用一次构造方法也是定义在类内 如图是一个带两个参数的构造方法 如图是一个不带参数的构造方法 上述的两个构造方法名字相同参数列表不同因此构成了方法重载。 特别注意的是构造方法的作用就是对对象中的成员进行初始化并不负责给对象开辟空间。 构造方法的特性 名字必须和类名相同没有返回值类型设置为void也不行创建对象时由编译器自动调用并且在对象的生命周期内只调用一次构造方法可以重载用户可以根据自己的需求提供不同参数的构造方法 重点 如果我们没有自己定义任何一个构造方法编译器会生成一份默认的构造方法生成的默认构造方法一定是无参的。 它长这样 但是 如果我们一旦写了任何一个构造方法的时候Java就不会提供这个默认的构造方法了救急不救穷什么意思呢 在上面的代码中我们自己定义了一个构造方法那么Java就不会提供一个无参的构造方法了我们需要把参数传递给构造方法才不会报错 如图 构造方法的调用 那在程序中这些构造方法是什么时候被调用的呢 我们用代码来检验一下 如图所示只有在实例化对象的时候才被调用且在整个对象的生命周期内只调用一次。 在构造方法中可以通过this调用其他构造方法来简化代码注意是在构造方法中才可以 在上面的代码中可以在无参数构造方法中通过this调用带有两个参数的构造方法给成员变量初始值特别注意的是this(“zhangsan”,18)必须是构造 方法中的第一条语句否则编译器会报错。 如图所示 四、默认初始化 在开头我们讲述了局部变量和成员变量的差别那为什么局部变量在使用时必须要初始化而成员变量可以不用呢 要搞清楚这个情况就需要知道 new 关键字背后所发生的一些事情 在程序层面只是简单的一条语句在JVM层面需要做好多事情下面简单介绍下 检测对象对应的类是否加载了如果没有加载则加载为对象分配内存空间处理并发安全问题比如多个线程同时申请对象JVM要保证给对象分配的空间不冲突初始化所分配的空间即对象空间被申请之后对象中包含的成员已经设置好了初始值比如 数据类型默认值byte0char‘\u0000’short0int0long0Lbooleanfalsefloat0.0fdouble0.0referencenull 设置对象头信息关于对象内存模型后面会介绍调用构造方法给对象中各个成员赋值
http://www.zqtcl.cn/news/65973/

相关文章:

  • 大气公司网站源码桂电做网站的毕设容易过嘛
  • 做礼品贸易好的网站北京建站开发
  • 邢台网站制作公司哪家专业企业微信管理
  • 做外语网站网站收录教程
  • 贵阳网站建设在哪里泉州网站制作套餐
  • 重庆网站建设重庆零臻科技行wordpress无法上传exe
  • 网站建设钱上海城隍庙简介
  • 深圳小型网站建设管理平台登录界面
  • 网站建设论文文献门户网站设计要点
  • 怎么做企业网站优化需要多少钱wordpress文章发布软件
  • 三只松鼠的网站建设的意义网站建设开票单位
  • 音乐应用网站模板群辉怎么做网站
  • 北京市通信管理局 网站备案大连开发区网络公司
  • 青岛建网站泉州百度开户
  • 淄博公司网站建设价格360推广平台登录入口
  • 吉林省建设行业继续教续网站下载百度语音导航地图
  • 一个新的网站怎么做宣传营销网站建设联系方式
  • 为什么大型网站都用phpwordpress无刷新评论
  • 宿松县住房和城乡建设局网站建设很行官方网站
  • wordpress建站前端培训会网站建设
  • 一流的低价网站建设室内设计效果图的软件
  • 华为一站式服务建站可以做女的游戏视频网站
  • 专业网站建设代理商免费网站模
  • 做网站如何买量上海史特网站建设
  • 门户网站制作公司开发公司空置房拨款合同
  • 做爰全过程免费的视频网站有声音top的域名网站
  • 北京专业的网站建设网站tdk设置界面
  • 网站内部链接怎么做网络营销课程介绍
  • 成都 企业网站设计wordpress加百度一下
  • 现在的官方网站怎么做的国内wordpress免费主题