当前位置:   article > 正文

构造方法以及构造方法的重载_构造方法重载

构造方法重载

一.构造方法(constructor)

构造方法(也叫构造器)是一种特殊的方法,它的作用是对象的初始化。构造方法通常在类中,有参构造和无参构造两大构造方法。无参构造的构造方法由系统自动创建,也可由自己手动创建。有参的构造方法需由自己手动创建,当自己手动创建有参构造方法时,如果需要无参构造方法,也需自己手动创建。构造器的名称应该与类名一致,JAVA通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。

构造方法结构:

  1. [修饰符] 类名 (形参列表){
  2. //多条语句
  3. }

在建立构造方法时,应注意以下几点:

1.构造方法名必须与类名一致。

2.通过关键字new来调用。

3.无参构造方法由系统自动创建,有参构造方法则需要手动创建。如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加!

4.构造方法不能够加返回值。其自动返回初始化对象的地址。构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。

  1. class Point{ //创建一个类,类中包含对象的属性
  2. double x,y; //属性
  3. public Point double(_x,_y); //定义构造方法,方法名必须与类名Point相同,变量_x,_y
  4. { //将构造方法的变量赋给对象的属性,即将对象初始化
  5. x=_x; //赋值是通过对象返回的地址来将其初始化的
  6. y=_y;
  7. }
  8. void double GetDistance(Point p){ //定义一个GetDistance方法
  9. return Math.sqrt.((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)) //返回两点之间的距离值
  10. }
  11. }
  12. public class TestConstructor {//创建一个类
  13. public static void main(String[] args){
  14. Point p = new Point(3.0,4.0); //以类为模板创建对象
  15. Point origin = new Point(0.0,0.0);
  16. System.out.println(p.GetDistance(origin)); //输出返回值
  17. }
  18. }

输出:5.0

二.构造方法的重载

构造方法的重载与方法的重载相同,都是方法名相同而方法参数顺序,类型或个数不同。多个对象的初始化需要创建多个构造方法。方法名相同而表示含义不同,这叫做构造方法的重载。

  1. public class User { //定义一个public类
  2. int id; //field
  3. String name;
  4. int password;
  5. }
  6. public User(int id,String name){ //创建一个构造方法
  7. super(); //构造方法开头通常是super()
  8. this.id = id; //此处用this来表示创建一个对象,由就近原则可知如果没有this,则这两个id都表示构造方法中的局部变量id。而想要将对象初始化,即将我们想要赋的值传递给对象(即对象中的属性id),就需要使用this。如果构造方法中形参名与属性名相同时,需要使用this关键字区分属性与形参,即区分局部变量和成员变量。this.id 表示属性id;id表示形参id。
  9. this.name = name;
  10. }
  11. public User(int id,String name,int password){ //创建一个构造方法
  12. this.id = id;
  13. this.name = name;
  14. this.password = password;
  15. }
  16. public User(int id,int password){ //创建一个构造方法
  17. this.id;
  18. this.password;
  19. }
  20. pubilc static void main(String[] args){
  21. User user1 = new User(123,"Jack"); //创建一个对象
  22. User user2 = new User(123,"Jack",123456); //创建一个对象
  23. User user3 = new User(123,123456); //创建一个对象
  24. System.out.println(user1.id)
  25. }
  26. }
  27. //输出:123

  此处用this来表示创建一个对象,由就近原则可知如果没有this,则这两个id都表示构造方法中的局部变量id。而想要将对象初始化,即将我们想要赋的值传递给对象(即对象中的属性id),就需要使用this。如果构造方法中形参名与属性名相同时,需要使用this关键字区分属性与形参,即区分局部变量和成员变量。this.id 表示属性id;id表示形参id。

 欢迎各位猿友批评指正。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/209319
推荐阅读
相关标签
  

闽ICP备14008679号