JavaSE(构造方法)

在工具的合理性中,我们已经给row,col定了有效取值范围,但是当我们写出如下程序:

public class First {
	public static void main(String[] args) {
		SimplePoint pointOne = new SimplePoint();
		pointOne.printPoint();
	}
}

新生成的Point里row和col值都是0,明显不符合有效取值,细看会发现我们只是实例化了一个pointOne对象,并没有赋值。
在这段程序中SimplePoint()看格式应该是方法,实际这个就是构造方法。
但是在JAVA里,一个类如果没有书写构造方法,则JAVA的JVM在对该类实例化时,将自动执行一个由JVM提供的默认的构造过程;并且在这个过程中,会对类成员按如下规则赋初值:
0(byte类型、char、short、int、long)
0.0(float、double)
false(boolean)
其他所有类类型对象,都将赋值为null。

构造方法的基本规则:
1.构造方法必须与类同名;
2.构造方法不能声明其返回值;
3.构造方法只能被JVM自动调用,用户不能调用构造方法;
4.构造方法只能在类实例化对象时(被new时)被调用;
5.构造方法的主要目的,就是初始化对象诸成员的值。

当我们在类中书写一个构造方法:

public SimplePoint() {
	setRow(0);
	setCol(0);
}

新增构造方法之后,我们new出的实例就符合有效取值范围了。

关于new:

SimplePoint pointOne = new SimplePoint();

这句语句完成三组操作:(类比calloc函数)
1.申请SimplePoint类的一个实例空间;
2.完成对该实例空间中诸成员赋初值(调用构造方法);
3.将实例空间的首地址赋值给对象pointOne。

对指针的描述:
SimplePoint pointOne = new SimplePoint();
这句语句我们解释到第三步中,将实例空间首地址赋值给对象pointOne,可以说:
对象的本质就是指针变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔幻音

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值