构造器的作用或者说有参构造和无参构造的区别

好的,说到构造器,我们先来看一什么是构造器:

最简单直白的话,当你要new一个对象的时候,必须要有构造器才能new出来,类里面默认有无参的构造器,看不到的,当我们要创建一个有参构造的时候,最好也把无参构造写出来。

 

  作用:

java中构造方法指的是:
与类名相同,无返回类型的方法,参数可以为空,也可以带参数。
比如一个 Point 类,private Point(){}这个就是无参数的构造方法。
private Dao(int x0, int y0){}这个就是带参数的构造方法。
作用:用来初始化 java 类,提供类的初始化和实例化,以便调用。
如果想在实例化对象的时候就为这个属性赋值的话,可以通过有参构造实现。

 

很显然,构造器的最大用处就是在创建对象时,对对象的实例进行初始化,那么构造器又分为有参构造和无参构造,下面我们就通过代码来理解有参和无参构造。

package sessionWork2;
/**
*默认的无参构造方法
*/
	public class Point {
			int x; 
			int y;
			
			public void movePoint(int dx,int dy){
//				this.x += dx;
				this.x = this.x+dx;
//				this.y += dy;
				this.y = this.y+dy;
			}
	
		public static void main(String[] args){
//为Point类new一个对象,因为类里面有无参构造器,看不到,所以才能new出来,
			Point p2 = new Point();
			p2.movePoint(2, 6);
			System.out.println("p2X轴的坐标为:"+p2.x+"\n" + "P2Y轴的坐标为 :" + p2.y);
			
		}
	}

输出结果如下,采用的是默认的无参构造,因为类里面有默认的无参构造器,所以我们可以new出来对象

下面我们来看下,如果我们创建一个有参构造的话,是否可以new出来无参的对象

	package sessionWork2;
	
	    /**
             *创建一个有参构造器,然后new一个无参对象
             */
		public class Point {
				int x; 
				int y;

	//			创建一个有参构造器
				public Point(int x0, int y0){
					this.x = x0;
					this.y = y0;
				}
				public void movePoint(int dx,int dy){
	//				this.x += dx;
					this.x = this.x+dx;
	//				this.y += dy;
					this.y = this.y+dy;
				}
		
			public static void main(String[] args){
				
				Point p2 = new Point();
				p2.movePoint(2, 6);
				System.out.println("p2X轴的坐标为:"+p2.x+"\n" + "P2Y轴的坐标为 :" + p2.y);
				
			}
		}

可以看到我们只有有参构造的时候是无法new出来无参的对象的

此时我们再创建一个无参构造器,发现我们new的无参对象不报错了,

	package sessionWork2;

		public class Point {
				int x; 
				int y;
				//创建一个无参构造器
				public Point(){		
					
				}
	                        //创建一个有参构造器
				public Point(int x0, int y0){
					this.x = x0;
					this.y = y0;
				}
			
				public void movePoint(int dx,int dy){
	//				this.x += dx;
					this.x = this.x+dx;
	//				this.y += dy;
					this.y = this.y+dy;
				}
		
			public static void main(String[] args){
				Point p1 = new Point(2,2);
				p1.movePoint(3,6);
				System.out.println("p1x轴的坐标为:" + p1.x +"\n" + "p1y轴的坐标为:"+p1.y);
				
				Point p2 = new Point();
				p2.movePoint(2, 6);
				System.out.println("p2X轴的坐标为:"+p2.x+"\n" + "P2Y轴的坐标为 :" + p2.y);
				
			}
		}

执行结果如下,看到这里你懂了什么是构造器了吗,什么事无参构造,有参构造,作用又是什么呢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值