方法的调用
1.静态方法的调用
点击查看代码
package com.Tang.oop;
public class Demo01 {
public static void main(String[] args) {
/*
1.若在student类中的方法是静态方法也即
也就是加上了static
*/
Student.say();
}
}
package com.Tang.oop;
//学生类
public class Student {
//静态方法
public static void say(){
System.out.println("学生说话了");
}
}
点击查看代码
package com.Tang.oop;
public class Demo01 {
public static void main(String[] args) {
/*
若student类中的方法是非静态方法则可以通过
实例化这个类 new
对象类型 对象名 = 对象值
*/
Student student = new Student();
student.say();
}
}
package com.Tang.oop;
//学生类
public class Student {
//非静态方法
public void say(){
System.out.println("学生说话了");
}
}
点击查看代码
package com.Tang.oop;
public class Demo01 {
/*static是和类一起加载的,也就是当类Demo01创建的时候static方法就存在了*/
public static void a(){
//当a和b方法都是static或者都是非静态方法时彼此之间的调用都不会报错
b();//一个已经存在的方法去调用一个不存在的方法所以会报错
}
//当类实例化(就是通过new)之后才存在
public void b(){ }
}
4.1值传递
在c里面可以理解为修改局部变量的值并不会改变在另一个函数里该变量的值,而修改全局变量,则在每一个方法中该变量的值都会随之改变。
4.2引用传递
点击查看代码
package com.Tang.oop;
//引用传递,传递对象,实质还是值传递
public class Demo03 {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name);//输出null
change(person);
System.out.println(person.name);//输出tang
}
public static void change(Person person){
//person是一个对象,指向的是Person person = new Person();这是一个具体的人,所以可以改变属性
person.name="tang";
}
}
//一个类中可以有多个class,但是只能有一个public class
class Person{
String name;
}