本文内容是狂神说Java视频总结而来。
方法初探:
Java方法是语句的集合,将语句集合在一起去执行一个功能
1、方法是解决一类问题的步骤的有序组合;
2、方法包含与类或对象中;
3、方法在程序中被创建,在其他地方被引用。
设计方法的原则:
1、方法的本意是功能块,是为实现某个功能的语句块的集合。我们设计方法的时候最好保证方法的原子性,即一个方法只用来完成一个功能,这样也便于我们后期进行扩展。
方法的命名规则:首字母小写,遵循驼峰命名规则。
方法的定义:
Java方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法,包含以下一些语法:
方法包含了一个方法头和一个方法体,下面是对一个方法包含的所有部分:
1、修饰符:可选,告诉编译器如何定义该方法,定义了该方法的访问类型;
2、返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法在执行完所需操作后,但并没有返回值,这时returnValueType是void。
3、方法名:为方法定义的实际名称。方法名和参数表共同构成方法签名。
4、参数类型:参数像是一个占位符。当方法被调用后,会传递值给参数。参数列表是指参数类型、参数个数、参数顺序。参数是可选的,方法也可以不包含任何参数。
实参:在调用方法时,将值传递给方法的参数。
形参:在方法被调用时,接收传递的数据的参数。、
5、方法体:方法内,实现功能的语句。
6、return:return主要是返回方法的值,其次也有终止方法的功能。
方法的调用:
调用方法: 对象名.方法名(实参列表)。
不在同一类中,如果调用的方法有static来修饰,可以直接使用类名.方法名来调用。
在同一类中时,静态方法不能直接调用非静态方法,因为静态方法是在类没有实例化对象之前和类一起加载的,非静态方法是类通过new关键实例化对象后才存在的。因为静态方法的存在在早于非静态方法。
静态方法调用静态方法:
静态方法调用非静态方法:
静态方法在类实例化后,通过对象调用非静态方法:
静态方法也可以在类实例化后,通过对象调用静态方法,但是好像多此一举:
非静态方法调用静态方法:
Java通过是否有返回值,支持两种调用方法的方式。
1、当方法返回一个值的时候,方法调用通常被当做一个值。如:
int large = max(12,77);
2、如果方法返回值是void,方法调用一定是一条语句。
System.out.println("论男朋友的重要性");
扩展:关于值传递和引用传递
public class Demo2 {
public static void main(String[] args) {
Student student = new Student();
System.out.println(student.name);//实例化的对象放在堆中,获取name属性时,找的是存储name属性的对象的地址,这个地址所指向的内容存的值是null,故打印是null
change(student);//地址所指向的值在调用change方法时,该方法将地址所指向的值的内容给改变了
System.out.println(student.name);//虽然,值改变了,但是指向的地址没变,所以打印的是改变后的值的内容
//引用传递一般传的是对象,但是这块本质还是值传递,不过传的值是指向的地址,并不是具体的值
}
public static void change(Student student){
student.name = "alice";
}
}
class Student{
String name;
}
方法的重载:
方法重载就是在一个类中,有相同名称的函数,但函数的形参不同。
方法重载的规则:
1、在同一个类中;
2、方法名称必须相同;
3、方法的参数列表不相同;
4、方法重载与方法的返回值类型无关。
方法重载的原理:方法名称相同时,编译器会根据调用方法的参数个数、参数类型等逐个去匹配,以选择对应的方法,如果匹配不成功,则编译器报错。