java的基础学习day06(方法的学习)
第一章 方法
1.1、什么是方法?
- 方法就是一个功能模块的集合,将很多代码放在一组{}里面,形成一个代码块。
- 方法的作用:可以提高程序的复写性。
1.2、为什么要使用方法?
1.2.1 何处使用发法
在编写程序的时候有可能会出现相同的代码或者是给相同的变量多次赋值,在这种情况下除了使用循环外,我们还可以用方法来避免这种情况的出现。
1.2.2 使用方法的好处
- 可以提高代码的复写型
- 提高代码后期的扩展性和延续性
- 提高代码的后期维护性
1.3、如何使用方法?
1.3.1 方法的声明
在咱们以前的编写.java程序只有一种main方法,这里我们主要对main方法来说,新建另一种方法要放在main方法外看下面代码主要说的就是针对main方法来说我们的声明格式。
[修饰符] [static]{void|数据类型} 方法名称([参数列表]){
执行语句;
}
public static void method(){
System.out.println("这是我的第一个方法");
}
代码分析:在上述代码方法声明格式中凡是带有[]的都是可以有也可以没有的,{}中void或者数据类型一定要写一种,这个是必不可少的,方法名称也是不可少的。
1.3.2 方法的使用
下面我们看一个代码,需求是要在main方法中调用一个方法。
public class method01{
public static void main(String[] args){
method();
}
public static void method(){
System.out.println("我的第一个调用方法");
}
}
代码分析:在main方法中就是通过“方法名称();”来调用另外一个方法的。
tips:方法名的命名规则和变量名的命名规则相似。
1.4、参数列表
看下列代码:
/**
用调用方法的方式计算两个数和
*/
public class method02{
public static void main(String[] args){
add();
}
public static void add(){
int num1 = 18;
int num2 = 20;
int sum = num1+num2;
System.out.println(sum);
}
}
发现问题:我们知道正常我们用一个main去写这中两个数相加的问题的代码时不会有这么复杂的过程,而且上述代码只能计算18和20这两个数的和会导致该方法复用性不高,那么我们就可以借助形参来解决这个问题。
1.4.1 参数列表的使用
参数列表声明在方法后的小括号里面,可以是0个也可以是多个。
看如下代码:
public class method03{
public static void main(String[] args){
getSum(30,25);
}
public static void getSum(int num1,int num2){
System.out.println(num1+num2);
}
}
代码分析:上述代码就算出了30和25这两个数的和,我们可以随意的更换这两个数,这个代码就不仅仅能算出30和25的和了。
1.4.2 参数的注意事项
- 在方法中声明的参数是形式参数即形参
- 对于调用者而言,传入的具体参数的值称为实际参数即实参
- 方法声明的参数列表中只存在声明 不需要初始化就可以使用,原因是由于该方法被调用到之 后一定将实际参数进行赋值,赋值给形式参数。
- 方法调用者而言。在调用方法时不能只看方法名称,而且还需要查看方法的参数列表,只有 这样才可以正确调用到需要被调用的方法。
- 在一个类中确定方法通过方法签名完成。方法签名(方法名称+参数列表)
- 对于参数列表而言,具体的参数类型、个数、顺序都有一定的要求,要求取决于业务逻辑。
1.5、变量的分类
按照变量放的位置不同将变量分为成员变量和局部变量。
**tips:**变量的三要素:数据类型、变量名、生命周期(作用范围)。
变量的分类 | 声明位置 | 作用范围 | 注意事项 |
---|---|---|---|
局部变量 | 放在方法后的括号中或者方法中又或者是代码块中 | 当前声明的{}中有效 | 生命周期:一定要先声明然后赋值后才能使用。 |
成员变量 | 声明在类中,方法的外面 | 当前类中都有效 | 生命周期:调用时需要:要么将当前的成员变量前加 static修饰;要么就是通过创建当前类的所属对象,通过对象访问。无需初始化,每个不同类型的变量都存在默认值。 |
1.5.1 局部变量
定义在方法中或者是代码块中的变量,称之为局部变量,局部变量的生命周期只能在声明的 {} 中有效。出了这个位置就没有任何效果。方法的参数列表中的变量属于当前方法的局部变量。
看如下代码:
public class Text01{
public static void main(String[] args){
{
int num = 10;
System.out.println(num);
}
int num = 10;
Sysyem.out.println(num);
}
}
针对代码块而言,通过一组大括号括起来 {} 代码块也分为:局部代码块、初始化块、静态代码块。
局部代码块:声明在方法中的代码块。局部代码块中声明的变量只能在当前局部代码块中有效。
局部代码块的优势:
1:缩减了变量的生命周期。
2:提高内存的使用率,降低内存开销。
1.5.2 成员变量
声明在类里面,在方法外面的变量成为成员变量。
看如下代码:
public class Text02{
static int num = 20;
int num1 = 30;
public static void main(String[] args){
System.out.println(num);
Text02 i = new Text02();
System.out.println(i.num1);
}
}
分析上述代码:当成员变量在声明的时候前面加了static时是可以直接访问到的,而如果前面没有加static时我们需要去针对类来说创建一个对象(格式为:类名 变量名 = new 类名();)而后通过变量名.成员变量去访问这个成员变量。
**tips:**成员变量可以不初始化就使用,是因为在java中成员变量有他们的默认值
- 所有的整数类型成员变量的默认值是0;
- 所有的浮点数类型的成员变量的默认值是0.0;
- 所有字符类型的成员变量的默认值是空格即为’\u0000’;
- 所有布尔类型的成员变量的默认值是false;
- 所有的字符串类型的成员变量的默认值是null。
1.6、返回值
被调用的方法可以将自己后的计算结果返回给调用处,方便后续的业务逻辑执行。返回值对于某些方法而言是极其有必要的。
看如下代码:
public class Method04 {
public static void main(String[] args) {
int r = 10;
double area = getCircleArea(r);
}
public static double getCircleArea(int r) {
double pi = 3.14;
double area = pi*r*r;
System.out.println("半径"+r+"的圆的面积是:"+area);
return area;
}
}
- void:该方法没有返回值。
- 一个方法可以不存在void,但是一定要有内容去填充void所在的位置。
- 返回的数据的具体是什么类型,则通过该类型去代替void的位置。
- 一个方法存在返回值,该方法的后一行代码一定是retur语句,return 返回的具体值;
- 调用main方法,在调用完成某个具有返回值的方法之后,可以通过变量接收该值。