构造函数和变量

蔚落 2022-10-02 04:46 272阅读 0赞

[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个, 吃了. 又是拿走一份.
  • 五只猴子都是这么做的. 问: 海滩上最初有多少个桃子?

转载于:https://blog.51cto.com/695412/1659377

发表评论

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

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

相关阅读

    相关 构造函数变量

    \[5\]构造函数和变量 一.构造函数 \ 1.什么是构造函数 构造函数是一个特殊的函数 没有返回值类型, 函数名和类名相同, new关键字创建对象时自动调用