【Java 基础】构造方法和 this 关键字详解

本文详细介绍了Java中的构造方法及其作用,强调了构造方法的无返回类型特性,并提供了示例说明如何创建和使用构造方法。此外,文章还探讨了`this`关键字的用途,特别是在解决成员变量与局部变量同名问题时的作用。最后,提到了与Java编程相关的书籍推荐。
摘要由CSDN通过智能技术生成

在这里插入图片描述

Java 零基础入门到精通专栏持续更新中。通过本专栏你将学习到 Java 从入门进阶再到实战的全套完整内容,所有内容均将集中于此专栏。无论是初学者还是有经验的开发人员,都可从本专栏获益。


订阅专栏后添加我微信或者进交流群,进群可找我领取 前端/Java/大数据/Python/低代码/云原生 等全套视频课程,同时共同探讨问题、携手共进~


构造方法

构造方法也叫构造函数、构造器、构建器等。构造方法的作用是为类中的成员变量赋初始值并实现复用。要注意构造函数必须 与类同名,且 无返回值类型(不需要 void 关键字)。以下是一个构造方法示例,该方法写于类中与成员变量并列:

//类student
class student{
    String name;
    int age;
    String address;
    //构造方法
    student(){
        ...
    }
}

然后在构造方法的函数体中为成员变量赋初始值;

//类Student
class Student{
    String name;
    int age;
    String address;
    //构造方法
    Student(String name1,int age1,String address1){
        name = name1;
        age = age1;
        adress = address1;
    }
}

接下来创建对象并调用该构造方法,new 关键字后面的 Student(); 就是在调用构造方法。在创建对象的同时传入对应的参数值,无论有多少个对象都是同样的语法;

//类Student
class Student{
    String name;
    int age;
    String address;
    //构造方法
    Student(String name1,int age1,String address1){
        name = name1;
        age = age1;
        address = address1;
    }
}

//创建对象调用构造方法
Student zhangsan = new Studen("张三",23,"山西太原");
Student lisi = new Studen("李四",23,"山西运城");
...

如下实操案例,我们先创建一个类 Student,包含成员变量、方法以及构造方法;

在这里插入图片描述
然后创建类 ConsDemo,创建对象并调用 Student 中的构造方法。

在这里插入图片描述

this 关键字

this 用于 指代当前对象,也就是说哪个对象调用方法 this 就指代哪个对象。在《Java 编程思想》第四版第五章对 this 关键字是这样介绍的:this 关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。

在这里我们需要知道,类中的变量为成员变量,类中的方法中的变量为局部变量。局部变量只在该方法中适用,而成员变量可以在该类中的任何一个方法中使用,前提就是加 this. 关键字。

在这里插入图片描述
当使用 this 关键字后,类 Student 的新构造方法是这样的;

//类Student
public class Student {
    //成员变量
    String name;
    int age;
    String address;

    //构造方法
    Student(String name,int age,String address){
        //将此处的变量(局部变量)赋值给成员变量,this不可省略
        this.name = name; //此处的this.name就是指成员变量name
        this.age = age;
        this.address = address;
    }

    //方法
    void study(){
        System.out.println(this.name+"在学习!"); //此处的this可省略,因为它默认指的是成员变量
    }
    void myself(){
        System.out.println("大家好,我是"+this.name+",今年"+this.age+"岁了,我在"+this.address);
    }
}

当要在方法中使用成员变量且成员变量与局部变量同名时,this 关键字不可省略,其他情况基本上都可以省略。

本期推荐

在这里插入图片描述

评论 146
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

敬 之

您的鼓励就是我持续创作的动力~

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

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

打赏作者

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

抵扣说明:

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

余额充值