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

在这里插入图片描述

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 关键字不可省略,其他情况基本上都可以省略。

本期推荐

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_53072519/article/details/130085060
今日推荐