方法的调用
调用方式:
一个类(A)里面创建的方法,想要在另一个类(B)里面调用有两种方式
-
该方法用static修饰,则在另一个类调用时写为:类名B.方法名(参数)
-
该方法未加static修饰,需要在类B中将A类实例化
A类名 对象名=new A类名() //对象类型 对象名=对象的值
对象名.方法(参数);
方法互相调用时注意项:
一个类中,两个方法都是普通方法,可以直接互相调用
两个方法都是static修饰的,也可以直接互相调用
一个static修饰(a),一个没有修饰(b)时,则a无法调用b。因为static修饰的是和类一起加载的,而未修饰的,未将其实例化时是没有加载的,一个已加载的是无法调用未加载的
值传递与引用传递
值传递:
package com.oop;
//值传递
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;//只是让a为10,并未将a=10传回去
}
}
引用传递:
一个类里面只能有一个public class,但是可以有多个class
package com.oop;
//引用传递,传递的是对象,本质还是值传递
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);//张
}
public static void change(Person person){
//person是一个对象,指向的是Person这个类---> Person person = new Person();这是一个具体的人可以改变属性!
person.name="张";
}
}
//定义了一个Person类,有一个属性叫:name
class Person{
String name;//默认值为null
}