java_初始化与清理

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所代表的的就是当前被操作的对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值