关于java方法调用的回顾

关于java方法调用的回顾

上篇文章中我们回顾了一下java方法的定义,本篇文章中我们来回顾一下方法的调用,这样更利于咱们后续的面向对象的学习😀。

方法的调用

  • 静态方法。

  • 非静态方法。

  • 形参和实参。

  • 值传递和引用传递。

  • this关键字。

1、静态方法

  • 用static修饰。
  • 我们创建一个Student类,然后用Demo类去调用。
public class Student
{public static void say(){System.out.println("Hello");}
}
  • 我们在Demo类中,用main方法调用。
public class Demo
{public static void main(String[] args){Student.say();}
}

2、非静态方法

  • 需要实例化调用。
  • 对象类型 对象名 = 对象值;
  • 我们之前了解过的Scanner类就是这种调用方式。
  • 我们还是用上面的那个方法,来实例化调用一下。
public class Student
{public void say(){System.out.println("Hello");}
}
  • 我们在Demo类中,用main方法调用。
public class Demo
{public static void main(String[] args){Student student = new Student();//实例化student.say();}
}

我们执行一下就会发现,两种输出的内容都是一样的。

Hello进程结束.....

我们再来看两个方法的互相调用。

package oop;public class OopDemo02 {public static void a(){b();}public static void b(){}
}

1、我们可以发现,两个静态方法是可以直接进行调用的。

2、但是如果一个是静态,一个是非静态,就不可以了。

package oop;public class OopDemo02 {public static void a(){b();//编译器就会报错!!}public void b(){}
}

因为静态方法,是和类一起加载的,但是非静态方法,是类实例化以后才存在的。

3、形参和实参

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、值传递和引用传递

  • 值传递
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的。

1
1进程结束......

这个就是因为,返回值是空,虽然赋值了,但是回到上面还是定义变量的值。

  • 引用传递
package oop;
//引用传递:是对象,本质还是传递
public class OopDemo05 {public static void main(String[] args) {Person person = new Person();System.out.println(person.name);//nullOopDemo05.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
}

我们执行一下上面的代码,输出一下结果。

null
落满樱花的羊进程结束......

因为引用传递,指向的是对象,虽然也传递了一个值,但是是传递给对象,让其改变了属性,至于对象,我们现在可能对它的定义比较模糊,我们后续的文章中会仔细的研究一下对象😉。

5、this关键字

this关键字涉及到了继承,我们会在继承的文章中,详细说明这个关键字的作用!

以上就是所有方法调用的回顾,我们可以结合上一篇文章,方法的定义和面向对象的初识,进一步加深印象,为我们面向对象的文章打好基础。

1、关于java方法定义的回顾

2、关于java方法定义的回顾

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/618439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于JavaWeb+BS架构+SpringBoot+Vue+Spark的共享单车数据存储系统的设计和实现

基于JavaWebBS架构SpringBootVueSpark的共享单车数据存储系统的设计和实现 文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 文末获取源码 Lun文目录 第一章 概述 2 1.1课题研究背景 2 1.2 课题研究意义 2 1.3国内…

ASP.NET作业批改系统源码

ASP.NET作业批改系统源码 源码描述: 该系统主要完成学生注册,登陆,作业的上传,教师对作业进行发布,批改等功能。 包括登陆子系统,学生子系统,教师子系统和管理员子系统。 管理员功能 资料管理:修…

【Maven】004-基于 IDEA 构建 Maven 工程

【Maven】004-基于 IDEA 构建 Maven 工程 文章目录 【Maven】004-基于 IDEA 构建 Maven 工程一、概述1、项目构建2、命令方式项目构建命令war 包打包插件和 jdk 版本不匹配 二、项目构建1、命令方式2、IDEA 可视化方式3、构建产物 一、概述 1、项目构建 项目构建是将软件开发…

XTdrone运行ego需打开多个终端 麻烦 一键启动脚本

VINS-Fusion仿真部分 建立plan.sh文件 #!/bin/bash gnome-terminal -x bash -c "cd ~/PX4_Firmware; roslaunch px4 indoor1.launch" sleep 5 gnome-terminal -x bash -c "cd ~/xtdrone_ws; bash scripts/xtdrone_run_vio.sh" sleep 5 gnome-terminal …

推荐3个wordpress模板网站

WP模板牛 http://www.wpniu.com 上面有很多免费wordpress模板资源的网站,除了免费模板,还有付费模板。 My模板(我的模板) http://www.mymoban.com 老牌网站模板资源站,上面有wordpress模板、帝国CMS模板、WooComm…

获得利润和成长,应采取什么步骤, 澳福认为只需坚持一点

大多数交易者通常会考虑在外汇交易中获取利润,但只有少数人会思考这样一个问题:为了获得利润和专业成长,应该采取什么步骤。像“外汇交易怎么赢利”这样的文章很受市场欢迎,但是很少有人在交易中使用这些文章中给出的建议,因为在生…

图像监视:在 Visual Studio 调试器中查看内存中图像

先决条件 本教程假定您具有以下可用项: 安装了 Update 1 的 Visual Studio 2012 Professional(或更高版本)。更新 1 可在此处下载。在 Windows 计算机上安装 OpenCV(教程:在 Windows 中安装)。能够在 Visua…

unity C#深拷贝、浅拷贝、直接赋值区别与经典实例

文章目录 浅拷贝深拷贝浅拷贝和直接赋值有啥区别 在C#中,浅拷贝(Shallow Copy)和深拷贝(Deep Copy)是两种不同级别的对象复制方式。它们的区别主要体现在处理引用类型字段时的行为。 浅拷贝 浅拷贝是指复制对象时&…

【金猿人物展】DataPipelineCEO陈诚:赋能数据应用,发挥未来生产力

‍ 陈诚 本文由DataPipelineCEO陈诚撰写并投递参与“数据猿年度金猿策划活动——2023大数据产业年度趋势人物榜单及奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 我们处在一个“见证奇迹”的时代。在过去的20年间,我们见证了大数据技术快速发展所带…

VScode全局搜索屏蔽、显示屏蔽指定文件类型及文件夹

1.键盘上按快捷键“ crtl 逗号 ”启动设置界面 crtl ,设置界面显示如下: 2.搜索屏蔽 2.1.输入 search.exclude search.exclude 设置界面显示如下: 2.2. 点击下图红色箭头“Add Pattern”,添加想要屏蔽的文件类型或文件夹 **/*.git *…

做网页抓取时如何处理验证码

网络爬虫是自动从网站提取数据的过程,它已经彻底改变了企业获取信息和获取洞察的方式。然而,为了防止自动化机器人访问网站,CAPTCHA旨在阻碍网络爬虫的工作。在本文中,我们将探讨处理CAPTCHA的有效策略,并介绍Capsolve…

详解Skywalking 服务Overview页面的参数含义(适合小白)

本文针对刚刚接触skywalking的同学,重点讲解服务Overview页面中各个参数的含义,为大家快速上手skywalking会起到帮助作用! 最重要的三个指标 Service Apdex(数字):当前服务的评分 Successful Rate(数字&a…

0104 AJAX介绍

Ajax 的全称是 Asynchronous Javascript And XML (异步 JavaScript 和 XML )。 通俗的理解:在网页中利用 XMLHttpRequest 对象和服务器进行数据交互的方式,就是 Ajax Ajax 能让我们轻松实现网页与服务器之间的数据交互。 浏览器…

【ceph】在虚拟环境中需要给osd所在的虚拟盘扩容操作

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

国内开源环境漫谈

我国开源软件产业相较于欧美发达国家而言起步相对较晚,开源项目很少超过五年,开发者较年轻。国外很多开源项目都是10年以上的规划与投入。在开源社区发展初期、发展期、协作期、结晶期与流行期的五个阶段中,中国的开源社区平台大多处于前三个…

IDEA新建SpringBoot工程时java版本只有17和21

解决方法:替换源 参考博客:https://www.kuazhi.com/post/712799571.html

数据仓库研发规范

数据仓库研发规范 本文将介绍数据仓库研发规范的阶段规划、角色职责和整体流程。 在大数据时代,规范地进行数据资产管理已成为推动互联网、大数据、人工智能和实体经济深度融合的必要条件。贴近业务属性、兼顾研发各阶段要点的研发规范,可以切实提高研…

洛谷P3084 [USACO13OPEN] Photo G

题目描述 Farmer John has decided to assemble a panoramic photo of a lineup of his N cows (1 < N < 200,000), which, as always, are conveniently numbered from 1..N. Accordingly, he snapped M (1 < M < 100,000) photos, each covering a contiguous ra…

c++算法之二分

目录 二分法简介 解题步骤 整数二分 模板 例题 输入描述 输出描述 样例输入输出 解 浮点二分 模板 二分答案&#xff08;最重要&#xff09; 模板 例题 跳石头 题目描述 输入描述 输出描述 输入输出样例 解 例题 肖恩的苹果林 输入描述 输出描述 解 测…

linux-前端项目由nginx迁移到apache httpd

linux-前端项目由nginx迁移到apache httpd 1、前端项目存放目录为 /var/www/dist 虚拟主机端口80 反向代理拦截 /prod-api 后端服务地址 http://192.168.0.44:8097 2、在/etc/httpd/conf.d/目录中&#xff0c;创建一个vhost.conf的文件&#xff0c;放入以下内容 <VirtualHos…