java的变量与函数_构造函数和变量

[5]构造函数和变量

一.构造函数

* 1.什么是构造函数构造函数是一个特殊的函数

没有返回值类型, 函数名和类名相同, new关键字创建对象时自动调用

* 2.什么时候使用构造函数当我们想在创建对象的时候就执行一段代码, 就可以把这段代码放在构造函数中

例如对成员变量的赋值, 定义构造函数, 接收参数, 在执行构造函数的时候, 就可以对成员变量赋值了

* 3.构造函数的调用构造函数可以在new关键字创建对象的时候调用

构造函数还可以在其他构造函数的第一条语句中使用this()形式调用

* 4.自动生成构造函数一个类如果没写任何构造函数, 那么会自动生成一个. 这个自动生成的构造函数没有参数, 也没有任何代码.

注意, 如果写了一个有参的, 就不会自动生成无参的了.

5.构造函数的访问权限通常情况下都是public的, 在别的类中可以创建该类对象

某些特殊情况下我们定义了一个类, 不希望别人创建对象, 那么就可以用private修饰构造函数.

二.局部变量和成员变量

1.局部变量:LocalVariable, 方法中定义的变量.

2.成员变量:Field, 类中定义的变量

3.重名问题:局部变量可以和成员变量同名.

但是局部变量不能和局部变量同名. 成员变量不能和成员变量同名

4.访问问题:在方法中直接以一个变量名形式访问的时候, 会先找局部变量, 再找成员变量.

如果存在局部变量, 直接访问局部的, 如果没有局部的才找成员的, 如果成员的也没有, 才会报错.

使用"this.变量名"形式访问一个变量, 可以直接找到成员变量

三.this关键字

1.构造函数中可以使用"this(参数)"形式调用其它构造函数

* 2.普通函数中this代表调用当前函数的对象

通常在set方法和构造函数中都会使用, 当局部变量和成员变量同名时访问成员变量

四.函数的参数传递

1.基本数据类型基本数据类型的数据由于是存储在栈内存中的, 传入函数中函数中的变量是一个新的值, 函数中改变调用处不变.

2.引用数据类型引用数据类型的数据是存储在堆内存中的, 变量记住的是地址, 在调用函数时函数中传入的也是地址, 两边指向同一个对象, 一边改变两边都变.

五.代码块

1.什么是代码块在类中用"{}"可以定义一个代码块

代码块在创建对象的时候执行

2.代码块和成员变量赋值的顺序一个类中如果定义了成员变量, 在创建对象的时候就会初始化, 这个默认的初始化是在代码块之前做的. 基本数据类型等于0, 引用数据类型等于null.

如果代码中对成员变量赋了值, 也定义了代码块, 这两部分的顺序是按照定义的先后而决定的

如果代码块写在了赋值的前面, 那么是先初始化, 再代码块, 再赋值

如果代码块卸载了赋值的后面, 那么是先初始化, 再赋值, 再代码块

六.static关键字

1.静态变量类加载后就初始化

所有对象共享

可以用"类名.变量名"访问

七.思考题大家可以思考一下

海滩上有一堆桃子, 有五只猴子来分.

第一只猴子发现了桃子, 将桃子分成了5份, 发现多了1个, 吃了. 拿走了一份.

第二只猴子也来到海滩发现了桃子, 也是将桃子分成5份, 发现多了1个, 吃了. 又是拿走一份.

五只猴子都是这么做的. 问: 海滩上最初有多少个桃子?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值