java_初始化与清理
来源:互联网 发布:李小龙死因知乎 编辑:程序博客网 时间:2024/05/06 15:36
1.构造器
通过调用构造器,确保每个对象都得到初始化。
在类的创建过程中,可以定义其构造器,这样在操作对象前其对应的构造器即会被自动调用
构造器才采用与类相同的名字,同C++中的构造函数相同,即便不写出,系统会自动为相应的类加上一个不含有任何操作的默认构造器
下面给出程序实例
import java.util.*;class tank{tank(){System.out.println("构造函数调用成功!");}}public class FirstStep{public static void main(String[] args){tank i=new tank();tank j=new tank();}}结果如下:
构造函数调用成功!
构造函数调用成功!
因为程序用有两个属于tank类的对象被创建,所以构造函数会被调用两次
当然作为构造函数,是可以含有参数的,方法同一般方法的写法一致,就不多说,构造器其本质就是方法,是与类绑定的方法,就像是买咖啡送汤匙一样,每买一份咖啡,就会有一个汤匙;
2.方法重载
简单而言就是相同的词含有不同的含义,在不同的条件下产生不同的作用,就像是猪头,一般来说是骂人的话,但是在情侣之间,就不一定要这样理解了。方法 的重载也一样,同一种方法在处理不同的问题时采用不同的处理方式,这就是方法重载
下面给出构造器的重载,上一节中已经说过,构造器本身就是方法,可以理解为函数的重载,重载的方式是多种多样的,有(1)有无参数(2)参数类型(3)参数个数
实例代码:
import java.util.*;class tank{tank(){System.out.println("一般的无参构造器!");}tank(int i){System.out.println("以整型"+i+"为形参的构造器");}tank(String a){System.out.println("以字符串"+a+"为形参的构造器");}tank(int a,int b){System.out.println("同时含有两个整型"+a+" "+b+"的形参的构造器");}}public class FirstStep{public static void main(String[] args){tank i=new tank();tank j=new tank(1);tank k=new tank("Hello");tank q=new tank(1,2);}}运行结果:
一般的无参构造器!
以整型1为形参的构造器
以字符串Hello为形参的构造器
同时含有两个整型1 2的形参的构造器
同理,非构造函数的重载方法也是相同的,主要重载方式与前三种相同
稍注意的是在重载函数中,若给的形参在重载函数中找不到与之对应的具有同类型形参的函数
那么给出的形参类型会发生向上转化比如如果将上述的tank(int a)改成tank(float a)那么第一个对象i被创建后输出的语句会变成“以整型1.0为形参的构造器”也就是说给出的形参被转化型了float型,这就好比是一群人去组团旅游,买门票的时候单人票价20,团购价10人共160元,但是这群人只有9个人,很明显虽然人数不足,直接把他当成10不就好了,毕竟这样更加省钱
Attention:
若是char型的数据找不到,会被提升为int型也就是原char型的ASCII码,比如a会被转化成97
可能有人会想到根据方法的返回值类型来重载函数,但是若是单纯的调用函数比如f(),无法区分它的返回值类型,所以这种方法是行不通的
4.this 关键字
在方法的内部实现对当前的对象的引用,这时这要用到this关键字
例如在方法的最后需要返回这个对象进一步操作,这时就可以使用this关键字
举个例子
import java.util.*;class tank{static int i=1;tank f(){i++;return this;}void show(){System.out.println("i="+i);}}public class FirstStep{public static void main(String[] args){tank j=new tank();j.f().f().f().show();}}运行结果:
i=4;
从例子中可以看出this所代表的的就是当前被操作的对象
- java_初始化与清理
- 初始化与清理之一 (初始化)
- 初始化与清理
- CH5 初始化与清理
- 4.初始化与清理
- 初始化与清理
- Java初始化与清理
- 初始化与清理
- 初始化与清理
- 对象初始化与清理
- 初始化与清理
- 初始化与清理
- java 初始化与清理
- java 初始化与清理
- Java 初始化与清理
- Java初始化与清理
- 初始化与清理
- 初始化与清理_01
- Android Studio下做打包apk加代码混淆
- Linux移植的一般过程
- OCP-1Z0-053-200题-36题-615
- 如何分析Windows的dump文件 (usermode篇)
- Mac下Andriod开发环境的搭建
- java_初始化与清理
- 感想
- tomcat7安装
- weblogic(2)
- ural 1297 后缀数组求最长回文串
- HTML4和HTML5之间的10个主要不同
- weblogic(3)
- 字符正则匹配
- ubuntu小记