码迷,mamicode.com
首页 > 其他好文 > 详细

构造方法

时间:2019-11-09 13:41:06      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:auth   通过   color   过程   默认   row   com   时间   author   

package cn.gl.ObjectLearn;

/**
 *     一、构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。
 * 每当类实例化-一个对象时,类都会自动调用构造方法。
 * 构造方法,就是创建类的对象过程中运行的方法,也就是对象的初始化方法。
 * 注意:
 *         在定义构造方法时,构造方法没有返回值,但这与普通没有返回值的方法不同,
 *         普通没有返回值的方法使用public void methodEx()这种形式进行定义,
 *         但构造方法并不需要使用void关键字进行修饰。
 *     二、在构造方法中可以为成员变量赋值,这样当实例化一个本类的对象时,
 * 相应的成员变量也将被初始化。如果类中没有明确定义构造方法,
 * 则编译器会自动创建一个不带参数的默认构造方法。
 * 注意:
 *         如果在类中定义的构造方法都不是无参的构造方法,
 *         则编译器:不会为类设置一个默认的无参构造方法,
 *         当试图调用无参构造方法实例化一个对象时,编译器会报错。
 *         所以只有在类中没有定义任何构造方法时,
 *         编译器才会在该类中自动创建一个不带参数的构造方法。
 *  三、this可以调用类的成员变量和成员方法,事实上this还可以调用类中的构造方法
 *  四、私有构造方法
 *  构造方法同其他方法一样,也可以用private修饰,私有的构造方法无法在本类外部使用,
 *  也就导致本类无法用new实例化,这样可以控制对象的生成。
* @author 冷夜雨花未眠 E-mail:787831425@qq.com
* @version 创建时间:2019年11月9日
 */
public class ObDemo5 {
    /*1 在类中定义一个无参构造方法
     * public ObDemo5(){    
    }*/
    /*2在类中定义一个有参构造方法
     * public ObDemo5(int a){    
    }*/
    public static void main(String[] args) {
        ObDemo5 ob1=new ObDemo5();//当注释1之后,创建对象没有报错,说明这个构造方法存在即编译器自动创建的
        MyTest e=new MyTest();
        MyTest e2=new MyTest(5);
        Books book=Books.librayBorrow();//不是new出来的
    }
}
class MyTest{
    int i;
    public MyTest(){
        this(1);//使用this调用本类构造方法

        /*i=1;
        System.out.println("有"+i+"个");*///这段代码效果和上面的this(1)效果是一样的
        }
    public MyTest(int i){
        this.i=i;//使用this调用本类成员变量
        System.out.println("i是:"+i+"个");
    }
}
class Books{
    private Books(){ //单例模式
        
    }
    static public Books librayBorrow(){
        return new Books();
    }
}

输出结果:

i是:1个
i是:5个

构造方法

标签:auth   通过   color   过程   默认   row   com   时间   author   

原文地址:https://www.cnblogs.com/gl0102/p/11824857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!