尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)_哔哩哔哩_bilibili
| 数据类型 | 默认初始化值 |
|---|---|
| byte、short、int | 0 |
| long | 0L |
| float、double | 0.0F 和 0.0D |
| char | 一个空字符,即 '\u0000' |
| boolean | false |
| 引用数据类型 | null,表示变量不引用任何对象 |
说明:创建类的多个对象时,每个对象在对空间中有一个对象实体。每个对象实体中保存着一份类的属性。如果修改某一个对象的某个属性值时,不会影响其他对象此属性的值。
但是如果,把两个对象的变量指向了堆空间中的同一个对象实体,则修改会影响这两个。如下p1、p3指向了同一个地址值。
java允许在一个类中定义多个名称相同的方法,但是参数的类型或个数必须不同,这就是方法的重载。(方法的重载与返回值的类型、形参的名、权限修饰符都无关。)

注意如下,参数类型的顺序不一样,也叫方法的重载!!

例如下面println()方法的重载,在打印char[ ]的时候,打印的是字符数组的值,而不是地址值。




③特例:在同一个类中,可变个数形参的方法与其他方法名相同且形参类型是相同的可变个数类型的数组类型的方法,不构成重载。如 int ...nums 和 int[ ] nums 。


可变个数形参的方法应用场景举例:




说明:基本数据类型的变量没有地址值,赋值操作传递的是数据值。引用类型的数据变量传递的是地址值,等号赋值之后,两者都指向同一个地址值。引用类型的数据变量修改一个,就修改了这个地址值中存储的数据值。




这也证明了自己定义的类也是类,是引用数据类型!
![]()





方法的递归是指在一个程序的内部调用自身的过程。递归必须要有结束条件,不然就会陷入无限递归的状态,永远无法结束调用。

![]()

![]()











关与时间复杂度分析:




语法格式: package 顶层包名.子包名;









![]()
6.5.1 为什么需要封装性?
Java规定了4种权限修饰符:
作用:可以使用4种权限修饰符来修饰类及其内部成员。当这些成员被调用时,体现可见性的大小。

注意:

例如:当我们把类中的某个属性设置为private时,外界用户就不能使用“类名.属性名”随意设置和获取,而必须使用类中的Set和get方法对属性进行设置和获取。 把Set和get方法分为两个,符合低耦合原则(一个方法,一个作用)。


![]()
| 方法 | 作用 | 修饰符 | 返回值类型 | 参数 | 返回值 |
|---|---|---|---|---|---|
| set | 设置属性 | public | void | 有参数 | 无 |
| get | 获取属性 | public | 各种类型 | 无 | 各种类型 |

什么方法可以称为构造器:



没有空参构造器,创建对象的时候就需要为有参构造器的参数赋值。
因此一个类中如果定义了有参的构造方法,我们最好再定义一个无参的构造方法。
而且为了方便实例化,对象构造方法通常用public来修饰。
类的属性赋值过程:顺序实际上是按代码执行顺序。






封装性:将对象的属性和行为封装起来,不需要让外界知道具体实现细节。用四种权限修饰符体现可见性的大小。根据程序设计原则体现了高内聚和低耦合。

类与对象:


用到面向对象的地方有很多,例如创建类、设计类的时候,还有通过创建的这个类进行实例化,然后调用相关功能。
Java内存结构:

JVM虚拟机中内存划分为类加载器子系统、运行时数据区、执行引擎、本地方法接口、本地方法库。其中运行时数据区包括:方法区、堆、程序计数器、本地方法栈、虚拟机栈。

权限修饰符:

构造器:

属性及属性赋值顺序:



