方法重载

基础知识点(一)

瘦欲@ 提交于 2020-03-16 11:13:45
基础知识点(一) 一、 面向对象思想的好处 1 、面向对象也是基于面向过程的编程思想,但是面向对象相比于面向过程更符合我们的思维方式,万物皆对象。 2 、可以将复杂的问题简单化,大大提高了程序的可读性和可维护性 3 、面向过程思想中,我们是程序的执行者,面向对象当中,我们是程序的调用者,这样的话也可以方便程序给其他人调用,提高了程序的扩展性 面向对象的三大基本特征以及五大基本原则: 基本特征: 1 、封装 2 、继承 3 、多态 基本原则: 1、 单一职责原则 2、 里氏替换原则 3、 依赖倒置原则 4、 接口隔离原则 5、 开放封闭原则 二、 类:类是抽象的,是一组相关的属性和行为的集合,一个模板。 对象:对象是具体的,是客观存在的实例,是该类事物的具体体现 属性 —— 对象具有的各种特征 每个对象的每个属性都拥有特定值 方法 —— 对象执行的操作 三、对象和类的关系:特殊到一般,具体到抽象。 类:我们叫做 class 。 对象:我们叫做 Object, instance( 实例 ) 。以后我们说某个类的对象,某个类的实例。是一样的意思。 类可以看成一类对象的模板,对象可以看成该类的一个具体实例。 类是用于描述同一类形的对象的一个抽象的概念,类中定义了这一类对象所应具有的静态和动态属性。 对象是 Java 程序的核心,在 Java 程序中“万事万物皆对象”。 JDK

如何能做到函数返回值重载?

隐身守侯 提交于 2020-03-16 00:12:22
(转) string Test() {...} int Test() {...} 然后通过接受方的上下文自动选取重载: int i = Test(); string s = Test(); 当然VB或者C#都是不允许这样写的。不过IL并没有禁止这一写法,事实上在VB或C#中有一种语法结构允许按照返回值选取相应的重载,那就是隐式类型转换运算符(implicit operator或者Widening Operator CType)。通过辅助类的隐式类型转换运算符,我们可以实现上述要求的语法。 class Foo { string TestString() { return "I'm a string"; } int TestInt() { return 100; } public TestHelper Test() { return new TestHelper(this); } public struct TestHelper { Foo m_host; public TestHelper(Foo host) { m_host = host; } public static implicit operator int(TestHelper helper) { return helper.m_host.TestInt(); } public static implicit

方法的定义与重载

孤人 提交于 2020-03-15 04:29:57
一、方法   方法的定义:     修饰符 返回值类型 方法名(参数列表){       //代码       return 返回值;     }     修饰符:public static     如果返回值类型为void,则表示没有返回值     参数列表:方法在运算过程中的未知数据,调用者调用方法时传递     return:将方法执行后的结果带给调用者,方法执行到 return ,整体方法运行结束      注意:在定义一个方法时,要明确返回值和参数列表;该方法返回值的类型,形参的类型和数量(一个方法只能有一个返回值)     不能在return后面写代码,return代表着方法的结束,后面的代码将永远不会执行     return后面参数的类型要与返回值类型一致      二、形参和实参的区别     形参:是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数.在调用函数时,实参将赋值给形参。     实参:可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 三、方法的重载     允许一个类中存在多个方法名相同的方法,只要他们参数列表不同即可;与返回值类型无关,     参数列表不同:参数的顺序,参数个数,参数类型     重载:jvm通过参数列表调用不同的方法    

ASP.NET 2.0 XML 系列(4):用XmlReader类介绍

柔情痞子 提交于 2020-03-14 05:55:50
(本文摘自MSDN) XmlReader 类是一个提供对 XML 数据的非缓存、只进只读访问的抽象基类。该类符合 W3C 可扩展标记语言 (XML) 1.0 和 XML 中的命名空间的建议。 XmlReader 类支持从流或文件读取 XML 数据。该类定义的方法和属性使您可以浏览数据并读取节点的内容。当前节点指读取器所处的节点。使用任何返回当前节点值的读取方法和属性推进读取器。 XmlReader 类使您可以: 检查字符是不是合法的 XML 字符,元素和属性的名称是不是有效的 XML 名称。 检查 XML 文档的格式是否正确。 根据 DTD 或架构验证数据。 从 XML 流检索数据或使用提取模型跳过不需要的记录。 使用XmlReader读取XML文档之前,我们有必要了解一下这个类的属性和方法,以及节点XmlNode的类型。 1. XmlReader类的属性 名称 说明 AttributeCount 当在派生类中被重写时,获取当前节点上的属性数。 BaseURI 当在派生类中被重写时,获取当前节点的基 URI。 CanReadBinaryContent 获取一个值,该值指示 XmlReader 是否实现二进制内容读取方法。 CanReadValueChunk 获取一个值,该值指示 XmlReader 是否实现 ReadValueChunk 方法。 CanResolveEntity

PHP中__call()方法与重载解析

三世轮回 提交于 2020-03-12 21:46:19
一、前言   特别注意,虽然__call()或__callStatic()方法就是为实现重载而设计的,但是为了便于理解,先将两者分开进行理解!!!   __call()方法的特性是它的特性,用其实现重载是实现重载,这是两码事~ 二、__call()方法   在PHP5.3.0之后,又增加了一个__callStatic()方法。它们都是PHP中的 魔术方法 ,所谓魔术方法,就是系统在 特定时刻 自动调用 的方法!除了它们俩,PHP中还有其它一些魔术方法(见手册)。对于魔术方法,个人理解是, 各魔术方法有一个共同点:系统自动调用,有两个不同点:调用的时间、调用之后产生的作用   对于__call()和__callStatic()的调用时间和功能(通俗点就是调用之后产生的结果),举个栗子(代码如下) 1 <?php 2 class A { 3 public function test () { 4 static::who(); 5 A::who(); 6 self::who(); 7 $this->who(); 8 } 9 10 /** 11 *私有方法 12 */ 13 private function test2(){ 14 15 } 16 17 public static function __callStatic($a, $b) { 18 var_dump('A static')

C++运算符重载一:运算符重载、复数类CComplex、输出运算符重载

帅比萌擦擦* 提交于 2020-03-11 13:15:03
文章目录 一、运算符重载 二、复数类CComplex 三、输出运算符重载 一、运算符重载 运算符重载 : 使对象的运算运算表现得和编译器内置类型一样,使同一个运算符可以有不同的功能。即定义一个重载运算符的函数,使指定的运算符不仅能实现原有的功能,而且能实现在函数中指定的新的功能。 运算符重载实质上是函数的重载,重载运算符的函数一般格式如下 : 函数类型 operator 运算符名称(形参表) {对运算符的重载处理} operator是关键字,是专门用于定义重载运算符的函数的,运算符名就是C++已有的运算符。 运算符重载的规则: (1)C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载。 (2)C++允许重载的运算符 不能重载重载的运算符只有5个: ① .   成员访问运算符 ② *   成员指针访问运算符 ③ ::   域运算符 ④sizeof 长度运算符 ⑤ ?:   条件运算符 (3)重载不能改变运算符运算对象(即操作数)的个数 (4)重载不能改变运算符的优先级别 (5)重载不能改变运算符的结核性 (6)重载不能改变默认的参数 (7)重载的运算符必须和用户自定义类型的对象一起使用,其参数至少有一个是类对象(或类对象的引用) (8)用于类对象的运算符一般必须重载,但有两个例外,“=”和“&”不必用户重载 运算符重载的函数有两种处理方式: 1

Java方法重载+方法重写

旧巷老猫 提交于 2020-03-10 10:23:08
方法重载 在Java中,同一个类中的多个方法可以有相同的方法名称,但是有不同的参数列表,这就称为方法重载(method overloading)。 参数列表又叫参数签名,包括参数的类型、参数的个数、参数的顺序,只要有一个不同就叫做参数列表不同。 重载是面向对象的一个基本特性。 public class Demo { //一个普通得方法,不带参数,无返回值 public void add(){ //method body } //重载上面的方法,并且带了一个整形参数,无返回值 public void add(int a){ //method body } //重载上面的方法,并且带了两个整型参数,返回值为int型 public int add(int a,int b){ //method body return 0; } } 通过上面的例子,不难看出,重载就是在一个类中,有相同的函数名称,但形参不同的函。重载的结果,可以让一个程序段尽量减少代码和方法的种类。 说明: 参数列表不同包括:个数不同、顺序不同、类型不同。 仅仅参数变量名称不同是不可以的。 跟成员方法一样,构造方法也可以重载。 声明为final的方法不能被重载。 声明为static的方法不能被重载,但是能够被在此声明。 方法的重载的规则: 方法名称必须相同。 参数列表必须不同。 方法的返回类型可以相同也可以不相同。

读Java程序员面试笔记,总结Java基础知识(二)

爷,独闯天下 提交于 2020-03-09 14:55:38
Java基础知识之面向对象技术 面向对象有哪些特征 面向对象主要特征:抽象、继承、封装和多态。 抽象。抽象是忽略一个主题中与当前目标无关的那些方面,一边更充分地注意与当前目标有关的方面,抽象包括两个方面:一是过程抽象;二是数据抽象。 继承。在编程中,对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。子类可以从他的父类那里继承方法和实例变量,并且子类可以修改或增加新的方法使之跟适合我们的需要。 封装。封装是指将客观事物抽象成类,每个类对自身的数据和方法实行保护。类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。(也就是类的权限修饰的权限,权限范围内就是可信,反之。) 多态。多态是指允许不同类的对象对同一消息做出响应。多态包括参数多态和包含多态。多态性语言具有灵活、抽象、行为共享、代码共享等优势,很好的解决了应用程序函数同名的问题。 面向对象的开发方式有什么优点 较高的开发效率 。(面向对象的开发方式,对象都是从我们现实事物抽象而来,映射为开发的对象,那么我们对开发的对象的各种特征,以及对象的功能都是直观明了的。) 保证软件的鲁棒性。(面向对象的开发中,重点是对象,还有对象延展出来的类,方法都在开发中经常使用,自然而然对软件的鲁棒性起到了很好的促进作用)

C++面试题

时光怂恿深爱的人放手 提交于 2020-03-08 08:06:32
语言基础类 1. 指针和引用的区别? (1)指针有自己的一块空间,而引用只是一个别名;  (2)使用 sizeof 看一个指针的大小为 4 字节(32位,如果要是64位的话指针为8字节),而引用则是被引用对象的大小。 (3) 引用必须在定义时被初始化,指针不必; (4)不存在指向空值的引用,但存在指向空值的指针。 2.static和 const的用法,(能说出越多越好)(重点) 首先说说const的用法(绝对不能说是常数) 1.限定变量为不可修改。 2.限定成员函数不可以修改任何数据成员。 3.使用const关键字修饰的变量,一定要对变量进行初始化 下面的声明都是什么意思? const int a; a是一个常整型数 int const a; a是一个常整型数 const int *a; a是一个指向常整型数的指针,整型数是不可修改的,但指针可以 int * const a; a为指向整型数的常指针,指针指向的整型数可以修改,但指针是不可修改的 int const * a const; a是一个指向常整型数的常指针,指针指向的整型数是不可修改的,同时指针也是不可修改的 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。简而言之,这样可以减少bug的出现。

Java实现重载

情到浓时终转凉″ 提交于 2020-03-08 01:07:36
【基础学习】利用java实现重载 情况 :当我们遇到一个函数同时兼容多种参数的情况,可以使用重载。 注意事项 : 针对同一个类: 1.方法名相同 2.方法的参数不同(参数个数或者参数类型) 3.方法的返回值类型不影响重载 注 :(当两个方法的名字相同, 参数也相同, 但是返回值不同的时候, 不构成重载) 来源: CSDN 作者: 小迪耶 链接: https://blog.csdn.net/wkh18891843165/article/details/104622195