1、静态方法与非静态方法
静态方法和非静态方法的区别是:
静态方法有static;非静态方法没有。
如:静态方法:
public class students {
//静态方法
public static void say(){
System.out.println("学生说话了");
}
}
调用静态方法:
public static void main(String[] args) {
students.say();
}
非静态方法:
public class Student {
//非静态方法
public void say(){
System.out.println("学生说话了");
}
调用非静态方法:
public static void main(String[] args) {
//实例化这个类 new
//对象类型 对象名=对象值
//
Student student=new Student();
student.say();
}
都是非静态方法或静态方法,则方法a可以在直接调用方法b:
public void a(){
b();
}
public void b(){
}
若a是静态,b不是,则不行:
//和类一起加载的
public static void a(){
b();
}
//类实例化之后才存在
public void b(){
}
2、形参与实参
public class Demo03 {
public static void main(String[] args) {
//实际参数和形式参数的类型要对应;
int add = new Demo03().add(1, 2);
System.out.println(add);
}
public int add(int a,int b){
return a+b;
}
}
a,b表示形式参数,1,2表示实际参数;
3、值传递与引用传递
值传递,最终结果依然是1,1
//值传递
public class Demo04 {
public static void main(String[] args) {
int a = 1 ;
System.out.println(a);
Demo04.change(a);
System.out.println(a);
}
//返回值为空
public static void change(int a){
a = 10;
}
}
引用传递,最终出来的结果为null,小李;
public class Demo05 {
public static void main(String[] args) {
Cat cat=new Cat();
System.out.println(cat.name);
Demo05.change(cat);
System.out.println(cat.name);
}
public static void change(Cat cat){
//cat是一个对象,指向的是Cat cat=new Cat();这是一个具体的猫可以改变属性
cat.name = "小李";
}
}
//定义了一个类Cat,有一个属性:name
class Cat{
String name;
}
来源:CSDN
作者:leelelea
链接:https://blog.csdn.net/leelelea/article/details/104187641