关于this和构造器的理解

1.类中的this关键字表示当前对象的引用。它可以被用于解决变量名冲突问题,或者在一个方法中调用类的另一个方法。如果在方法中没有明确指定要使用哪个变量,那么编译器就会默认使用this关键字来表示当前对象。

下面是一个输出this关键字的示例代码:

public class MyClass {
    private int num;

    public MyClass(int num) {
        this.num = num;
    }

    public void printNum() {
        System.out.println("num = " + this.num);
    }
}
public class ThisTest {
    public static void main(String[] args) {
        MyClass myClass = new MyClass(5);
        myClass.printNum();
    }
}

在上面的代码中,构造方法中的参数num和类属性num同名,为了避免变量名冲突,我们使用了this关键字来表示类属性num。在printNum方法中,我们使用this关键字来表示当前对象调用的属性num。

2.构造器首先,构造方法是一种特殊的方法,用来创建一个对象并初始化对象的属性。每个类都必须有至少一个构造方法,因为它负责初始化对象的状态。

构造方法的名字必须和类名完全相同,没有返回值类型,包括void。当使用new关键字创建一个对象时,Java编译器会根据参数的类型和数量来匹配合适的构造方法,并自动调用该方法来初始化对象的状态。

构造方法可以有不同的访问修饰符,例如public、private、protected和默认(即不声明访问修饰符)。如果声明为private,该构造方法只能在本类中被访问,其他类无法调用该构造方法,这种情况也被称为私有构造方法

构造方法可以接受参数,这些参数通常用来为对象的属性赋初值。在调用构造方法时,实参传递给形参,构造方法体内使用这些参数来初始化对象的属性。如果没有给出构造方法,Java会默认提供一个无参构造方法,该方法不执行任何操作,仅仅是初始化对象属性的默认值

当一个类有多个构造方法时,Java可以根据参数的不同来自动调用相应的构造方法,这被称为构造方法的重载(overloading)。

下面是一个使用构造方法的示例代码:

public class Book {
    private String title;
    private String author;
    private int pages;

    public Book(String title, String author, int pages) {
        this.title = title;
        this.author = author;
        this.pages = pages;
    }

    public void printInfo() {
        System.out.println("Title: " + this.title);
        System.out.println("Author: " + this.author);
        System.out.println("Pages: " + this.pages);
    }
}

在上面的代码中,Book类有一个构造方法,用来初始化Book对象的属性。在printInfo方法中,我们打印了Book对象的属性。我们可以通过下面的代码来创建一个Book对象并调用printInfo方法:

public class ConstructorTest {
    public static void main(String[] args) {
        //无参构造
        Book book1 = new Book();
        System.out.println(book1);
        book1.printInfo();

        //有参构造
        Book book = new Book("Java Programming", "John Smith", 300);
        System.out.println(book);
        book.printInfo();



    }
}

输出结果为:

如果没有给出构造方法,Java会默认提供一个无参构造方法,该方法不执行任何操作,仅仅是初始化对象属性的默认值

通过上面的示例代码,我们可以看到构造方法的作用是在创建对象时对对象进行初始化,以确保对象在使用时能够正常、准确地工作。

猜你喜欢

转载自blog.csdn.net/Flying_Fish_roe/article/details/134778110