22.回顾方法
回顾方法
一、方法的定义
1.修饰符、返回类型
//main 方法
public static void main(String[] args) {
}
/*
修饰符 返回值类型 方法名(...)
方法体
return 返回值;
*/
public String sayHello(){
return "hello,world";
}
//void 没有返回值,可以默认不写return,写return可以为空
public void hello(){
return;
}
//a,b是形式参数,空值,等待其他方法中传入实际参数
public int max(int a,int b){
return a > b ? a : b; //三元运算符
}
2.break和return的区别
break:终止当前循环
return:终止当前方法,返回一个结果,结果可以是空或任意内容
二、方法的调用
1.静态方法static
public class Demo01{
public static void hello(){
System.out.println("hello,world")
}
}
在其他方法中要调用时,可以直接调用
public class Demo02{
public static void main(String[] args){
Demo01.hello();
}
}
2.非静态方法
public class Demo01{
public void hello(){
System.out.println("hello,world")
}
}
在其他方法中要调用时,需要实例化这个类,new
public class Demo02{
public static void main(String[] args){
//对象类型 对象名 = 对象值
Student demo01 = new Demo01();
Demo01.hello();
}
}
3.静态方法和非静态方法的区别
//实例化类之间可以相互直接调用
public void a(){
b();
}
public void b(){
}
//静态方法不能调用实例化类,相反则可以
public static void a(){
b();
}
public void b(){
}
被static修饰的内容会跟随类的加载而加载,所以静态化的内容可以不用实例化就直接调用,同时两个静态方法之间也可以互相调用。
4.形式参数、实际参数
public static void main(String[] args) {
int add = Demo02.add(1, 2);
}
public static int add(int a,int b){
return a + b;
}
实际参数和形式参数的类型要对应!
5.值传递
//值传递只是将实际参数的值复制一份给了形式参数
public static void main(String[] args) {
int a = 1;
System.out.println(a);// 1
Demo03.change(a);//进入方法体之后,并无传递值回来
System.out.println(a);// 1
}
//返回值为空,走完方法体后,没有返回值到主函数中,无return
public static void change(int a){
a = 10;
System.out.println(a);// 10
}
6.引用传递
public class Demo04 {
//引用传递
public static void main(String[] args) {
Person p = new Person();
System.out.println(p.name);// null
Demo04.change(p);
System.out.println(p.name);// 周健
}
public static void change(Person p){
p.name = "周健";
}
}
//定义了一个Person类,有一个属性:name
class Person{
String name;
}