关于java方法调用的回顾
上篇文章中我们回顾了一下java方法的定义,本篇文章中我们来回顾一下方法的调用,这样更利于咱们后续的面向对象的学习😀。
方法的调用
-
静态方法。
-
非静态方法。
-
形参和实参。
-
值传递和引用传递。
-
this关键字。
1、静态方法
- 用static修饰。
- 我们创建一个Student类,然后用Demo类去调用。
java
public class Student
{
public static void say()
{
System.out.println("Hello");
}
}
- 我们在Demo类中,用main方法调用。
java
public class Demo
{
public static void main(String[] args)
{
Student.say();
}
}
2、非静态方法
- 需要实例化调用。
- 对象类型 对象名 = 对象值;
- 我们之前了解过的Scanner类就是这种调用方式。
- 我们还是用上面的那个方法,来实例化调用一下。
java
public class Student
{
public void say()
{
System.out.println("Hello");
}
}
- 我们在Demo类中,用main方法调用。
java
public class Demo
{
public static void main(String[] args)
{
Student student = new Student();//实例化
student.say();
}
}
我们执行一下就会发现,两种输出的内容都是一样的。
java
Hello
进程结束.....
我们再来看两个方法的互相调用。
java
package oop;
public class OopDemo02 {
public static void a()
{
b();
}
public static void b()
{
}
}
1、我们可以发现,两个静态方法是可以直接进行调用的。
2、但是如果一个是静态,一个是非静态,就不可以了。
java
package oop;
public class OopDemo02 {
public static void a()
{
b();//编译器就会报错!!
}
public void b()
{
}
}
因为静态方法,是和类一起加载的,但是非静态方法,是类实例化以后才存在的。
3、形参和实参
java
package oop;
public class OopDemo03 {
public static void main(String[] args) {
int add=new OopDemo03().add(1,2);//实际参数
System.out.println(add);
}
public int add(int a ,int b)//形式参数
{
return a+b;
}
}
- 实际参数类型,和形式参数类型要一一对应。
4、值传递和引用传递
- 值传递
java
package oop;
public class OopDemo04 {
public static void main(String[] args) {
int a =1;
System.out.println(a);
OopDemo04.change(a);
System.out.println(a);
}
//返回值为空
public static void change(int a)
{
a=10;
}
}
我们执行以下上述内容,发现输出的结果a还是等于1的。
java
1
1
进程结束......
这个就是因为,返回值是空,虽然赋值了,但是回到上面还是定义变量的值。
- 引用传递
java
package oop;
//引用传递:是对象,本质还是传递
public class OopDemo05 {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name);//null
OopDemo05.change(person);
System.out.println(person.name);//null
}
public static void change(Person person)
{
//person是一个对象:指向---> Person person = new Person();
//这是一个具体的人,所以可以改变属性。
person.name="落满樱花的羊";
}
}
//定义了一个类,有一个属性:name
class Person{
String name;//默认是null
}
我们执行一下上面的代码,输出一下结果。
java
null
落满樱花的羊
进程结束......
因为引用传递,指向的是对象,虽然也传递了一个值,但是是传递给对象,让其改变了属性,至于对象,我们现在可能对它的定义比较模糊,我们后续的文章中会仔细的研究一下对象😉。
5、this关键字
this关键字涉及到了继承,我们会在继承的文章中,详细说明这个关键字的作用!
以上就是所有方法调用的回顾,我们可以结合上一篇文章,方法的定义和面向对象的初识,进一步加深印象,为我们面向对象的文章打好基础。