方法的调用:例如递归
- 静态方法
- 非静态方法
01
package com.oop.demo01;
//学生类
public class Student {
//静态方法
public static void say(){
System.out.println("学生说话了");
}
//非静态方法
public void say1(){
System.out.println("学生说话了1");
}
}
package com.oop.demo01;
public class Demo02 {
//静态方法 static
//非静态方法
public static void main(String[] args) {
//调用静态方法 static
Student.say();
//调用非静态方法
//实例化这个类 new
//对象类型 对象名 = 对象值;
Student student = new Student();
student.say1();
}
}
package com.oop.demo01;
public class Demo03 {
//静态static 和类一起加载
public static void a(){
// b();;
}
//类实例化 之后才存在
public void b(){
}
}
- 形参和实参
02
package com.oop.demo01;
public class Demo04 {
public static void main(String[] args) {
// Demo04 demo04 = new Demo04();
// demo04.add(1,2);
//实际参数和形式参数类型要对应
int add = Demo04.add(1,2);
System.out.println(add);
}
public static int add(int a,int b){
return a+b;
}
}
- 值传递和引用传递
package com.oop.demo01;
//值传递
public class Demo05 {
public static void main(String[] args) {
int a = 2;
System.out.println(a);
Demo05.change(a);
System.out.println(a);//1
}
//返回值为空
public static void change(int a){
a = 10;
}
}
package com.oop.demo01;
//引用传递 对象,本质还是值传递
//对象,内存
public class Demo06 {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name); //null
Demo06.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;
}
- this关键字