打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【Thinking in Java】初始化

前言

随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主要原因之一。

初始化”与“清理”,对应一个对象的生命周期。C++中引入“构造器”的概念,在创建对象时被自动调用的特殊方法。JAVA中同样采用这种特殊方法,并自动提供了“垃圾回收器”。

1、用构造器确保初始化

Java中“初始化”的动作,是由构造函数来完成的,他不会返回任何值,区别于返回void。构造函数的名字与类名完全相同,分为无参构造函数(通常叫做默认构造函数),有参构造函数。那么他是如何调用的呢?在new一个对象时,将会为对象分配存储空间,并调用相应的构造器。相当于Java在你创建对象时,帮助你自动调用了一个类似initialize的方法对对象进行初始化。确保在操作对象前,它已经被恰当的初始化了。

2、方法重载

在Java中,构造器是强制重载方法名的另一个原因。创建一个对象时,若想以不同的方法初始化,无参或者有参,那么这里就涉及到了方法重载。尽管方法重载是构造器所必需的,他也可以应用于其他方法。尽管方法重载具有相同的名字,但是在每个重载的方法中都有一个独一无二的参数类型列表(甚至参数类型顺序不同依然可以区分方法,但不建议这么做)。值得注意的是,根据返回方法区分方法重载是行不通的。下面一个很容易出错的两个场景:

两个方法重载,参数类型分别为int,double。传入的实参类型若有对应的形参类型时,会被正常调用。但是下面两种情况呢?

(1)当传入实参类型小于声明中的形参类型时:实际数据类型会被自动提升。

(2)当传入实参类型大于声明中的形参类型时:需要将类型进行转换,否则会报错。

3、默认构造函数

何为默认构造函数在前面已经说明,这里不再重复。值得注意一个问题,当类中并没有构造器时,编译器会自动帮你创建一个默认构造函数。但是当你已经定义了一个构造器(无论是否有参),编译器则不会帮助你自动创建默认构造函数。

4、this关键字

三个用法:

(1)表示对“调用方法的那个对象”的引用

(2)将当前操作对象传递给其他方法,放到方法的参数位置,例如:

class Apple{

Apple getPeeled(){ return Peeler.peel(this); }

}//削平果的动作

(3)用于在构造器中调用构造器,这种情况this是可以带参数的;值得注意的有几点(1)不能在非构造方法中是this(args)的方式调用构造函数(2)在一个构造函数中使用this,只能调用一个构造函数,一个以上会报错。

5、static关键字

static静态方法就是没有this的方法,某种意义上具有全局函数的语义,可以在没有创建任何对象的情况下,仅仅通过类本身来调用静态方法,所以他并不是“向对象发送消息”的方式来完成。static使用虽然可以避免内存分配开销,但是,static修饰后在第一次加载分配内存(方法区)后,并不会释放内存,知道程序结束。所以要避免出现大量static。

先就这些,明天再写喽

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
100多道经典的JAVA面试题及答案解析(2)
Java编程思想读书笔记(一)第1~13、16章
Java定义
java初学者:构造方法
Java类的方法总结(目前最火的9种方法总结梳理)
Java面向对象详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服