Java面向对象03:回顾方法的调用
2022/1/7 17:07:05
本文主要是介绍Java面向对象03:回顾方法的调用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
静态方法 static :可以直接通过 类名.方法名 调用
非静态方法:需要实例化类进行调用 new 类.方法名
public class Demo02{ public static void main(String[] args) { // 静态方法调用 Student.talk(); // 非静态方法调用 需要先实例化类 // 对象类型 对象名 = 对象值; Student student = new Student(); student.say(); } }
// 学生类 public class Student { // 非静态方法 public void say() { System.out.println("学生说话了"); } // 静态方法 static public static void talk() { System.out.println("学生说话了"); } }
注意:
静态方法调用静态方法、非静态方法调用静态方法和非静态方法是没问题的。
但是静态方法调用非静态方法是会报错的。因为静态方法和类一起加载,而非静态方法需要类实例化后才存在。
public class Demo03 { public static void main(String[] args) { // 实际参数和形式参数的类型要对应! int add = Demo03.add(1, 2); System.out.println(add); } public static int add(int a, int b) { return a+b; } }
// 值传递 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; } }
运行结果:
这就是值传递,虽然在 change 方法中把10赋值给了 a ,但只是在 change 方法中赋的,并没有传递到主方法,所以在主方法中 a 仍是 1
// 引用传递:对象,本质还是值传递 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 = new Person(); // 这是一个具体的人,可以改变属性! person.name = "秦疆"; } } // 定义了一个 Person 类,有一个属性 name class Person { String name; // null }
运行结果:
这篇关于Java面向对象03:回顾方法的调用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25初学者必备:订单系统资料详解与实操教程
- 2024-12-24内网穿透资料入门教程
- 2024-12-24微服务资料入门指南
- 2024-12-24微信支付系统资料入门教程
- 2024-12-24微信支付资料详解:新手入门指南
- 2024-12-24Hbase资料:新手入门教程
- 2024-12-24Java部署资料
- 2024-12-24Java订单系统资料:新手入门教程
- 2024-12-24Java分布式资料入门教程
- 2024-12-24Java监控系统资料详解与入门教程