Java有参构造和无参构造以及this

一、构造方法 

构造方法又叫构造器 (constructor) ,是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。它有几个特点:
1) 方法名和类名相同
2) 没有返回值
3) 在创建对象时,系统会自动的调用该类的构造器完成对象的初始化。
构造方法又叫构造器 (constructor) ,是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。它有几个特点:
1) 方法名和类名相同
2) 没有返回值
3) 在创建对象时,系统会自动的调用该类的构造器完成对象的初始化。

二、无参构造

[修饰符] 方法名(无形参列表){
方法体;
}
如果程序员没有定义构造器,系统会自动给类生成一个默认无参构造器 ( 也叫默认构造器), 一旦定义了自己的构造器 ,默认的构造器就覆盖了,就不能再使用默认的无参构造器。所以代码里面添加一个public Student(){}。
package cn.cnbdqn.subject1;

public class Student {
    public String name;
    public int age;
    public char gender;
    public String address;
    public  double height;
    public  double weight;
    public String hobby;
    //无参构造
    public Student(){}
    
//定义一个方法输出所有对象信息
    public void printInfo(){
        System.out.println("学生信息:姓名:"+name+",年龄"+age+",性别"+gender+",身高"+height+",体重"+weight+",爱好"+hobby);
    }
}

测试类:

package cn.cnbdqn.subject1;

public class Test {
    public static void main(String[] args) {
        Student stu=new Student();
        stu.name="张";
        stu.age=12;
        stu.gender='男';
        stu.address="合肥";
        stu.height=145.3;
        stu.weight=111.5;
        stu.hobby="刷痘印";
        stu.printInfo();

       
    }

}

无参构造测试时比较麻烦,可以用有参构造方法。

三、有参方法

在创建对象的时候完成属性的初始化操作。

语法:

[修饰符] 方法名(有形参列表){
方法体;
}
package cn.cnbdqn.subject1;

public class Student {
    public String name;
    public int age;
    public char gender;
    public String address;
    public  double height;
    public  double weight;
    public String hobby;
    //无参构造
    public Student(){}
//有参构造方法
    public Student(String name, int age, char gender, String address, double height, double weight, String hobby) {
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.address = address;
        this.height = height;
        this.weight = weight;
        this.hobby = hobby;
    }

    //定义一个方法输出所有对象信息
    public void printInfo(){
        System.out.println("学生信息:姓名:"+name+",年龄"+age+",性别"+gender+",身高"+height+",体重"+weight+",爱好"+hobby);
    }
}

如果没有this,那么就是name=name;等最后运行结果都是空,this是指当前的对象赋值,构造器的name,age,denger是局部变量,而不是属性。所以需要this来解决。简单来说哪个对象来调用,this就代表哪个对象。

测试类:

package cn.cnbdqn.subject1;

public class Test {
    public static void main(String[] args) {
        Student stu=new Student();
        stu.name="张";
        stu.age=12;
        stu.gender='男';
        stu.address="合肥";
        stu.height=145.3;
        stu.weight=111.5;
        stu.hobby="刷痘印";
        stu.printInfo();
        //有参构造测试
        Student stu2=new Student("张三",12,'男',"芜湖",123.5,56,"看美女");
        stu2.printInfo();

    }

}

四、This的注意事项

1) this 关键字可以用来访问本类的属性、方法、构造器
2) this 用于区分当前类的属性和局部变量
3) 访问成员方法的语法: this. 方法名 ( 参数列表 );
4) this 不能在类定义的外部使用,只能在类定义的方法中使用。

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值