Java学习之构造方法+块+this用法

类中第三个成员:---用来创建当前类的对象

    构造方法:

        1.作用:构造当前类的对象

        2.写法权限修饰符 返回值类型(当前类的类型,省略不写) 方法名[必须与类名一致](参数列表)[抛出异常]{

            创建一个对象(当前类);

            返回对象;

        }

        3.用法:通过new关键字调用

        4.构造方法特点:

            1.每一个类都有构造方法,若自己在类中没有定义,系统会默认提供无参数的构造方法,若在类中自己定义了构造方法,则默认无参数的构造方法即被覆盖

            2.构造方法存在方法重载

package code;

public class test {

    // 权限修饰符 类名一致的方法(参数列表) [异常]{方法体}
    public test(){
        System.out.println("test类的构造方法");
    }
    public test(String str){
        System.out.println("带String参数的构造方法");
    }

    public static void main(String[] args){
        //调用test中构造方法
        test t = new test("abc");
    }


}

        5.既然系统默认提供构造方法,为什么要自定义构造方法:

            在创建对象的同时,想要做一些默认提供的构造方法不会做的事情,这个时候我们可以自己定义构造方法

    this关键字的使用:当构造方法中属性与变量名重名,必须需要一个代替词代替对象
        1.是一个关键字(指代词) 代替的是某一个对象,是当前调用属性或方法时的那个对象

package code;

public class test {
    public String name;
    public int age;
    public String sex;

    // 权限修饰符 类名一致的方法(参数列表) [异常]{方法体}
    // 建议:若自定义带参数的构造方法,将系统提供的默认无参数构造方法一起写出来,构成构造方法的重载
    public test(){
        System.out.println("无参数构造方法");
    }

    public test(String name,int age,String sex){
        // 创建对象
//        name = name;//属性与变量重名了
//        age = age;
//        sex = sex;
        this.name = name;// this代替创建出来的对象
        this.age = age;
        this.sex = sex;
        System.out.println("姓名:"+name+", 性别:"+sex+", 年龄:"+age);
        // 返回了这个创建的对象
    }

    public static void main(String[] args){
        //调用test中构造方法
        test t = new test("LSK",18,"男");
    }

}

    2.this既然代替的是对象,那this可以调用什么

        1.this可以调用属性,方法

        2.this调用构造方法只能在一个构造方法里调用另一个构造方法,写法会省略构造方法名,因为规定构造方法名必须与类名一致,而且必须在程序的第一行

    3.this调用的过程可以放置在类中任何成员位置

package code;

public class test {
    public String name;
    public int age;
    public String sex;

    {
        this.dowork();
        System.out.println("普通的一个程序块1");
    }

    public test(){
        System.out.println("无参数构造方法");
    }

    public test(String name,int age,String sex){
        this();//省略了构造方法名
        this.dowork();
        this.name = name;// this代替创建出来的对象
        this.age = age;
        this.sex = sex;
        System.out.println("姓名:"+name+", 性别:"+sex+", 年龄:"+age);
    }

    public void dowork(){
        System.out.println("dowork方法");
    }

    public static void main(String[] args){
        //调用test中构造方法
        test t1 = new test("LSK",18,"男");
    }


}

类中第四个成员 程序块(无修饰符,无参数,无返回值,无名字的方法)

    1.作用:跟普通方法一样,是做事情的

    2.写法:可以认为程序块是一个没有修饰符,没有参数,没有返回值,没有名字的特殊方法

    3.用法:块也需要调用才能执行,我们自己调用不到(没有名字),每一次我们在调用构造方法之前,系统会帮我们自动调用一次程序块

    4.特点:没有重载,但是可以创建多个程序块

    5.想在创建对象之前执行某个操作就是用程序块

package code;

public class test {
    public String name;
    public int age;
    public String sex;

    {
        System.out.println("普通的一个程序块1");
    }
    {
        System.out.println("普通的一个程序块2");
    }
    {
        System.out.println("普通的一个程序块3");
    }

    public test(String name,int age,String sex){
        // 创建对象
//        name = name;//属性与变量重名了
//        age = age;
//        sex = sex;
        this.name = name;// this代替创建出来的对象
        this.age = age;
        this.sex = sex;
        System.out.println("姓名:"+name+", 性别:"+sex+", 年龄:"+age);
        // 返回了这个创建的对象
    }

    public static void main(String[] args){
        //调用test中构造方法
        test t1 = new test("LSK",18,"男");
        test t2 = new test("LSK",18,"男");
    }


}

总结:

类中四个成员:

    1.属性----静态描述特征 权限修饰符 [特征修饰符] 属性类型 属性名字 [=值];

    2.方法----动态描述行为 权限修饰符 [特征修饰符] 返回值类型 方法名字([参数列表]) [抛出异常] {[方法体]}

    3.构造方法----创建当前类对象 权限修饰符 与类名相同的方法名([参数列表])[抛出异常]{方法体}

    4.程序块----在构造方法之前调用的一个无修饰符,无参数,无返回值,无名字的方法

    5.this关键字的使用:用来代替某个对象,可以调用一般属性或一般方法,放置在任何类成员中,可以调用构造方法,只能放在另一个构造方法内,只能放在程序的第一行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值