1.参数传递
1.1 类名作为形参和返回值
1、类名作为方法的形参
方法的形参是类名,其实需要的是该类的对象
实际传递的是该对象的【地址值】
2、类名作为方法的返回值
方法的返回值是类名,其实返回的是该类的对象
实际传递的,也是该对象的【地址值】
1.2 抽象类作为形参和返回值(理解)(多态的应用)
抽象类作为形参和返回值
方法的形参是抽象类名,其实需要的是该抽象类的子类对象
方法的返回值是抽象类名,其实返回的是该抽象类的子类对象
1.3 接口名作为形参和返回值(理解)(多态的应用)
接口作为形参和返回值
方法的形参是接口名,其实需要的是该接口的实现类对象
方法的返回值是接口名,其实返回的是该接口的实现类对象
2. 内部类
2.1 内部类的基本使用(理解)
内部类概念
在一个类中定义一个类。
举例:在一个类A的内部定义一个类B,类B就被称为内部类。
内部类定义格式
格式&举例:
内部类的访问特点
内部类可以直接访问外部类的成员,包括私有。
外部类要访问内部类的成员,必须创建对象。(重要特点)
2.2 成员内部类(理解)
成员内部类的定义位置
在类中方法,跟成员变量是一个位置
外界创建成员内部类格式
格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象;
举例:Outer.Inner oi = new Outer().new Inner();
成员内部类的推荐使用方案
将一个类,设计为内部类的目的,大多数都是不想让外界去访问,
所以内部类的定义应该私有化,私有化之后,再提供一个可以让外界调用的方法,
方法内部创建内部类对象并调用。
2.3 局部内部类(理解)
局部内部类定义位置
局部内部类是在方法中定义的类
局部内部类方式方式
局部内部类,外界是无法直接使用,需要在方法内部创建对象并使用 该类可以直接访问外部类的成员,也可以访问方法内的局部变量
2.4 匿名内部类(应用)
匿名内部类的前提
存在一个类或者接口,这里的类可以是具体类也可以是抽象类
匿名内部类的格式
格式:new 类名 ( ) { 重写方法 } new 接口名 ( ) { 重写方法 }
匿名内部类的本质
本质:是一个继承了该类或者实现了该接口的子类匿名对象
匿名内部类可以通过多态的形式接受
匿名内部类直接调用方法
3.常用API
3.1 Math(应用)
1、Math类概述 Math 包含执行基本数字运算的方法
2、Math中方法的调用方式
Math类中无构造方法,但内部的方法都是静态的,则可以通过 类名. 进行调用
3、Math类的常用方法
3.2 System(应用)
3.2.1 System概述
public final class System extends Object
System类包含几个有用的类字段和方法。 它不能被实例化。
System类提供的System包括标准输入,标准输出和错误输出流;
访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。
3.2.3 成员变量
3.2.3 System类的常用方法
其他的见API手册
4. Object类
4.1 Object概述
public class ObjectClass Object是类Object结构的根。 每个班都有Object作为超类。 所有对象(包括数组)都实现了这个类的方法。
4.2 构造方法
4.3 方法概述
4.3.1 object类常用方法详解
-
getClass()
-
hashCode()
哈希值用于对象间的比较,相同对象的hash值相同 -
equals()
-
clone()
-
toString()
-
notify
-
wait
-
finalize
4.4 object类中toString方法(应用)
查看方法源码的方式
选中方法,按下Ctrl + B
重写toString方法的方式
1. Alt + Insert 选择toString
2. 在类的空白区域,右键 -> Generate -> 选择toString
toString方法的作用: 以良好的格式,更方便的展示对象中的属性值
4.5 Object类的equals方法(应用)
equals方法的作用
用于对象之间的比较,返回true和false的结果
举例:s1.equals(s2); s1和s2是两个对象
重写equals方法的场景
不希望比较对象的地址值,想要结合对象属性进行比较的时候。
重写equals方法的方式
1. alt + insert 选择equals() and hashCode(),IntelliJ Default,一路next,finish即可
2. 在类的空白区域,右键 -> Generate -> 选择equals() and hashCode(),后面的同上。
5. 冒泡排序原理(理解)
冒泡排序概述
一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,
将较大的数据放在后面,依次对所有的数据进行操作,直至所有数据按要求完成排序
如果有n个数据进行排序,总共需要比较n-1次 每一次比较完毕,下一次的比较就会少一个数据参与
6. Arrays
6.1 Arrays概述
public class Arrays extends Object
该类包含用于操作数组的各种方法(如排序和搜索)。 该类还包含一个静态工厂,可以将数组视为列表。
如果指定的数组引用为空,则该类中的方法都抛出一个NullPointerException ,除非另有说明。
6.2 常用方法说明