java构造器入门_JAVA菜鸟入门篇 - Java构造器 (十一)

构造器

又称为 构造方法,constructor

构造器用于构造该类的实例。

格式如下:

[修饰符]类名(形参列表){

//n条语句

}

是一种特殊的方法:

- 通过new关键字调用!

- 构造器虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类),不会再构造器里调用return。

- 如果我们没有定义构造器,则系统会自动定义一个无参的构造函数。如果以定义则编译器不会添加无参的构造方法!

- 构造器的方法名和类名一致!

- 作用:构造该类的对象,经常也用来初始化对象的属性

补充:构造器和类的方法中"this"的用法

构造器和方法使用关键字this有很大的区别。方法引用this指向正在执行方法的类的实例。静态方法不能使用this关键字,因为静态方法不属于类的实例,所以this也就没有什么东西去指向。构造器的this指向同一个类中,不同参数列表的另外一个构造器

构造器和方法使用关键字this有很大的区别。方法引用this指向正在执行方法的类的实例。静态方法不能使用this关键字,因为静态方法不属于类的实例,所以this也就没有什么东西去指向。构造器的this指向同一个类中,不同参数列表的另外一个构造器

示例:

定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。要求如下:

- 可以生成具有特定坐标的点对象。

- 提供可以设置三个坐标的方法。

提供可以计算该“点”到另外点距离平方的方法。

public class Point {

double x,y,z;

//通过构造方法初始化对象的属性

public Point(double x,double y, double z){

x =x;

y = y;

z = z;

}

//设置三个坐标的方法

public void setX(double _x){

x = _x;

}

public void setY(double _y){

y = _y;

}

public void setZ(double _z){

z = _z;

}

/**

* 计算该点到另外点的距离

* @param p

* @return

*/

public double distance(Point p){

double result = Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)+(z-p.z)*(z-p.z));

return result;

}

public static void main(String[] args) {

Point p = new Point(3,4,8);

Point p2 = new Point(200,40,80);

p.setX(10);

System.out.println(p.x);

System.out.println(p.distance(p2));

}

构造器总结:

- 构造器负责类中成员变量(域)的初始化。

- 实例构造器分为缺省构造器和非缺省构造器。缺省构造器是在一个类没有声明任何构造器的情况下,编译器强制为该类添加的一个无参数的构造器,该构造器仅仅调用父类的无参数构造器。Object是所有类的根类,就算类在定义时没有实现extends,类的构造器默认第一句是:super();

- 构造器在继承时需要特别的注意,为了保证父类成员变量的正确初始化,子类的任何构造器默认的都必须调用父类的某一构造器,具体调用哪个构造器要看构造器的初始化参数列表。如果没有初始化参数列表,那么子类的该构造器就调用父类的无参数构造器;如果有初始化参数列表,那么子类的该构造器就调用父类对应的参数构造器。

本文参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值