java中构造方法全解

 

java构造方法

1.构造方法的定义:

 

 

   构造方法是类在生成对象时,系统自动调用的方法(如果类中未声明构造方法,则调用默认的构造方法:new 类名();

 

 

2.构造方法目的:

   构造方法是为了实现特定对象的实例化过程

 

 

eg:
   public class gouzao1 {
public static void main(String[] args){
student s = new student();//调用无参的构造方法,输出结果为:无参构造方法
student s1 = new student(2,"chang");//调用两个参数的构造方法
        student s2 = new student(2);//编译出错,因为构造方法前用private修饰,private代表的是私有,只在本类中有效
//System.out.println(s);//输出的为new student()在堆内存中的地址
}
}
class student
{
private student(int age)
{
System.out.println("传递一个参数的构造方法!");
}
public student()
{
System.out.println("无参构造方法!");
}
student(int age,String name)
{
System.out.println("两个参数的构造方法!");
}
        student(String name,int age)
{
System.out.println("和上面那个是不同的构造方法!");
}

}
   在上例中,student为类student;s是引用变量,代表对象的引用;new student()是调用无参的构造方法。
在对象初始化时,各个数据在内存中空间的分配是这样的:首先,在栈内存中划分一个区域,存放引用变量s,其次在堆内存中划分区域存放new student();并将new 生成的对象的地址赋给s,这样s就指向new生成的对象了。上例中,注释掉的部分System.out.println(s),输出为student@1c78e57,代表的就是在内存中的地址。

 

 

3.构造方法的禁忌:

 

   a.构造方法通常用public或default修饰(用private修饰无法生成对象,如上。用protected修饰只能在一个包一个类,子类中使用);
   b.构造方法名必须与类名相同;
   c.构造方法没有返回值类型,void也不行;
   d.构造方法可以有任意多个参数;

 

   e.构造方法中参数相同,顺序不同,是不同的构造方法!

4.构造方法的重载现象;

   同名的参数不同的构造方法共存的现象;

 

5.构造方法之间的调用;
  eg:
   
   class student
   {
student(int age)
{
System.out.println("传递一个参数的构造方法!"+ age);
}
protected student()
{
System.out.println("无参构造方法!");
}
student(int age,String name)
{
this(age);//调用一个参数的构造方法,!!!此时this(),必须为第一行!!!
System.out.println("两个参数的构造方法!");
}

}

 

  输出结果为:

 

  无参构造方法!

 

  传递一个参数的构造方法!2

 两个参数的构造方法!

6.继承中的构造方法:

   详情见下一篇;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值