赞
踩
构造方法(也叫构造器)是一种特殊的方法,它的作用是对象的初始化。构造方法通常在类中,有参构造和无参构造两大构造方法。无参构造的构造方法由系统自动创建,也可由自己手动创建。有参的构造方法需由自己手动创建,当自己手动创建有参构造方法时,如果需要无参构造方法,也需自己手动创建。构造器的名称应该与类名一致,JAVA通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。
构造方法结构:
- [修饰符] 类名 (形参列表){
- //多条语句
- }
在建立构造方法时,应注意以下几点:
1.构造方法名必须与类名一致。
2.通过关键字new来调用。
3.无参构造方法由系统自动创建,有参构造方法则需要手动创建。如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加!
4.构造方法不能够加返回值。其自动返回初始化对象的地址。构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。
- class Point{ //创建一个类,类中包含对象的属性
- double x,y; //属性
- public Point double(_x,_y); //定义构造方法,方法名必须与类名Point相同,变量_x,_y
- { //将构造方法的变量赋给对象的属性,即将对象初始化
- x=_x; //赋值是通过对象返回的地址来将其初始化的
- y=_y;
- }
- void double GetDistance(Point p){ //定义一个GetDistance方法
- return Math.sqrt.((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)) //返回两点之间的距离值
- }
- }
- public class TestConstructor {//创建一个类
- public static void main(String[] args){
- Point p = new Point(3.0,4.0); //以类为模板创建对象
- Point origin = new Point(0.0,0.0);
- System.out.println(p.GetDistance(origin)); //输出返回值
- }
- }
输出:5.0
构造方法的重载与方法的重载相同,都是方法名相同而方法参数顺序,类型或个数不同。多个对象的初始化需要创建多个构造方法。方法名相同而表示含义不同,这叫做构造方法的重载。
- public class User { //定义一个public类
- int id; //field
- String name;
- int password;
- }
- public User(int id,String name){ //创建一个构造方法
- super(); //构造方法开头通常是super()
- this.id = id; //此处用this来表示创建一个对象,由就近原则可知如果没有this,则这两个id都表示构造方法中的局部变量id。而想要将对象初始化,即将我们想要赋的值传递给对象(即对象中的属性id),就需要使用this。如果构造方法中形参名与属性名相同时,需要使用this关键字区分属性与形参,即区分局部变量和成员变量。this.id 表示属性id;id表示形参id。
- this.name = name;
- }
- public User(int id,String name,int password){ //创建一个构造方法
- this.id = id;
- this.name = name;
- this.password = password;
- }
- public User(int id,int password){ //创建一个构造方法
- this.id;
- this.password;
- }
- pubilc static void main(String[] args){
- User user1 = new User(123,"Jack"); //创建一个对象
- User user2 = new User(123,"Jack",123456); //创建一个对象
- User user3 = new User(123,123456); //创建一个对象
- System.out.println(user1.id)
- }
- }
- //输出:123
此处用this来表示创建一个对象,由就近原则可知如果没有this,则这两个id都表示构造方法中的局部变量id。而想要将对象初始化,即将我们想要赋的值传递给对象(即对象中的属性id),就需要使用this。如果构造方法中形参名与属性名相同时,需要使用this关键字区分属性与形参,即区分局部变量和成员变量。this.id 表示属性id;id表示形参id。
欢迎各位猿友批评指正。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。