2021-01-27

一个新手的java之旅(4)

  1. 关于构造方法
    当我们想要一个对象时,类名 引用变量名 = new 类名();这样即可创建一个对象。但我们也注意到我们调用方法时常常是标识符();类名也是标识符,那么(类名 引用变量名 = new 类名();)这里是有方法吗?这里是构造方法,就是产生对象的方法。但这个方法我们没定义啊。这个方法是被定义的,这个方法是系统自己默认的。这个方法是无参的。系统给赋初值。
    我们也可以自己定义一个有参构造方法,那系统就不会自己默认一个无参的构造方法了。这里要注意括号里的就不能为空。
    构造方法的定义:
    方法名和类名一致
    方法没有返回值类型
    它可以有参数,也可以没有参数,是一个重载了的方法
    它的参数个数最少0个,最多只能是成员属性的个数。如果超出了成员属性参数个数的范围,编译报错。
    它的参数列表中的形参类型一定要和成员属性的参数类型匹配。否则编译报错。
    2. static关键字
    静态属性:在类体中,方法外被static关键字修饰的。
    静态方法:被static关键字修饰的方法。
    在创建对象时,有些属性是对象都有的,比如对于人来说都要吃饭,如果每个对象都定义一个吃饭的属性是很浪费内存的。那么就有了静态变量,也因此静态变量是类级别,它的访问不依赖对象,用"类名."就可以访问。静态数据是存放在方法区的,因为在堆内存浪费内存,栈内存空间存局部变量,不是成员变量。静态变量在加载时就已经执行了,静态变量是可以定义的时候赋值的。这是为了节省时间。
    静态代码块:
    static {
    java 语句;

    }
    其中的Java语句在加载时就会执行。就和方法一样进行压栈。
  2. this关键字
    只有已经定义了,我们才能用。所有的成员方法中都有一个隐含的this参数。这个参数在建立对象时保存了对象在堆内存中的内存地址。所以实际是有(类名 this)的。其实我觉得保存对象在堆内存中的内存地址不太合适,我觉得是在遇到(类名 this)时,就开辟了一块关于对象的内存空间,这个空间的地址就在this里,给属性赋值后,地址在传回给等号左边的引用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值