Java入门笔记(3)
1.IDEA项目结构
2.辅助快捷键
3.Java中内存分配
4.数组
1)静态初始化
2)2个常见问题
索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题
空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常
null:空值,引用数据类型的默认值,表示不指向任何有效对象
3)获取最值
5.方法
方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
方法必须先创建才可以使用,该过程称为方法定义
方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用
1)定义与调用
定义
调用
2)带参数方法的定义与调用
定义
调用
3)带返回值方法的定义与调用
定义
调用
4)注意事项
a).方法不能嵌套定义
b).void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据(方法内的程序只运行到return,就算后面还有程序也不运行)
5)通用格式
定义方法时,要做到两个明确
明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果有,写对应的数据类型
明确参数:主要是明确参数的类型和数量
6)方法重载
方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载
a. 多个方法在同一个类中
b. 多个方法具有相同的方法名
c. 多个方法的参数不相同,类型不同或者数量不同
特点:
重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式
重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载
7)方法参数传递
a. 对于基本数据类型的参数,形式参数的改变,不影响实际参数的值
(方法调用结束后就从栈内存消失了)
b. 对于引用类型的参数,形式参数的改变,影响实际参数的值
(通过引用数组,栈内存所指的数组地址值不变,但是堆内存的数组元素值被修改了,从而导致输出的结果改变了)
6.面向对象
1)类和对象
6.1.1 类
类是对现实生活中一类具有共同属性和行为的事物的抽象。
其中,属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值,类似手机的品牌、价格与内存。
属性:在类中通过成员变量来体现(类中方法外的变量)
行为:对象能够执行的操作,类似手机能打电话、发短信。
行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)
类的定义步骤:
1.定义类
2.编写类的成员变量
3.编写类的成员方法
6.1.2 对象
对象:是能够看得到摸的着的真实存在的实体。
类是对象的抽象,对象是类的实体
6.1.3 成员变量与局部变量:
成员变量类似学生的姓名与年龄,是学生这种类的属性具有的值。
局部变量类似学习这种方法里面的变量,是行为过程中用到的变量。
2)封装
6.2.1 private关键字
一个权限修饰符
可以修饰成员(成员变量和成员方法)
作用是保护成员不被别的类使用,被private修饰的成员只在本类中才能访问
针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作
提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰
6.2.2 this关键字
6.2.3 封装
3)构造方法
功能:主要是完成对象数据的初始化。注意事项如下:
标准类的制作:
4)实例
成员变量
使用private修饰
构造方法
提供一个无参构造方法
提供一个带多个参数的构造方法
成员方法
提供每一个成员变量对应的setXxx()/getXxx()
提供一个显示对象信息的show()
创建对象并为其成员变量赋值的两种方式
1:无参构造方法创建对象后使用setXxx()赋值
2:使用带参构造方法直接创建带有属性值的对象
输出结果:
林青霞,30
林青霞,30