构造方法以及this的用法

构造方法:构造函数、构造器、构建器------------复用给成员变量赋值的代码

作用:给成员变量赋初值

规则:

  • 与类同名,没有返回值类型(连void都没有)
  • 在创建(new)对象时被自动调用
  • 若自己不写构造方法,则编译器默认提供一个无参构造方法, 若自己写了构造方法,则不再默认提供
  • 否需要参数,是看这个数据是否可以写死,如果不可以,则需要带参
  • 构造方法可以重载

this:指代当前对象,哪个对象调用方法它指的就是哪个对象

只能用在方法中

方法中访问成员变量之前默认有个this.

this的用法:

  •  this.成员变量名--------访问成员变量 --------当成员变量与局部变量同名时,访问成员变量时this不能省略
  • this.方法名()----------调用方法(一般不用)
  • this()-----------------调用构造方法(一般很少用)

 成员变量和局部变量是可以同名的,同名时访问成员变量时this不能省略

使用的时候默认采取的是就近原则

package object_exercise;

public class Student {
    String name;
    int age;
    String address;
    //有参的构造方法,给成员变量赋初值,没有返回值,与类同名,有参
    Student(String name,int age,String address){
        this.name=name;
        this.address=address;
        this.age=age;
        System.out.println("我的家庭住址在"+address+",我今年"+age+"我叫"+name);
    }
    //构造方法的重写,没有参数
    Student(){
        System.out.println("我的家庭住址在"+address+",我今年"+age+"我叫"+name);
    }
    public static void main(String[] args) {
        //调用的是有参的构造方法
        Student zs=new Student("zs",18,"bj");//此时this指zs
        Student ls=new Student("ls",18,"sh");//此时this指ls
        //调用的是重写的无参的构造方法,引用的默认值是null,基本类型的默认值是0;
        Student ww=new Student();
    }

}

上面我们是将代码写在了一个类中,这样做的目的是方便大家去看

正常来讲,代码都要写在两个类中,那么下面我们看一下,分开写是什么样的

首先我们先创建一个Stu类,包含Stu含参的构造方法

package object_exercise;
public class Stu {
    String name;
    int age;
    String address;
    Stu(String name,int age,String address){
        this.name=name;
        this.address=address;
        this.age=age;
    }
    void sayHi(){
        System.out.println("我叫"+name+"今年"+age+"家住"+address);
    }
}

然后我们在创建一个包含main的Student类,来实例化(new对象)对象,调用Stu的方法

public class Student {
    public static void main(String[] args) {
        Stu zs=new Stu("zs",18,"bj");//此时this指zs
        Stu ls=new Stu("ls",18,"sh");//此时this指ls
        zs.sayHi();
        ls.sayHi();

    }

}

上面两个类实现的效果和在一个类中实现的效果是一样的。

局部变量:属于方法的一般都是局部变量

成员变量:属于类的一半都是成员变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

謹言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值