java 实参和形参的区别

打个比方:方法就像城门,而形参则规定了什么人可以通过(对方法来说就是调用).城门张贴了通行规定:1、男性能通过,女性不可以(类似于条件1)2、必须是活人(死人类似于方法中传入null)。根据此规定,如果是活的男人的话,无论是大人小孩青年老人病人、爷爷儿子孙子兄弟都可以进入此门(甚至公狗也可以),任何非男性生物均不能通过。反应到方法上来,比如有这样一个方法:public void doSometing(Object obj),Object相当于所有物体,在方法中进行判断此物体是否为雄性类似于张贴通行规定并审核之.因为你不确定到底是什么将进城门(也就是执行这个方法),所以不能使用确切的参数,那么就使用一个大家都符合的参数传进来,至于到底能不能通过则根据这个的情况具体判定.根据此方法,男人女人都属于人,所以Object对象obj也就是人,这个是形参,因为此时到底是男人使用此方法还是女人使用此方法未知,是大人还是小孩还是老人使用此方法未知,"人"(obj)仅仅是一个概念上的东西.而到了实际情况发生时,比如一个小男孩要进城门,那么要根据规定进行审核,也就是方法中的doSometing,小男孩将自己作为一个条件交给审核的方法,这时的小男孩就是实参.
形参和实参有以下显著的区别: 1、形参不能离开方法。形参只有在方法内才会发生作用,也只有在方法中使用,不会在方法外可见。而实参可以再程序的任何地方都使用。 2、形参代表一个合集,具有不确定性,而形参代表一个独立事物,具有确定性(即使是为null)。也就是说,形参不能代表具体的对象,只能代表这些对象共同的属性(比如超类、各种其他自定义属性等等),而实参则是具体的对象(比如超类的实例)。 3、形参的值在调用时根据调用者更改,实参则用自身的值更改形参的值(指针、引用皆在此列)、用通俗的话来说,形参告诉你什么样的东西才能用它,就好像一个声明、公告或者通则;而实参则是告诉你我在用它,就像一个实干家

时间: 2025-01-25 12:08:47

java 实参和形参的区别的相关文章

关于实参与形参类型不一致问题求解

问题描述 关于实参与形参类型不一致问题求解 #include<stdio.h> #include<math.h> double e(double *u,double *v) { *u=exp(*u)*cos(*v); *v=exp(*u)*sin(*v); return ; } double ln(double *u,double *v) { *u=ln(sqrt((*u)*(*u)+(*v)*(*v))); *v=atan((*v)/(*u)); return; } double

java方法-java一个方法形参有两个,如何在调用的时候只传入一个参数

问题描述 java一个方法形参有两个,如何在调用的时候只传入一个参数 如题,有一个方法里两个形参,我另一个文件类中一个方法想要那个方法的返回值,可是第二个参数在这里用不到,能否只传第一个参数 如何实现,前提这个类不能继承后重写方法,因为多人合同写的. 解决方案 不可以,变通的办法是再写一个只有一个参数的函数重载形式,在其中给另一个参数一个预设值,间接调用. 解决方案二: 一个Action调用两个不同的方法 解决方案三: 调用的时候给一个无影响的值 解决方案四: 讲道理的话是不能这样做的,不过如果

字符串-java中String str1…的区别,详细见内容

问题描述 java中String str1-的区别,详细见内容 String str1,str2; str1 = "we are friends"; str2 = "we are friends"; 和 String str1 = "we are friends"; String str2 = "we are friends"; 在内存上的区别是什么? 是否有区别? 解决方案 没有区别,他们指向同一个对象 解决方案二: 就最后

java类的问题-关于java中的方法的区别

问题描述 关于java中的方法的区别 我是java菜鸟,想问一个问题关于 public static void main (String [] args){} 和static public void main (String [] args){} 的区别是什么?在jvm中是如何执行的? 解决方案 应该是没区别的吧 你要看区别 先分别编译后 后看看编译后的内容的区别吧 很多代码经过编译后效果是一样的

java,javacript和jsp的区别

问题描述 各位仁兄,想请教下java,javacript和jsp的区别.因小弟最近初学javacript,这三方面的内容都涉及到,望好心的仁兄不吝赐教,谢谢! 解决方案 解决方案二:java:基本的语言,通常说j2sejavascript:浏览器脚本语言jsp:java服务端页面,允许你在上面写java代码创建动态页面解决方案三:引用1楼ylz2007的回复: java:基本的语言,通常说j2sejavascript:浏览器脚本语言jsp:java服务端页面,允许你在上面写java代码创建动态页

java中方法和函数的区别与联系是什么

问题描述 java中方法和函数的区别与联系是什么 java中方法和函数的区别与联系是什么,是不是叫法不同而已,比如构造方法即是构造函数 解决方案 没有什么区别.比如外婆在北方叫姥姥. 解决方案二: 方法和函数的区别

6 0函数参数-函数实参和形参个数不同,为什么能通过VC++6.0编译

问题描述 函数实参和形参个数不同,为什么能通过VC++6.0编译 函数定义如下: void fun(char s[]){ .... } int main(){ char s[]=...,t[]=...; fun(s,t); ... } 为何能通过VC++6.0的编译,实际传递给fun的参数是s 解决方案 VC6 没有安装,但 VS2015 下肯定是编译无法通过的. 因为从语法上来讲,也肯定是编译不能通过的. void fun(char s[]){ return ; } int _tmain(in

java equals和=,==的区别详细介绍_java

Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean    他们之间的比较,应用双等号(==),比较的是他们的值. 2.复合数据类型(类)    当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false. JAVA当中所有的类都是继承于Object这个基

Java字符流与字节流区别与用法分析_java

本文实例讲述了Java字符流与字节流区别与用法.分享给大家供大家参考,具体如下: 字节流与字符流主要的区别是他们的的处理方式 流分类: 1.Java的字节流 InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先. 2.Java的字符流 Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先. InputStream,OutputStream,Reader,writer都是抽象类.所以不能直接new 字节流是最基本的,所有的Inpu