让初学者理解方法的参数

【Machine learning】参数估计(个人通俗理解) 问题背景: 我们知道了总体的分布,但不知道分布的参数,因此我们就要对未知的参数做出估计。 两个类型的估计: 1.点估计 2.区间估计   1.点估计 包括矩估计和极大似然估计 1)矩估计: 用样本矩去估计总体矩 这里就可以用样本一阶矩(均值)估计整体一阶矩(均值),样本二阶中心矩估计(方差)整体二阶中心距(方差) 2)极大似然估计: 理解: 利用已知的样本结果,反推最有可... 阅读详情

我对参数的一些看法,给初学者看

2008-11-3日

 

  近日看到学过Java第九章的同学们,都在讨论参数的用法是多么难以理解,不太好用。以下是本人的一点见解,希望对各位同学理解程序中的参数有所帮助。

大家学到参数感觉难、感觉难以理解,这是我所意料到的。因为就往年的学生学到参数,一开始大都一知半解,不能完全的弄明白。也有好多学生直接问我,“参数咋就那么难学呢?”。我给他们的答案是,首先不要灰心,这是学习程序的一个必经阶段,往年我在教学过程中,大部分学生刚刚接触参数都不太理解,都要经过一个从恍然大糊涂到恍然大悟的过程,我经常给我的学生说举例子,这就像我们小学学习拼音一样,有谁可以一开始学就完全掌握了拼音的呢?有那么一个坎,一但我们跨过去了,就会有一种恍然大悟的感觉,回过头来再看拼音,原来拼音是如此的简单。所以说现在参数困绕了好过刚刚学过javaT9的学生,你们现在就要通过多练多体会来跨过程序中参数的坎。几乎没有S2、Y2的学生再说参数不理解吧?

好了,言归正传。先给大家举个例子,比如张三肚子饿了,肚子饿了肯定是想要吃东西了。吃苹果可以不可以饱?吃馒头可不可以饱?吃大米呢?都可以吃饱。可以把胃看作是一个想法,一但饿了,胃就要想要外界的食物,注意是要食物,如果给它食物以外的东西它是不要的,对吧?所以我们可以把胃看作一个方法,这个方法要是想工作(执行),就必须有食物,那么食物就是参数,所以你给胃木头可以吗?肯定不可以的,因为胃要的是食物,而木头不属于食物,所以参数是有类型要求的,也就是在给方法参数的时候不能随便给,要看方法要的是什么类型的东西,胃要的是食物?

好了,下面来点实战的。下面都是代码片段。所以大家不要直接拿来运行(我不再区别大小写了,因为Word在编辑的时候会改变一些字母的大小写状态,所以大家在运行的时候请做适当修改),代码是c#代码,Java类似。

    class Program

     {

       static  void DoubleTest()

         {

 

         }

        static void Main(string[] args)

         {

            int Number;

 

         }

}

我们看到定义了一个Main方法和一个DoubleTest方法,我在Main方法中定义了一个整型变量Number,现在在DoubleTest方法中写如下代码,大家认为对吗?

          static  void DoubleTest()

         {

int DoubleNum = Number * 2;     //此行会报错

 

         }

显然,DoubleTest方法中的语句是错误的,因为Number是在Main方法中定义的私有变量,他的生命周期为从定义开始,到其所在的大括号结束为止。所以在DoubleTest方法中是没有办法访问到Main方法中的Number变量的。如果我们还想让DoubleTest使用Number变量,除了把Number定义为全局变量,还有一种方法就是传参。我们可以修改一下代码:

       static   void DoubleTest(int num)

         {

int DoubleNum = num* 2;

 

         }

        static void Main(string[] args)

         {

            int Number;

             DoubleTest(Number);

 

         }

我们可以看到,在Main方法中调中了DoubleTest方法,而在调用时,把Main中的变量Number做为参数传给了DoubleTest中的num,这样相当于执行了一个num=Number的操作,在DoubleTest中使用num就相关于使用Main方法中的Number了。这就是传递参数要达到的效果。

我们来总结一下什么时候要使用参数,我们叫Main方法为调用方法,叫DoubleTest方法为被调用方法,当被调用方法想要使用调用方法中的私有变量时,被调用方法无法直接访问调用方法中的私有变量,所以我们可以采用传参数的方式把调用方法中的私有变量传递给被调用方法使用。

好,我们来继续,在上面的例子中,假如在Main方法中调用完DoubleTest方法后,要使用DoubleNum变量,可以使用吗?显示是不可以使用的。那么我们该怎么办呢?方法很简单,把DoubleNum返回就OK了。

        static  int DoubleTest(int num)

         {

int DoubleNum = num* 2;

return DoubleNum;

 

         }

        static void Main(string[] args)

         {

            int Number;

             int c = DoubleTest(Number);

 

     }

由于DoubleTest方法返回一个int类型,所以在调用DoubleTest方法时需要定义一个int类型的变量来接收DoubleTest方法的返回值。上例中我们定义了变量c来接收DoubleTest的返回值。那么在Main方法中使用C就和使用DoubleTest中的DoubleNum是同样的效果了。所以我们可以说,当调用方法想要使用被调用方法中的值的时候,我们可以让调用方法通过返回值的形式来把被调用方法中的变量传给调用方法。

上面我们简单讲了一下什么时候应该使用参数什么时候应该使用返回值。写成文字总觉得有点别扭,不能把自己的想法表达出来。所以此文过两天还是录成有声视频给大家再讲一下吧。有机会的话再给大家举一些实例来讲解一下参数的具体应用,同时也希望大家把你自己如何理解参数的想法和大家分享一下(未完,待续)。

上文希望对各位有所帮忙。
 

[调用Python对象的方法:self参数详解] -- Python self参数使用技巧 在调用一个对象的方法时,需要将该对象作为参数传递给方法,这个参数名通常叫做self。总结一下,self参数是Python中面向对象编程的重要概念之一,通过self参数可以访问对象的属性和方法,从而实现对象与方法之间的交互。首先,self参数指的是对象本身,是Python在调用一个方法时自动传入的一个参数。除了在初始化方法和实例方法中使用self参数外,在类方法和静态方法中也可以使用self参数。最后,需要注意的是,在调用对象的方法时,Python会自动将对象传递给self参数。那么self参数到底是什么? 阅读详情

相关推荐

电机控制::软件架构::微型软件架构

所谓软件架构就是软件分层:HAL库,嵌入式操作系统,中间件,应用层。大型项目可参考借鉴ROS/PX4/Apollo/FMT等无人机、机器人、无人驾驶等开源项目;电机控制大型为AUTOSAR架构,小型跑裸机参考 前后台系统 或 微型实时操作系统对模块管理的思想。基本原理还是参照大型项目的架构来的,只是大部分层与块都相对简单,也没有操作系统这一层。硬件架构了解不同芯片组合及其各自的特点。1.FPGA+;2.架构;3.TC387+AUTOSAR架构,车规级,汽车领域常用。

one__leaf的博客 1696

Java中参数的简单理解

理解一:参数两种,种叫形参,种叫实参. 名面括号面用逗号形参,例 public void coverAtoB(String str1, int i2) {     ...... } ,没参数 public void coverCtoD() {     ...... } str1字符串类型形参,i2整数形形参. 想要使用必须调用给传递两形参实际值(实参) 例: coverAt

sinat_39560577的博客 2889

原形网络(Prototypical Networks)基于PyTorch的实现

我在Jay2coomzz的基础上修改了数据处理方式和evaluation_model()方法,作为初学者若有不当之处恳请大家批评指正,原文链接如下: https://blog.youkuaiyun.com/weixin_38471579/article/details/102631018 数据集和源码链接将放到评论区 文章目录1 数据集一个简单的数据集介绍数据集处理2 搭建网络CNNProtonets 1 数据集 一个简单的数据集介绍 Omniglot数据集一共包含1623 类手写体,每一类中包含20 个样本。其中.

weixin_43872532的博客 6637

关于方法的一些理解

方法的重载 重载的概念 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数 类型不同即可。 重载的特点: 与返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数或参数类 型)。调用时,根据方法参数列表的不同来区别。 重载示例: //返回两个整数的和 int add(int x,int y){return x+y;} //返回三个整数的和 int add(int x,int y,int z){return x+y+z;} //返回两个小数的和 double add(double x,

weixin_47597620的博客 204

基于USB总线的虚拟摄像头(UVC)原理简介

前面文章中我们分析了虚拟声卡的实现,在文章中我们展示了创建一个虚拟麦克风和虚拟扬声器的技术原理。完成了音频的虚拟化之后,这里就要谈论一下对于视频的虚拟化了——虚拟摄像头的实现。关于虚拟麦克风和虚拟扬声器的实现,可以参考。虚拟摄像头应用也是非常普遍的,例如云桌面远程摄像头的实现,直播技术。目前对于虚拟摄像头有三种实现方式:DirectShow虚拟摄像头,这个是一种比较古老的技术;在新版本应用中,该项技术基本失效了,尤其是UWP框架程序,DirectShow虚拟摄像头就失效了。

tianxilink的博客 5416

Python爬虫实战:5分钟搞定东方财富网股票数据抓取(附完整代码)

本文详细介绍了如何利用Python爬虫技术,快速抓取东方财富网的实时股票数据。通过逆向分析其JSONP数据接口,构建了包含请求处理、数据清洗、分页调度及多格式存储的完整自动化采集系统,并提供了应对反爬策略与生产部署的进阶优化思路,附有可直接运行的完整代码。

weixin_29084231的博客 875

java方法的传递_Java中方法参数传递的问题

Java中方法参数传递的问题可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数,这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了。这种传递方式,我们称为参数传递。在这里,定义方法时,参数列表中的变量,我们称为形式参数。调用方法时,传入给方法的数值,我们称为实际参数在Java中调用方法时,如果参数是基本类型(byte/short/int/long/float/d...

weixin_39854326的博客 315

全国各省份影像下载地址(11级别)

cesium中使用urltemplate加载,leaflet中使用tile加载,具体加载有问题可以给我留言。

资深三维GIS开发 5153

Java中方法的参数传递初学者常见的问题与堆栈理解

在C语言中,如果函数的形参是指针类型,那么在函数体中,修改该形参,实参也会产生相应变化 在Java中,由于类的实例化在堆中完成,方法的形参在栈中创建,这时会产生一种新手常见的错误(可能理解的不透彻,欢迎讨论) 先看下面一段代码 import javafx.scene.shape.Circle; public class ClassTest { public static void main(String[] args) { ClassTest classTest = new Cla

韩云昊的菜园 401

最终篇——SWAT模型的建立

同理,Soil Data也是同样的方法导入,在Soil Database Options的选项中,选择UserSiol,用同样的方法导入土壤类型,进行重分类。打开窗口后,只定义HRU Thresholdes,其余两个不用设置,设定各数据单元的计算率,这里的10%的意思是计算精度,即分成级HRU计算单元太小,小于平均计算单元的10%,我们就不对这HRU单元进行计算(也就是说太破碎的计算单元不进行计算),若选择0%意味着全部进行计算,需要耗费大量的内存和时间,对计算机要求较高,不建议。

m0_72556434的博客 5623

ORCAD原理图关联封装时出现ERROR(ORCIS-6245)、ERROR(ORCIS-6013)问题

1、当你进行如下操作时: 系统先是提示你出现ERROR(ORCIS-6245)然后再确定后再出现ERROR(ORCIS-6013)问题 是由于你的数据库的路径不对。 具体操作方法如下:1、先找到你的CAPTURE.INI文件。 2、用记事本打开CAPTURE.INI。找到下图路径 3、在你的Orcad capture CIS原理图软件中点击 Options------>CIS con...

weixin_42304393的博客 2万+

基本数据类型参数传递

/* 方法,调用中的参数传递问题 1、方法参数是基本数据类型 */ public class MethodDemo{ public static void main (String[] args){ int a=1; int b=2; change(a,b); System.out.println(a); System.out.println(b); } public static void change(int a,int b ){ a=a+b; b=b+a; } }

weixin_43893423的博客 208

图文详解Trae配置Java开发环境

本文介绍了Trae开发工具的安装配置流程:首先从官网下载安装Trae,然后安装Java开发所需的Extension Pack for Java和Spring Boot Extension Pack插件。关键步骤包括修改settings.json配置文件,需指定JDK路径、Maven可执行文件路径和用户设置文件路径。所有操作均配有图示说明,并强调要替换为实际电脑路径。

谷哥的小弟 6001

不同语言传递参数的方式-Objective-C中一个方法如何传递多个参数的理解

https://www.cnblogs.com/killiancheung/p/4588150.html 原来如此 Objective-C语法中多参数传递方法经常是初学者最容易犯困的地方。我自己也是刚刚悟出来与大家分享. 分析 由于我们已有的语言经验告诉我们定义方法都是: 一个类型匹配一个参数(动态语言甚至可以忽略类型) 例如: 1. C/C++ public void say(char* word1,char* word2) 2. JAVA pub

u010029439的博客 563

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java main 函数 参数设置_main方法的参数

敲例子的时候无意中把主方法的参数给落下了,当时没有发现,保存之后就去编译,运行了,通常情况下编译没有错误那胜利就在掌握之中了,没想到这次我竟然在"不一般"的行列中,编译无误,运行出错,错误信息如下:"找不到主方法?记得我写了main()方法了啊?回到代码处看了一下,也是static的啊?没问题啊,算了把错误信息拿出来与代码对照着看吧,发现唯一不一样的地方就是我的方法中没有参数,立刻将参数添进去,编...

weixin_39620118的博客 952

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Java中可变个数形参的方法:初学者易懂的指南

在Java编程中,可变个数形参(Varargs,即variable number of arguments)是一个非常实用的特性。它允许我们在定义方法时,指定一个参数可以接受任意数量的值。这对于那些需要处理不确定数量参数的方法来说,非常有用。本文将向初学者介绍Java中可变个数形参的方法,并通过简单的示例代码帮助大家理解。

qq_36720723的博客 506

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

让初学者理解Struts

让初学者理解Struts新手学习struts可以更加好的理解面向对象开发的方法、3层结构的优势、模型驱动等概念。Struts是一个不错的java框架,但是它包含的内容也相当多,对于初次接触它的人,特别是java新手,可能有很多不明白的地方。根据我自己的理解和实践,觉得struts还是相当容易上手,网上能找到很多例子。但是这些例子又讲的比较浅,没有涉及到实际项目的应用,比如如何连接数据库,如何实

我的专栏 1307

LSTM参数个数计算方法

LSTM的计算方式如下(不加偏置): 可以看到若不加偏置,该LSTM层共有4个权重参数,图中输入的一个timestep的特征大小为3(绿色单元),隐藏层输出大小为2(橙色单元),因此该LSTM层的参数个数为: n=4∗(2+3)∗2=40n=4*(2+3)*2=40n=4∗(2+3)∗2=40 若加上偏置则该LSTM层的参数个数为: n=4∗((2+3)∗2+2)=48n=4*((2+3)*2+...

这个人很蓝 3578

全网最详细的Java方法解析

Java语言中的“方法”(Method)在其他语言当中也可能被称为“函数”(Function)。对于一些复杂的代码逻辑,如果希望重复使用这些代码,并且做到“随时任意使用”,那么就可以将这些代码放在一个大括号“{}”当中,并且起一个名字。使用代码的时候,直接找到名字调用即可。 定义格式 首先了解关于方法的两个概念: 1.参数:是指进入方法中的数据,有了这些数据,方法才能执行逻辑。 2.返回值...

编程人生 3万+

java隐式参数和显示参数

原文详解:java隐式参数和显示参数 原文链接: http://licocom.com/archives/1199 早起来公司看书,看见了一个叫做隐式参数和显示参数, 竟然不知道是什么意思,哈哈。。。便查询做以记录 定义如下: 显示参数:在方法中明确定义的参数为显示参数 隐式参数:未在方法是定义的,但的确又动态影响到程序运行的“参数” 并在类的方法中调用了类的实例域。 实例如下: 我们先编写一个...

木子de小屋屋啦啦啦 1891

Java方法的简单理解

1:方法是为了更好的编程,提高工作效率 。 2:方法(method),就是用来完成特定代码的功能片段,类似与其他语言的函数(function)。 3:方法的使用 方法的声明格式: [修饰符1 修饰符2 …] 返回值类型 方法名(形式参数列表){ Java语句;… … … } 方法的调用方式 对象名.方法名 (实参列表) 形式参数:在方法声明时用于接收外界传入的数据 实参:调用方法时实...

qq_45504799的博客 143

C#创建方法、使用方法、使用表达式主体方法、从方法返回多个值、作用域、重载方法、重构代码、可选参数和具名参数

方法是具名的语句序列,如果学过其他编程语言,比如c,c++,可以将方法视为与函数相似的东西. 声明方法 声明c#方法的语法如下: returnType methodName(ParameterList) { //主体语句 } returnType是类型名称,指定方法返回的数据类型,比如int,string.如果没有返回值,要使用void. methodName是调用方法时所用的名称,这个名称同...

qq_44800780的博客 1559

零基础理解dc=y116&pc=:URL参数入门指南

URL参数是附加在网页地址后面的键值对,用于向服务器传递额外信息。它们通常以?开头,多个参数之间用连接。比如在中,dc和pc就是参数名,y116和123是对应的值。

OnyxPanther23的博客 1万+

方法的理解与语法格式

方法的理解与语法格式 一. 解决某一件事的功能实现。方法,是一段代码块的封装,方法中的代码应围绕某一功能的实现来写,目标明确,逻辑清晰。 二. 在Java中,声明方法的具体语法格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,......){ 执行语句 1.方法的调用 2.变量的操作:声明 赋值 修改 3.程序结构:选择结构 循环结构 return 返回值; } 三. 说明: 修饰符:访问、权限修饰符 public(公共访问控制符),private(私有访问控制符)

Tommy·Shelby的博客 409

argc和argv,参数个数和参数值

argc:argument count 参数个数 argv:argument value 参数值 C/C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int argc, char* argv[]) 这两个参数的作用: argc 是指命令行输入参数的个数(以空白符分隔),而argv存储了所有的命令行参数 ; 假如有一段程序是test.exe,如下所示 #include <st...

pl0020的博客 9123
上一篇: C51只有一个串口,不够用怎么办?介绍三种单片机模拟串口的方法
下一篇: WinForm程序中使用在项目中内嵌mdf数据的问题
codeedu
博客等级 码龄16年 201粉丝 9原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值