方法和方法重载
一、理解和回顾方法的作用
方法(函数):能够实现某种功能 想查阅更多的功能我们可以参看API文档
变量可以存储我们单一的数据,而方法则可以存储我们的功能代码段
-
main方法:程序的入口 如果没有此方法 则程序无法运行
-
random()方法:帮助我们生成一个【0.0,1.0)的随机数
-
nextInt()、nextDouble()、next()方法:帮助我们在控制台上输入对应的数据 把值可以存到变量中
-
Arrays:
toString(数组)将数组转换成字符串
sort(数组)将数组进行排序
equals(1,2)(数组)进行比较是否相等
面向过程/函数/方法(函数式编程)–pop
二、掌握方法的基本语法
// 方法声明
[访问修饰符] 返回值类型 方法名([参数列表]){
// 方法体
[return 返回;]
}
方法调用注意事项:
-
不同类中:
不同类中进行方法调用,都需要先进行对应类的对象创建,然后才能调用此类中的方法
-
同一个类中:
如果调用者(方法)不是特殊的方法(static),那么可以直接以要调用的方法()名来进行调用
如果调用者(方法)是特殊的方法(有static),那么需要先对此类进行对象创建,然后才能进行调用。
三、掌握方法的分类
-
无参无返方法:单纯的存储了一个功能 独立完成处理
-
访问修饰符 void 方法名(){ // 方法体 }
-
无参有返方法:存储了一个功能,并且将功能运行后的结果进行了返回
-
访问修饰符 数据类型 方法名(){ // 方法体 return 返回值; }
-
有参有返方法:方法内需要额外因素进行处理,并且处理完调用者需要结果进行使用
-
访问修饰符 数据类型 方法名(参数列表){ // 方法体 return 返回值; }
-
有参无返方法:对一个独立处理的功能增加一些灵活性或者独立处理的功能需要一些额外因素才能进行处理
-
访问修饰符 void 方法名(参数列表){ // 方法体 }
补充
一、方法的参数传递【面试题】
基本数据类型:作为方法参数传递时,传递的只是值,传递过去之后的新变量和之前的变量没有关系。
引用数据类型:作为方法参数传递时,传递的是地址值,所以传递过去之后的新对象引用也是引用相同的内存空间,当其中一处进行更改,会引发所有对象引用内容的更改。(会有影响)
二、掌握类的构造方法
Studen str = new Studen();//构造方法
构造方法:创建、构建,类的对象的构建和创建的方法。当对象创建时都会被执行!
构造方法最重要的意见就是Java给我们提供了能够在对象的创建(生命周期)过程中添加代码的能力。
一般构造方法的应用都是用于一些基本信息
每一个类默认情况下JVM都会分配一个无参构造。
构造方法没有返回值类型,方法名和类名完全相同。
构造方法分为带参方法和无参方法
// 带参方法可以极大的简化对象的创建和初始化赋值过程
访问修饰符 类名(形参列表){
// 利用形参给成员变量进行赋值
}
只要你自己创建任意一个构造方法,那么JVM就不再给你分配无参构造了。所以建议无论自己是否编写构造方法,都去手动编写一个默认的无参构造。
三、掌握this关键字
成员变量:对象变量、实例变量
this代表着当前类的一个对象,谁在调用谁就是当前对象。
this作为一个对象,可以去调用属性,也可以调用方法。
但是如果要调用自身的构造方法,那么需要注意的是调用必须是在某个构造方法的有效代码(不含注释)的第一行
因为某个构造方法没有执行完毕时,那么属性是不存在的,对象也不存在。
四、掌握成员变量和局部变量的区别【面试题】
成员变量:类中属性
局部变量:方法内变量 Local
1.定义的位置:
成员变量定义在类中方法外
局部变量定义在类中方法内
2.作用域(生效)的范围:
成员变量可以被类中的方法所共用
局部变量只能在定义的方法内使用
当局部变量和成员变量同名时,会就近采用局部变量
3.生命周期(生老病死):
成员变量(实例变量)它是随着对象的创建而产生,随着对象的销毁而销毁。
局部变量它是随着方法的压榨而产生,随着方法的弹栈而销毁。
4.初始值:
成员变量有初始值
局部变量没有初始值,如果不赋值则不能使用
五、掌握方法重载(现象)
方法重载:发生在一个类中,方法名相同,参数列表不同(个数、顺序、类型)的情况。与访问修饰符和返回值类型无关。
方法重载的意义在于我们要定义相同功能的方法,不需要在花费大量时间去定义n中方法名,而且未来在调用时体验更佳。