面向对象方法

面向对象 - day03

人盡茶涼 提交于 2020-03-07 04:08:13
继承性:   子类可以共享父类的数据结构和方法。新类可以在一个类的基础上定义;   JavaScript构造函数: ( 方法添加到原型上,共享空间 )     function Tab( name ){       this.name = name;     }     Tab.prototype.hobby = function( ){ // 共享空间       console.log( ".=== 打篮球 ===" );     }   注意继承后,新类方法的改变不能影响到原类; 原类方法的改变不能影响到新类 (构造函数的原型是公共空间,新类要建立一个新的公共空间且__proto__不指向 原类的原型空间)   继承的关键点是能得到一个新的公共空间且constructor属性指向这个新类 ----> 定义类一般把属性写在构造函数里面,定义的方法写在原型上   ========================================================================             构造函数部分 和 构造函数原型部分(深copy)   ======================================================================== 来源: https://www.cnblogs.com

C# 面向对象的三大特性

荒凉一梦 提交于 2020-03-06 18:53:37
一、封装: 我们可以把世界上任何一个东西都看作为一个对象,那么我们这里以人为例,一个人就肯定是一个对象了。 那么封装是什么呢? 封装就是这个人要完成一件事情,他所需要的任何工具都带在了自己的身上,所需要的技术也都装在了自己的脑子里了。不需要借助于别人的力量就能完成这一件事情。这个有什么好处呢?好处就是如果我要吩咐这个人去完成一件事情,我不需要知道他是怎么完成的,也不需要协助他去完成,只要知道结果,他完成了就OK了。至于他是先干什么后干什么我不干涉,这有助于他更快更好的干好这件事情,我自己也省事。 1、访问权限(可见性) Public:(随处可见)所有包、类导入后均可见 公共的 Protected:(合法继承)本身、不同包的子类自身, Private:(自私自利)只在本类中可见 本类 同包类 public protected default private 不同包类 public protected default 子类 子类 public Protected(子类中,且子类自身使用) 其他类 public 2、 (1)、属性-->private(私有属性,公开方法,不用默认) (2)、方法--> public protected 书面的解释如下: 每个对象都包含它能进行操作所需要的所有信息,因此对象不必依赖其它的对象来完成自己的操作。 二、继承: 还以为人为例

C#面向对象的三大特性概述

一笑奈何 提交于 2020-03-06 18:52:37
大家都知道面向对象的三大特性分别是:封装,继承,多态。但这三大特性分别是什么意思呢?这里我用自己的话将我的理解写出来,应该比较容易理解。 一,封装: 我们可以把世界上任何一个东西都看作为一个对象,那么我们这里以人为例,一个人就肯定是一个对象了。 那么封装是什么呢? 封装就是这个人要完成一件事情,他所需要的任何工具都带在了自己的身上,所需要的技术也都装在了自己的脑子里了。不需要借助于别人的力量就能完成这一件事情。这个有什么好处呢?好处就是如果我要吩咐这个人去完成一件事情,我不需要知道他是怎么完成的,也不需要协助他去完成,只要知道结果,他完成了就OK了。至于他是先干什么后干什么我不干涉,这有助于他更快更好的干好这件事情,我自己也省事。 书面的解释如下: 每个对象都包含它能进行操作所需要的所有信息,因此对象不必依赖其它的对象来完成自己的操作。 二,继承: 还以为人为例,我们每个人都会有一些共同的特征,都要做一些相同的事情。比如:人都有一个脑袋,二只胳膊,二条脚,这是共同的特征。都要吃饭,喝水,这是都要做的相同的事情。那么如果我们现在要声明很多个人,每个人都会有这些特征,那我不是要写很多重复的代码?所以我们可以先建一个人的父类,这个父类不代表一个具体的人,只是一个拥有人所有共同特性的虚拟的人。下次我们要实例化一个具体的人的时候,只需要将这个人继承上面这个“虚拟的人”

C#面向对象的三大特征

拈花ヽ惹草 提交于 2020-03-06 18:51:36
一, 封装 : 我们可以把世界上任何一个东西都看作为一个对象,那么我们这里以人为例,一个人就肯定是一个对象了。 那么封装是什么呢? 封装就是这个人要完成一件事情,他所需要的任何工具都带在了自己的身上,所需要的技术也都装在了自己的脑子里了。不需要借助于别人的力量就能完成这一件事情。这个有什么好处呢?好处就是如果我要吩咐这个人去完成一件事情,我不需要知道他是怎么完成的,也不需要协助他去完成,只要知道结果,他完成了就OK了。至于他是先干什么后干什么我不干涉,这有助于他更快更好的干好这件事情,我自己也省事。 书面的解释如下: 每个对象都包含它能进行操作所需要的所有信息,因此对象不必依赖其它的对象来完成自己的操作。 二, 继承 : 还以为人为例,我们每个人都会有一些共同的特征,都要做一些相同的事情。比如:人都有一个脑袋,二只胳膊,二条脚,这是共同的特征。都要吃饭,喝水,这是都要做的相同的事情。那么如果我们现在要声明很多个人,每个人都会有这些特征,那我不是要写很多重复的代码?所以我们可以先建一个人的父类,这个父类不代表一个具体的人,只是一个拥有人所有共同特性的虚拟的人。下次我 们要实例化一个具体的人的时候,只需要将这个人继承上面这个“虚拟的人”,那么他就拥有了人的所有共同特性。这样,这些重复的代码我们就可以不写了。 当然,继承的目标不仅仅是为了节省代码,还有实现后面的多态的功能

C#面向对象的三大特性概述

旧街凉风 提交于 2020-03-06 18:50:45
一, 封装 : 我们可以把世界上任何一个东西都看作为一个对象,那么我们这里以人为例,一个人就肯定是一个对象了。 那么封装是什么呢? 封装就是这个人要完成一件事情,他所需要的任何工具都带在了自己的身上,所需要的技术也都装在了自己的脑子里了。不需要借助于别人的力量就能完成这一件事情。这个有什么好处呢?好处就是如果我要吩咐这个人去完成一件事情,我不需要知道他是怎么完成的,也不需要协助他去完成,只要知道结果,他完成了就OK了。至于他是先干什么后干什么我不干涉,这有助于他更快更好的干好这件事情,我自己也省事。 书面的解释如下: 每个对象都包含它能进行操作所需要的所有信息,因此对象不必依赖其它的对象来完成自己的操作。 二, 继承 : 还以为人为例,我们每个人都会有一些共同的特征,都要做一些相同的事情。比如:人都有一个脑袋,二只胳膊,二条脚,这是共同的特征。都要吃饭,喝水,这是都要做的相同的事情。那么如果我们现在要声明很多个人,每个人都会有这些特征,那我不是要写很多重复的代码?所以我们可以先建一个人的父类,这个父类不代表一个具体的人,只是一个拥有人所有共同特性的虚拟的人。下次我 们要实例化一个具体的人的时候,只需要将这个人继承上面这个“虚拟的人”,那么他就拥有了人的所有共同特性。这样,这些重复的代码我们就可以不写了。 当然,继承的目标不仅仅是为了节省代码,还有实现后面的多态的功能

简述面向对象中__new__和__init__区别,这道题朝简单!

☆樱花仙子☆ 提交于 2020-03-06 18:13:32
简述面向对象中__new__和__init__区别 使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__ 方法通常用在初始化一个类实例的时候。例如: 1 # -*- coding: utf-8 -*- 2 3 class Person(object): 4 """Silly Person""" 5 6 def __init__(self, name, age): 7 self.name = name 8 self.age = age 9 10 def __str__(self): 11 return '<Person: %s(%s)>' % (self.name, self.age) 12 13 if __name__ == '__main__': 14 piglei = Person('piglei', 24) 15 print piglei 这样便是__init__最普通的用法了。但__init__其实不是实例化一个类的时候第一个被调用 的方法。当使用 Persion(name, age) 这样的表达式来实例化一个类时,最先被调用的方法 其实是 __new__ 方法。 __new__方法是什么? __new__方法接受的参数虽然也是和__init__一样,但__init__是在类实例创建之后调用,而 __new_

继 承(面向对象特征之二)

▼魔方 西西 提交于 2020-03-06 09:34:32
好处: 1 :提高了代码的复用性。 2 :让类与类之间产生了关系,提供了另一个特征多态的前提。 父类的由来:其实是由多个类不断向上抽取共性内容而来的。 java中对于继承,java只支持单继承。java虽然不直接支持多继承,但是保留了这种多继承机制,进行改良。 单继承:一个类只能有一个父类。 多继承:一个类可以有多个父类。 为什么不支持多继承呢? 因为当一个类同时继承两个父类时,两个父类中有相同的功能,那么子类对象调用该功能时,运行哪一个呢?因为父类中的方法中存在方法体。 但是java支持多重继承。A继承B B继承C C继承D。 多重继承的出现,就有了继承体系。体系中的顶层父类是通过不断向上抽取而来的。它里面定义的该体系最基本最共性内容的功能。 所以,一个体系要想被使用,直接查阅该系统中的父类的功能即可知道该体系的基本用法。那么想要使用一个体系时,需要建立对象。建议建立最子类对象,因为最子类不仅可以使用父类中的功能。还可以使用子类特有的一些功能。 简单说:对于一个继承体系的使用,查阅顶层父类中的内容,创建最底层子类的对象。 子父类出现后,类中的成员都有了哪些特点: 1 :成员变量。 当子父类中出现一样的属性时,子类类型的对象,调用该属性,值是子类的属性值。 如果想要调用父类中的属性值,需要使用一个关键字: super This : 代表是本类类型的对象引用。 Super :

JavaSE!面向对象!!!!

情到浓时终转凉″ 提交于 2020-03-06 03:21:27
1. 面向对象的编程思想: 面向对象的编程思想就是把一个事物看成一个整体,把这个事物中的属性(特征)和功能(方法)表述出来。 面向对象的编程思想更贴近于人的正常思维方式。 面向对象的编程思想来源于生活服务于生活。 面向对象的编程思想中,一定会用到面向过程(以流程为基本单位,注重最后结果。)的编程思想。有缺陷:功之间有很强的关联。不利于程序的维护和扩展。 面向对象的特征: 抽象!! 封装!! 继承!! 多态!! 。 2. 对象 在现实生活中,具体存在的一个事物。 在java编程中,万事万物皆对象。 特点: 在java编程中,无论两个事物多么相近或是相似,他们永远都是两个不同的对象。 各种法律、规则制度也是一种对象。 对象的内存图解 1 1.在堆内存中开辟一个空间并分配地址 2.按照类的描述,在该空间中定义成员变量 并且有默认初始化值 3.加载成员函数进入方法区(只加载一次) 4.对象创建完毕 将空间地址赋值给相应的变量 5.变量(p1/p2)调用成员变量 先通过该变量所存储的地址去堆空间中找 然后在该空间中找相应的成员变量 6.变量(p1/p2)调用成员函数 直接去方法区中找该成员函数 将该函数加载进栈内存开始运行 为了方便区分哪个对象调用的该成员函数 由this这个关键字段 来区分 this主要存的是当前对象的地址 注意:当成员函数在操作变量的时候 先在当前函数的空间里找 局部变量

面向对象及类

风格不统一 提交于 2020-03-06 02:08:53
面向对象的特征:封装、继承、多态。 面向对象设计的过程就是一个抽象的过程: 1、发现类,类定义的对象会拥有属性和方法。 2、发现类的属性,对象有的静态特征在类中表示是被称作类的属性。 3、发现类的行为,对象所执行的操作叫做类的方法。 类的定义: class <类名> { private://私有数据和函数 类型 成员变量; 。。。。。。 public://共有数据和函数 类型 成员变量 。。。。。。 }; class是定义类的关键词,和结构体struct差不多。class的后面是用户定义的类名,通常是大写的C字母开始的表示作为类名,C用来表示类,以与对象、函数及其他数据相区别。类中的数据和函数是类的成员,分别称为数据成员和成员函数。需要说明的是,由于数据成员是用变量来描述的,因此数据成员又称为“成员变量”。 类中的public和private表明后面所跟成员的隐秘程度。对于public类成员来说,它们是公有的,能被外面的程序访问;对于private类成员来说,它们是私有的,只能由类中的(成员)函数所使用,而不能被外面的程序所访问。也就是私有的不能被客户所修改看见,共有的可以。 成员函数可以在类中被定义和增加函数体。如果一个成员函数在类体中定义,函数体部分不出现。所有的成员函数都在类体中定义,则函数体部分可以省略。而需要说明的是,当类的成员函数的函数体在类的外部定义时

面向对象编程-何为对象

浪子不回头ぞ 提交于 2020-03-06 00:39:35
转自知乎 面向对象,那么对象就是主导因素。因此我们首先实现的不是函数,而是“类”,也即对象。、 面向对象:对象就是物体,这种编程思想就是设定一个有一定功能的物体,然后利用这个物体的功能做你想做的事情。(这个物体有attributes,比如名字啊,年龄啊等等等等,有methods,比如吃喝拉撒睡等等等等,功能==methods) 面向过程:你想干嘛,就直接写个功能,然后做你想做的事情。 借楼上的例子,你想写个程序洗衣服,面向对象就是设定一个人,把这个对象赋予拿衣服,搭车,交易,取衣服,回家这所有的过程的功能。当你想洗衣服的时候,创造这个对象的实例出来,然后命令他gogogo就好了。 面向过程,你就得写拿衣服,搭车,交易,取衣服,回家这所有的过程。如果你下一次还想洗衣服,就得再写一遍这个过程。很麻烦,易出错。 简而言之,面向对象就是一种偷懒的方法。 来源: https://www.cnblogs.com/cgdblog/p/7190219.html