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

构造器 

   又称为 构造方法,constructor

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


   格式如下:
   [修饰符]类名(形参列表){
  //n条语句

   }


   是一种特殊的方法:

- 通过new关键字调用!

- 构造器虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类),不会再构造器里调用return。
- 如果我们没有定义构造器,则系统会自动定义一个无参的构造函数。如果以定义则编译器不会添加无参的构造方法!
- 构造器的方法名和类名一致!

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


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

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

构造器和方法使用关键字this有很大的区别。方法引用this指向正在执行方法的类的实例。静态方法不能使用this关键字,因为静态方法不属于类的实例,所以this也就没有什么东西去指向。构造器的this指向同一个类中,不同参数列表的另外一个构造器
   示例:
   定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。要求如下:
- 可以生成具有特定坐标的点对象。
- 提供可以设置三个坐标的方法。

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

<span style="white-space:pre">	</span>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();


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


本文参考:

百度百科 构造器定义

http://www.blogjava.net/weidagang2046/articles/3430.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值