回顾方法的调用:递归
1、静态方法:加了static
①在Main命名的文件里写:
``public class Main { public static void main(String[] args) { Student.say(); } }
②在Student命名的文件里写:
//学生类
public class Student {
public static void say(){
System.*out*.println("学生说话了");
}
}
2、非静态方法:没有加static
①在Main命名的文件里写:
``public class Main { public static void main(String[] args) { //实例化这个类new //对象类型 对象名=对象值; Student student = new Student(); student.say() } }
②在Student命名的文件里写:
public class Student {
public void say(){
System.*out*.println("学生说话了");
}
}
例子:
``public class Main { public static void main(String[] args) { //static是和类一起加载的 public static void a(){ b(); } //类实例化之后才存在 public void b(){ } }
这样调用会出错
3、形参和实参
如何调用方法,有两种方式
①对于没有static的非静态方法
Public class Main{
public static void main(String[] args){
new Main().add()
}
public int add(inta,intb){
return a+b;
}
}
②对于有static的静态方法:
public class Main{
public static void main(String[] args){
int add = Main.add(1,2);
System.out.println();
}
public static int add(int a,int b){
return a+b;
}
}
4、值传递和引用传递
Java中都是值传递
①//值传递
public class Main{
public static void main(String[] args) {
int a = 1;
System.out.println(a);
Main.change(a);
System.out.println(a);
}
//返回值为空
public static void change (int a){
a = 10;
}
}
②//引用传递:对象,本质还是值传递
public class Main{
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name)``;//null Main.change(person);
System.out.println(person.name);``//秦疆
}
public static void change(Person person){
//person是一个对象:指向的Person person= new Person();这是一个具体的人,可以改变属性!
person.name = "秦疆";
}
}
//定义了一个Person类,有一个属性:name
class Person{
String name;
}
5、this关键字

浙公网安备 33010602011771号