关于调用方法:
1.调用非静态方法
调用非静态方法需要实例化这个类
语法:
对象类型 对象名 = 对象值
Student类
public class Student {
//非静态方法
public void say(){
System.out.println("学生说话了");
}
}
main方法
public static void main(String[] args) {
//调用非静态方法需要实例化这个类
//对象类型 对象名 = 对象值
Student student = new Student();
student.say();//学生说话了
}
2.调用静态方法
Student类
public class Student {
//静态方法
public static void say(){
System.out.println("学生说话了");
}
}
main方法
public static void main(String[] args) {
//类名.方法名 可以直接调用
Student.say();//学生说话了
}
注:
//static和类一起加载的 静态无法调用非静态
public static void a(){
b();
}
//在类实例化之后才存在
public void b(){
}
值传递和引用传递
值传递
public static void main(String[] args) {
int a=1;
System.out.println(a);//1
change(a);
System.out.println(a);//1
}
//没有返回值,形参的变化不影响实参
public static void change(int a){
a=10;
}
引用传递
//引用传递:传递对象 本质还是值传递
public class Demo05 {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name);//null
Demo05.change(person);
System.out.println(person.name);//Sherlock
}
public static void change(Person person){
//person是一个对象,指向的是 Person person = new Person();这是一个具体的人,可以改变属性
person.name="Sherlock";
}
//定义了一个Person类,有一个属性:name
static class Person{
String name;//属性:name 默认值为null
}