方法重载

方法(定义、调用、重载)—Java

跟風遠走 提交于 2020-01-13 17:25:13
一、 什么是方法 不可能所有的功能都放到main中,需要定义其他方法完成指定功能,需要时调用方法即可 封装在一起来执行操作语句的集合,用来完成某个功能操作 封装在一起来执行操作语句的集合,用来完成某个功能操作 二、 怎么定义方法 定义方法 [修饰符] 方法返回值类型 方法名(形参列表 ) { 方法体 return 返回值; } 实例 public static int add(int a, int b, int c) { int k = a + b + c; return k; } 返回值类型:必选,如果没有返回值,须写void。方法只能返回一个值 参数列表:可以0个、1个、多个,需要同时说明类型。称为形式参数 方法体:完成具体功能。如果有返回值,必须有return语句;如果没有返回值,默认最后一条语句是return,可以省略 。 三、 方法调用 四、 方法的重载与重写 方法重载 • 一个类中可以定义有相同的名字,但参数不同的多个方法 • 调用时,会根据不同的参数表选择对应的方法。 • 判断依据 • 同一个类 • 同一个方法名 • 不同:参数列表不同(类型,个数,顺序不同) • 注意 • 只有返回值不同不构成方法的重载( • int a(String str){}, • void a{String i}, • 调用:a(), 谁能告诉我是调哪个方法? • 只有形参的名称不同

重载,继承,重写和多态的区别

人走茶凉 提交于 2020-01-13 14:06:27
继承是子类获得父类的成员。 多态则是为了避免在父类里大量重载引起代码臃肿且难于维护(多态则是父类使用子类的方法)。 重写是继承后重新实现父类的方法。 重载是在一个类里一系列参数不同名字相同的方法。 来源: CSDN 作者: sutong_first 链接: https://blog.csdn.net/sutong_first/article/details/103952640

CSharp中的Vector结构

混江龙づ霸主 提交于 2020-01-13 13:57:46
本节将开发一个结构Vector,来演示运算符重载,这个Vector结构表示一个三维矢量。如果数学不是你的强项,不必担心,我们会使这个例子尽可能简单。三维矢量 只是三个(double)数字的一个集合,说明物体和原点之间的距离,表示数字的变量是x、y和z,x表示物体与原点在x方向上的距离,y表示它与原点在y方向上的距离, z表示高度。把这3个数字组合起来,就得到总距离。例如,如果x=3.0, y=3.0, z=1.0,一般可以写作(3.0, 3.0, 1.0),表示物体与原点在x方向上的距离是3,与原点在 y方向上的距离是3,高度为1。 矢量可以与矢量或数字相加或相乘。在这里我们使用术语"标量"(scalar),它是数字的数学用语-- 在C#中,就是一个double。相加的作用是很明显的。如果先移动(3.0, 3.0, 1.0),再移动(2.0, -4.0, -4.0),总移动量就是把这两个矢量加起来。矢量的相加是指把每个元素分别相加,因此得到(5.0, -1.0,-3.0)。此时,数学表达式总是写成c=a+b,其中a和b是矢量,c是结果矢量。这与使用Vector结构的方式是一样的。 注意: 这个例子是作为一个结构来开发的,而不是类,但这并不重要。运算符重载用于结构和类时,其工作方式是一样的。 下面是Vector的定义-- 包含成员字段、构造函数和一个ToString()重写方法

Java重写与重载

混江龙づ霸主 提交于 2020-01-11 14:55:18
一、重写 (Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。 重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异常,因为 Exception 是 IOException 的父类,只能抛出 IOException 的子类异常。 在面向对象原则里,重写意味着可以重写任何现有方法。 方法的重写规则: 参数列表必须完全与被重写方法的相同。 返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类(java5 及更早版本返回类型要一样,java7 及更高版本可以不同)。 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为 public,那么在子类中重写该方法就不能声明为 protected。 父类的成员方法只能被它的子类重写。 声明为 final 的方法不能被重写。 声明为 static 的方法不能被重写,但是能够被再次声明。 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法。

函数对象 (伪函数)

一曲冷凌霜 提交于 2020-01-10 04:36:55
尽管函数指针被广泛用于实现函数回调,但C++还提供了一个重要的实现回调函数的方法,那就是函数对象。函数对象(也称“算符”)是重载了“()”操作符的普通类对象。因此从语法上讲,函数对象与普通的函数行为类似。 用函数对象代替函数指针有几个优点: 1>首先,因为对象可以在内部修改而不用改动外部接口,因此设计更灵活,更富有弹性。 2>函数对象也具备有存储先前调用结果的数据成员。 在使用普通函数时需要将先前调用的结果存储在全程或者本地静态变量中,但是全程或者本地静态变量有某些我们不愿意看到的缺陷。 3>其次,在函数对象中编译器能实现内联调用,从而更进一步增强了性能。这在函数指针中几乎是不可能实现的。 下面举例说明如何定义和使用函数对象。首先,声明一个普通的类并重载“()”操作符: class Square { public: int operator() (int n) { return n * n; } }; 重载操作语句中,记住第一个圆括弧总是空的,因为它代表重载的操作符名;第二个圆括弧是参数列表。一般在重载操作符时,参数数量是固定的,而重载“()”操作符时有所不同,它可以有任意多个参数。 因为在Square中内建的操作是一元的(只有一个操作数),重载的“()”操作符也只有一个参数。返回类型与参数类型相同-本例中为int。函数返回的是实参平方的整数。 使用函数对象 Square

面向对象的三个基本特征

被刻印的时光 ゝ 提交于 2020-01-10 03:52:38
面向对象的三个基本特征是: 封装、继承、多态 1. 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 2. 继承 面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为“基类”、“父类”或“超类”。 继承的过程,就是从一般到特殊的过程。 要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。 在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式有三类:实现继承、接口继承和可视继承。 Ø 实现继承是指使用基类的属性和方法而无需额外编码的能力; Ø 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力; Ø 可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。 在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承

方法与方法重载

我的未来我决定 提交于 2020-01-10 03:30:22
一、 单独调用、打印调用、赋值调用 二、方法注意事项:只能定义在类中,不能在方法中嵌套; 多个return只能一个被执行到; 三,方法重载: 与返回值无关因为方法的三种调用方式:可以直接调用、打印调用、赋值调用; 四、方法重载的好处:最典型的使用例子:println 可以不用加类型说明输出任何数据类型; println源码: 来源: https://www.cnblogs.com/wmqiang/p/11246802.html

重载与重写

假装没事ソ 提交于 2020-01-10 00:09:11
           重载与重写 一、方法的重载 定义:方法名相同,参数的顺序、个数、类型不同的方法 判断重载: 1、必须在同一个类中 2、方法名必须相同 3、参数的个数类型,个数,顺序不同 4、与方法的修饰符与返回值没有关系 二 方法的重写: 1、重写发生在父类与子类之间,子类的方法的方法名、参数列表、返回类型与父类相同,子类方法重写了父类的方法后,会优先调用子类的重写方法 2、在方法的前面加上@Override,可以检测到当前的方法是否重写了父类的方法,如果是编译通过,否编译 报错; 3、子类重写父类的方法,要求子类的访问修饰符要大于或等于父类 4、私有方法或者静态方法都会默认加上final修饰符,所以都不能被重写 访问修饰符---控制它所修饰的在什么地方能看到 public----公共的 protected---受保护的---同包       ---默认的---不同包 private ----私有的                同包          不同包       本类 子类 非子类    子类    非子类 public   是       是      是      是        是 protected   是        是      是       是   默认的   是        是      是     private     是 来源:

C#重载和继承混用会怎样?

耗尽温柔 提交于 2020-01-07 22:06:50
C#重载和继承混用会怎样? OverLoad就是重载,大家都会。但是大家有没有想过,我们调用一个重载方法的时候会调用哪个呢?? 答案是和签名最接近的一个。 大家是不是看到这里已经开始觉得这个博客很无聊了,都是这么简单的内容。没关系,我们慢慢深入。 我们知道方法为了能够减少书写个数, 提供了一个叫默认参数的东西 void P ( object p1 , bool p2 = true ) { } 这样我们可以通过 P(p1) 或者 P(p1true) 两种方式来进行调用 如果我们这个时候的重载情况时这样的 void P ( object p1 ) { Console . WriteLine ( "第一个" ) ; } void P ( object p1 , bool p2 = true ) { Console . WriteLine ( "第二个" ) ; } 此时再调用, P(p1) 执行的是上一个函数。一种理解方式是,第二个方法比第一个能够多处理一种情况 P(p1,true) 。所以我们专事专用,选择更具体的方法。 ok.C#作为一个OO语言,还有一个特点就是继承,这个同样反映在方法里 void P ( object p1 ) { } 对于上述方法,可以使用 object 作为参数,也可以使用更加具体的 object 子类 那么如果我们的重载情况时这样的 void P (

[03]java中的方法以及控制语句

巧了我就是萌 提交于 2020-01-07 20:41:15
00 Java中的语句块 语句块(有时叫做复合语句),是用花括号扩起的任意数量的简单Java语句。块确定了局部变量的作用域。块中的程序代码,作为一个整体,是要被一起执行的。块可以被嵌套在另一个块中,但是不能在两个嵌套的块内声明同名的变量。语句块可以使用外部的变量,而外部不能使用语句块中定义的变量,因为语句块中定义的变量作用域只限于语句块。 代码中的语句: public class Test19 { public static void main(String[] args) { int n; int a; { int k; int n; //编译错误:不能重复定义变量n } //变量k的作用域到此为止 } } 每个方块就代表一个语句块,从中可以看出语句块的范围以及关系 01 Java中的方法 方法就是一段用来完成特定功能的代码片段,类似于其它语言的函数。 [修饰符1 修饰符2 …] 返回值类型 方法名(形式参数列表){ Java语句;… … … } 方法用于定义该类或该类的实例的行为特征和功能实现。 方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。 方法的调用方式: 对象名.方法名(实参列表) 方法的详细说明 形式参数