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

编程知识 行业动态 更新时间:2024-06-13 00:22:04

构造器 

   又称为 构造方法,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/weidagang2046/articles/3430.html

更多推荐

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

本文发布于:2023-04-01 16:27:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/5b23f4e431025c106776fc3e8b24b7e6.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:菜鸟   入门篇   JAVA   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!