非静态方法的调用:
在另一个类中调用非静态方法是需要先实例化这个类(需要被调用的那个类)
例如:
但我们一般会写成如下的形式
Student student=new Student();
student.say();
静态方法调用时可以直接调用:
特俗情况:
在同一个类下创建的两个方法(一个为静态方法,一个为非静态方法)在非静态方法里面调用静态方法可以直接调用,但是在静态方法里面直接调用非静态方法时不能直接调用。
主要原因是因为静态方法创建时是和类一起加载的(当类创建成功时)而非静态方法是在类实例话之后才存在。
形参实参
package oop.gdw;
public class Demo03 {
public static void main(String[] args) {
add(6,6 );//实参
}
public static int add(int a,int b){//a,b为形参//需要保证形式参数和实际参数的类型对应
return a+b;
}
}
值传递和引用传递
值传递(主要是实参和形参的操作)
package oop.gdw;
//值传递
public class Demo {
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;
}
}
引用传递(主要是针对对象的一些值,进行赋值)
package oop.gdw;
//引用传递:对象,本质还是值传递
public class Demo05 {
public static void main(String[] args) {
Person person =new Person();//对应直接调用位置1//结果输出为null
System.out.println();
Demo05.change(person);//首先调用change方法,然后再调用位置1里面的Person的person进行赋值//结果输出为gdw
System.out.println(person.name);
}
public static void change(Person person){
person.name="gdw";
}
class Person{
String name;//位置1
}
}