一、认识方法
解决某一件事的功能实现。方法,是一段代码块的封装,方法中的代码应围绕某一功能的实现来写,目标明确,逻辑清晰。
方法的状态:方法编写完成后,没有调用的状态叫作方法的声明,被其它方法调用时,叫调用状态。
方法的语法格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,......){
执行语句
1.方法的调用
2.变量的操作:声明 赋值 修改
3.程序结构:选择结构 循环结构………
return 返回值;
}
对于上面的语法格式中具体说明如下:
- 修饰符:方法的修饰符比较多,有对访问权限进行限定的,公有修饰符public,私有修饰符private,有静态修饰符static,还有最终修饰符final等
- 没有static修饰的默认为非静态(实例),静态属于类,而实例属于对象。
- 返回值类型:用于限定方法返回值的数据类型
- 有返回值:基本数据类型 类和接口 没有返回值:void
- 参数类型:用于限定调用方法时传入参数的数据类型
- 参数名:是一个变量,用于接收调用方法时传入的数据
- return关键字:用于结束方法以及返回方法指定类型的值
- 返回值:被return语句返回的值,该值会返回给调用者
需要特别注意的是,方法中的“参数类型 参数名1,参数类型 参数名2”被称作参数列表,它用于描述方法在被调用时需要接收的参数,如果方法不需要接收任何参数,则参数列表为空,即()内不写任何内容。方法的返回值必须为方法声明的返回值类型,如果方法中没有返回值,返回值类型要声明为void,此时,方法中return语句可以省略。
二、参数
2.1形参
形参:形式参数,在声明一个方法时,方法名后面的小括号中,就是形参,
格式:(参数数据类型 参数名)
2.1实参
实参:实际参数,在调用一个方法时,方法名后面的小括号中,就是实参。
格式:(参数值或一个同类型的变量)
三、返回值
1.返回值指的是:根据实际的业务需求,对某一功能用程序实现后,需要有一定的产出。
2.返回值类型定义在方法名的前面,分两种:
- 有返回值:基本数据类型,和引用数据类型(也就是类和接口)
- 无返回值:void
3.返回值用关键字return 表示。
四、方法的调用和传参
4.1调用
方法分静态和非静态,同一个类中,静态方法直接调用静态方法,
静态方法调用非静态,要先创建对象,然后再调用。因为静态方法是属于类的,非静态属于对象的。
不同的类中:调用静态方法,直接是类名.方法名();调用非静态:创建对象,再调用。
同一个类中:
主调方\被调方 | 静态方法 | 实例方法 |
---|---|---|
静态 | 直接写方法名调 | 创建对象,再调 |
实例 | 直接写方法名调 | 直接写方法名调(省略this) |
不同的类中:
主调方\被调方 | 静态方法 | 实例方法 |
---|---|---|
静态 | 直接写类名.方法名()来调 | 创建对象,再调 |
实例 | 直接写类名.方法名()来调 | 创建对象,再调 |
4.2传参
调用有多个参数的方法时,传参的顺序一致,数据类型保持一致。
五、构造方法
1.构造方法的作用:开辟内存空间,生成对象,俗称类创建对象的过程叫实例化
特点:方法名和类名相同,没有返回值一说,连void也没有。
2.构造方法分为有参构造和无参构造
无参构造:jvm虚拟机在加载类时会自动创建,每个类都默认有一个无参构造。
public class Monkey{
private String name;
private int age;
public Monkey() {
}
}
有参构造:需要开发人员自己去编写,它的作用是:实例化对象的同时,为对象的成员属性赋值。有参构造=无参构造+set方法。
public class Monkey{
String name;
int age;
public Monkey(String name, int age) {
this.name = name;
this.age = age;
}
}
六、方法重载
1.一个类中,同名不同参数的两个或以上的方法叫做方法的重载。有参构造和无参构造就是典型的方法重载
2.如果类中只有有参构造,忘记了写无参构造 ,类中的有参构造会覆盖默认的无参构造
3.如果类中有参构造和无参构造都忘记了写 ,虚拟机在加载该类的时候会默认帮你生成一个无参构造。
4.有参构造方法中的this指的是,调用该构造方法得到的那个对象,this又称为当前对象。
5.目的:简化方法的调用,不用在方法名上刻意区分不同功能的方法。
6.判断是否是重载只看两个因素:1.方法名相同,2.参数不同,3.是同一个类。例如:
//1.println的重载方法
System.out.println(1);
System.out.println("hello");
//2.Arrays类中toString的重载方法
int[] a= new int [2];
char[] b=new char[2];
Arrays.toString(a);
Arrays.toString(b);
//3.err和out都是PrintStream类中的对象,println()都是PrintStream类中的方法
System.err.println("哈哈");
System.out.println(1);//
七、成员变量和局部变量
7.1成员变量(全局变量)
类的成员,比如:属性、方法、代码块。
- 问:成员变量和属性又是什么关系呢?
- 答:同一个东西的不同称呼。从作用域的范围看,叫成员变量,从类的剖析角度来看,叫属性。
7.1局部变量
代码块{} 类代码块,方法代码块,循环代码块,无名代码块, try-catch代码块。
方法的参数属于的局部变量,形参相当于变量的声明,实参相当于初始化(赋值)。