[Java教程]28.构造函数与代码块

忘是亡心i 2022-12-27 15:24 56阅读 0赞

Java教程专栏:https://blog.csdn.net/qq_41806966/category_9929686.html

hello,I’m shendi

QQ交流: 157862665


本节内容为Java语法部分的构造函数和代码块

目录

构造函数

代码块

静态代码块


构造函数

在之前,我们学过对象,我们可以把类当做一个模板,那么,对象就是使用这个模板所创造出来的物品

我们可以使用很多元素通过模板来创建对应元素的物品

这时候,构造函数就派上用场了

构造函数: 在创建对象的时候被执行,并且可以规定创建对象需要什么

语法

修饰符 类名(可选的参数) {对象被创建时执行}

例如

public Test() {}

如果一个类没有构造函数,那么在编译时会默认创建一个无参的构造函数,所以每一个类都会有至少一个构造函数

如果一个类有构造函数,在编译时,不会生成默认的构造函数

我们之前写的类里都没有写构造函数,于是我们只能通过默认的方式创建对象:

Test t = new Test();

之前,在源文件(.java文件)编译后,会给我们的类(class)自动生成如下构造函数

  1. public class Test() {
  2. // 默认的构造函数
  3. public Test() {}
  4. }

于是我们可以通过 new Test() 这样的方法来创建这个类的对象

所以,我们创建对象都是根据构造函数来创建.

当我们创建了构造函数,则需要通过对应构造函数来创造对象,例如有一构造函数

public Test(String str) {}

则只可以通过 new Test(“”); 这种形式来创建

构造函数也可以重载

接下来我们来尝试一下

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODA2OTY2_size_16_color_FFFFFF_t_70

2020121216083459.png

构造函数用于初始化对象

需要注意的是,构造函数是在对象被创建时执行,所以

如果在A类构造函数里创建B类对象,并且B类构造函数创建A类对象,这样就会形成一个死循环(递归)

代码块

代码块和构造函数一样,在对象被创建时执行

构造方法优先于代码块

通过 {} 来定义一个代码块

代码块内语法与方法一致

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODA2OTY2_size_16_color_FFFFFF_t_70 1

静态代码块

代码块可以是静态的

因为静态修饰的东西都是属于类的东西

所以,静态代码块与之前两种不同的是在类被加载的时候执行,且只执行一次

静态代码块优先于所有方法(包括静态方法)

需要注意的是,因为静态代码块是在类被加载时执行,所以只有执行完静态代码块才等于类已经被加载

测试优先级

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODA2OTY2_size_16_color_FFFFFF_t_70 2

20201212183746785.png

下一节学习包装类

发表评论

表情:
评论列表 (有 0 条评论,56人围观)

还没有评论,来说两句吧...

相关阅读