作业小结——2020.4.6(构造方法,this,static)

本文详细介绍了Java中的构造方法、this关键字和static关键字。构造方法是在对象创建时自动调用的方法,用于对象初始化。this关键字用于区分成员变量和局部变量,以及在构造方法中调用其他构造方法。static关键字则用于修饰变量和方法,使得它们可以在类级别上共享,无需创建对象即可访问。同时,static关键字还用于静态代码块,它在类加载时执行一次。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

构造方法

  • 概念:对象被创建时会调用的方法,对象在被创建时,也就是在被new时会自动调用构造方法。

在这里插入图片描述输出“我被调用了”。

怎么定义构造方法

在这里插入图片描述

  1. 构造方法可以有参数也可以无参数。
  2. 构造方法无返回值,也不需要声明void等关键字。
  3. 构造方法名必须与类名相同。

总结

对象的构造方法:
对象在被创建时,也就是被new的时候,会自动调用构造方法。
可以在一个构造方法中调用另一个构造方法
this(Employee # , s) ?不确定
1. 在构造方法中可以做对象初始化操作。 (不太理解)
2. 构造方法与对象的方法不同,它是对象创建时自动调用的。
3. 构造方法可以有参数也可以无参数。
4. 构造方法无返回值。
5. 构造方法名必须与类名相同。
6. 如果定义的类没有声名构造方法,对象在创建时默认使用空的构造方法。

this关键字

在上述代码中可以发现,在构造方法中name和age并没有设置成功,stu对象的name属性和age属性的值还是默认定义好的张三和18。
在上述代码中可以发现,在构造方法中name和age并没有设置成功,stu对象的name属性和age属性的值还是默认定义好的张三和18。

为解决这个问题需要知道1.什么是成员变量 2.this关键字

成员变量

成员变量就是对象的属性:

this 关键字

关于this关键字,你只需要记住它就是指自身,this即代表自己,this.属性访问的是自己的属性、this()访问的就是自己的无参构造方法。
例1.this.属性
在这里插入图片描述
例2. this.属性,this()
在这里插入图片描述输出:

I am

张三

可以发现,如果我们把上述this.name = name改为 name = name,那么最终的结果就变成了:

I am

null

this()调用的是Person自己的无参构造方法,this.name访问的是Person对象自身的name,而方法参数中的name则表示方法传入的值。

  • this负责指向本类中的成员变量
  • 在构造函数中想要调用成员变量可以在前面加上this.
  • 在方法中形参的优先级高于成员变量的优先级
  • this 可以代替本类中的构造函数
  1. 指向本类中的成员变量
  2. 指向本类中的成员方法
  3. 可以当做构造函数使用

static关键字

static关键字的意思

static是静态的意思,是一个修饰符,就像是一个形容词,是用来形容类,变量,方法的。

static修饰变量,这个变量就变成了静态变量,修饰方法这个方法就成了静态方法,

static关键字方便在没有创建对象的情况下来进行调用(方法/变量)。

static关键字的作用

static关键字你可以理解为是一个形容词,一般是用来形容类、方法、变量,代码块,还有一个作用是用来静态导包,现在只讨论它的三个用法。

1. 修饰变量
不使用static关键字访问对象的属性:
在这里插入图片描述
使用static关键字访问对象的属性:
在这里插入图片描述
注意: 如果一个类的成员变量被static修饰了,那么所有该类的对象都共享这个变量。无论这个类实例化多少对象,它的静态变量只有一份拷贝。

如果:在这里插入图片描述
输出:

李四

李四

李四

2.修饰方法
用static关键字修饰的方法叫做静态方法。静态方法我们已经用过,它有一个特点相信你已经很熟悉,那就是不需要创建对象就可以直接使用

如:
在这里插入图片描述
注意:

  1. 静态方法不能使用类的非静态变量;
    在这里插入图片描述
  2. 静态方法可以直接调用静态方法,但是调用普通方法只能通过对象的实例才能调用。
    在这里插入图片描述
    3.静态代码块
    先来看一段静态代码块的运行效果:
    在这里插入图片描述
    输出结果:

我被调用了

上图中static{ }就是一个静态代码块。
我们在main方法中没有编写任何代码,可是运行的时候,程序还是会输出我被调用了,由此我们可以发现静态代码块是不需要依赖main方法就可以独立运行的。

关于静态代码块你只需要记住一句话:在类被加载的时候运行且只运行一次。

静态代码块中变量和方法的调用也遵守我们之前所说的规则,即只能直接调用静态的属性和方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值