精华内容
下载资源
问答
  • 面向对象特征主要有以下几个方面: 1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...

        面向对象的特征主要有以下几个方面:

           1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

           2)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

           3)封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

           4)多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

    展开全文
  • (其实主要是和下面内容理解有关系啦)以上这是我自己对python对象的理解 (2)现在我们把一个人作为对象来看,看一个人你肯定先从外貌开始,他眼睛小,皮肤黑,你甚至可以猜出他的体重最多不过60kg,头发还卷等等,...
  • 面向对象概念和基本特征

    千次阅读 2018-07-23 16:24:51
    所谓的面向对象就是基于对象概念,以对象为中心,以和继承为构造机制,来认识、理解刻画客观世界和设计、构建相应的软件系统。 OO (Object Oriented, 面向对象)是当前计算机界关心的重点,它是90年代软件开发的...

    1 ,什么是面向对象?

    正如每个人心中都有一个哈姆雷特一样,每个人都有对面向对象的不一样的理解

    所谓的面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解刻画客观世界和设计、构建相应的软件系统。

    OO (Object Oriented, 面向对象)是当前计算机界关心的重点,它是90年代软件开发的主流。面向对象的概念和应用已经超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

    OO方法(Object-Oriented Method,面向对象方法)面向对象的方法是一种把面向对象的实现应用于软件开发过程中,指导开发活动的系统方法,简称OO(Object-Oriented)方法,Object Oriented是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相识性质的一组对象。而每继承性是具有层次关系的类的属性和操作进行共享的一种方式。所谓的面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解刻画客观世界和设计、构建相应的软件系统。

    (我会在介绍完js中对象的特征后面继续介绍面向对象方法,转的一句话说明什么事面向对象方法,让你对面向对象有一个更深入的了解!)

    2 ,JS中的面向对象的基本特征

    面向对象的三个基本特征是:封装、继承、多态。在js中面向对象只有封装和继承,没有多态。

    封装:通过将一个方法或者属性声明为私用的,可以让对象的实现细节对其他对象保密以降低对象之间的耦合程度,可以保持数据的完整性并对其修改方式加以约束这样可以使代码更可靠,更易于调试。封装是面向对象的设计的基石。

    JavaScript是一门面向对象的语言,可它并不具备将成员声明为公共或私用的任何内部机制,所以我们只能自己想办法实现这种特性。下面还是通过一台完整的代码去分析,介绍什么是私有属性和方法,什么是特权属性和方法,什么是公有属性和方法,什么是公有静态属性和方法。

    私有静态属性和方法: 函数有作用域,在函数内用var 关键字声明的变量在外部无法访问,私有属性和方法本质就是你希望在对象外部无法访问的变量。

    特权属性和方法:创建属性和方法时使用的this关键字,因为这些方法定义在构造器的作用域中,所以它们可以访问到私有属性和方法;只有那些需要直接访问私有成员的方法才应该被设计为特权方法。

    公有属性和方法:直接书写在原型prototype上的属性和方法,不可以访问构造器内的私有成员,可以访问特权成员,子类会继承所有的公有方法。

    公有静态属性和方法:最好理解的方式就是把它想象成一个命名空间,实际上相当于把构造器作为命名空间使用。

     /* -- 封装 -- */
        var _packaging =function(){
           //私有属性和方法
          var name ='Darren';
           var method1 =function(){
              //...
           }
           //特权属性和方法
           this.title ='JavaScript Design Patterns' ;
          this.getName =function(){
             return name;
          }
       }
       //公有静态属性和方法
       _packaging._name ='Darren code';
       _packaging.alertName =function(){
          alert(_packaging._name);
       }
       //公有属性和方法
       _packaging.prototype = {
          init:function(){
             //...
          }
       }

    继承:继承是指这样一种能力:他可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

    通过继承创建的新类称为 “子类” 或 “派生类”。

    被继承的类称为“基类”、“父类”  或者  “超类”。

    ① 构造函数绑定

    这一种方法最简单,使用call 或者 apply 方法,将父对象的构造函数绑定在子对象上,既在子对象构造元素中加一行代码:

    父类构造函数名.apply(this, arguments);

    Person.prototype.getName = function(){
        returnthis.name;
    }
    function Programmer(name,sex) {
        Person.call(this,name);  //在这里添加
        this.sex = sex;
    }

    ② 原型式继承 让子类的prototype对象指向父类的实例,相当于完全删除了prototype对象的原来的值,但是我们需要在原型继承js语句后面加上段代码 : 子类. prototype.constructor = 子类  ,不然子类的原型对象的构造函数属性就会指向所继承的父类prototype上的constructor(直接继承父类的原型的时候),继承父类的实例的时候回丢失constructor属性,继承完成之后当前这个子类的实例也都可以继承父类的prototype上的方法

       //直接继承父类原型
        function Parent(name) {
     		this.name = name;
     	}
     	Parent.prototype.sayHello = function() {
     		console.log("hello");
     	}
     	function Son(name) {
     		this.name = name;
     	}
     	Son.prototype = Parent.prototype;
     	Son.prototype.constructor = Son;//不加这句话Son.prototype.constructor指向Parent
     	var s = new Son();
     	s.sayHello()//hello
    // 原型式继承改进 
     	function Parent(name) {
     		this.name = name;
     	}
     	Parent.prototype.sayHello = function() {
     		console.log("hello");
     	}
     	function Son(name, age) {
     		this.name = name;
     		this.age = age;
     	}
     	Son.prototype.sayHi = function() {
     		console.log("hi");
     	}
     	Son.prototype = new Parent(); //原型继承改进继承父类的实例
     	Son.prototype.constructor = Son;//不加这句话Son.prototype.constructor会丢失
     	var s = new Son();
     	var p = new Parent();
     	s.sayHello()//hello
     	console.log(Son.prototype)
     	p.sayHi()// Uncaught TypeError: p.sayHi is not a function,父类的实例不可以调用子类的方法了

    js中对象的组成

        方法——函数:过程、动态的
        属性——变量:状态、静态的

    下面列举一些别人描述面向对象的思想

    1 ,把一组数据结构和处理它们的方法组成对象(object),把相同的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization) / 泛化 (generalization),通过多态(polymorphism)实现基于对象类型的动态分派(dynamic dispatch)。

    2,一种尽量降低后续扩展代码引入 side-effect 可能的代码组织手段

    3,封装:把属性值、红蓝条、攻击、走位、放技能、清兵、游走等行为都塞在一个英雄里。

    ,继承:攻击+10 的装备可以升级到攻击+20,以后还可能升级到攻击+30 并带有吸血效果。不管升级成什么,都携带着攻击+10 这部分属性。

    多态:一个团队需要一个辅助,我们只需要一个辅助英雄,并不关心来的是哪个辅助英雄,能加血就行。

    具备这三种特性的编程思想,叫做面向对象。
     

    展开全文
  • 面向对象——三大基本特征

    万次阅读 多人点赞 2018-06-15 13:24:57
    面向对象的三大基本特征:封装、继承和多态 一、封装 利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些...

    面向对象的三大基本特征:封装、继承和多态

    一、封装

    利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节,但可以通过对象对外提供的接口来访问该对象。

    优点:

    • 减少耦合:可以独立地开发、测试、优化、使用、理解和修改
    • 减轻维护的负担:可以更容易被程序员理解,并且在调试的时候可以不影响其他模块
    • 有效地调节性能:可以通过剖析确定哪些模块影响了系统的性能
    • 提高软件的可重用性
    • 降低了构建大型系统的风险:即使整个系统不可用,但是这些独立的模块却有可能是可用的

    以下 Person 类封装 name、gender、age 等属性,外界只能通过 get() 方法获取一个 Person 对象的 name 属性和 gender 属性,而无法获取 age 属性,但是 age 属性可以供 work() 方法使用。

    注意到 gender 属性使用 int 数据类型进行存储,封装使得用户注意不到这种实现细节。并且在需要修改 gender 属性使用的数据类型时,也可以在不影响客户端代码的情况下进行。

    public class Person {
        private String name;
        private int gender;
        private int age;
    
        public String getName() {
            return name;
        }
    
        public String getGender() {
            return gender == 0 ? "man" : "woman";
        }
    
        public void work() {
            if (18 <= age && age <= 50) {
                System.out.println(name + " is working very hard!");
            } else {
                System.out.println(name + " can't work any more!");
            }
        }
    }

    二、继承

    继承实现了 IS-A 关系,例如 Cat 和 Animal 就是一种 IS-A 关系,因此 Cat 可以继承自 Animal,从而获得 Animal 非 private 的属性和方法。

    Cat 可以当做 Animal 来使用,也就是说可以使用 Animal 引用 Cat 对象。父类引用指向子类对象称为 向上转型 。

    Animal animal = new Cat();

    继承应该遵循里氏替换原则,子类对象必须能够替换掉所有父类对象。

    三、多态

    多态分为编译时多态和运行时多态。编译时多态主要指方法的重载,运行时多态指程序中定义的对象引用所指向的具体类型在运行期间才确定。

    运行时多态有三个条件:

    • 继承
    • 覆盖(重写)
    • 向上转型

    下面的代码中,乐器类(Instrument)有两个子类:Wind 和 Percussion,它们都覆盖了父类的 play() 方法,并且在 main() 方法中使用父类 Instrument 来引用 Wind 和 Percussion 对象。在 Instrument 引用调用 play() 方法时,会执行实际引用对象所在类的 play() 方法,而不是 Instrument 类的方法。

    public class Instrument {
        public void play() {
            System.out.println("Instument is playing...");
        }
    }
    
    public class Wind extends Instrument {
        public void play() {
            System.out.println("Wind is playing...");
        }
    }
    
    public class Percussion extends Instrument {
        public void play() {
            System.out.println("Percussion is playing...");
        }
    }
    
    public class Music {
        public static void main(String[] args) {
            List<Instrument> instruments = new ArrayList<>();
            instruments.add(new Wind());
            instruments.add(new Percussion());
            for(Instrument instrument : instruments) {
                instrument.play();
            }
        }
    }
    
    展开全文
  • 面向对象特征:封装、继承、抽象、多态4个主要特征 封装  保证软件具有良好的模块性, 封装的目标-----高内聚,低耦合 在面向对象的编程语言中,对象是封装的的最基本单位,面向对象的封装比传统语言的封装...

    面向对象的特征:封装、继承、抽象、多态4个主要的特征


    封装 

    保证软件具有良好的模块性,

    封装的目标-----高内聚,低耦合

    在面向对象的编程语言中,对象是封装的的最基本单位,面向对象的封装比传统语言的封装更为清晰、更为有力。

    面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个模块中,也就是一个类中,属性用变量定义,行为用方法定义,方法可以直接访问同一个对象中的属性。


    抽象  

    是找出一些事物的相似和共性之处,然后讲这些事物归为一个类,这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面

    一只蚂蚁和一头大象,你能想象他们的相同之处,那就是抽象。


    继承

    在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。



    多态:

    多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。多态性增强了软件的灵活性和扩展性。例如,下面代码中的UserDao是一个接口,它定义引用变量userDao指向的实例对象由daofactory.getDao()在执行的时候返回,有时候指向的是UserJdbcDao这个实现,有时候指向的是UserHibernateDao这个实现,这样,不用修改源代码,就可以改变userDao指向的具体类实现,从而导致userDao.insertUser()方法调用的具体代码也随之改变,即有时候调用的是UserJdbcDao的insertUser方法,有时候调用的是UserHibernateDao的insertUser方法:

    UserDao userDao = daofactory.getDao(); 

    userDao.insertUser(user);

     

    比喻:人吃饭,你看到的是左手,还是右手?


    展开全文
  • 面向对象的三个基本特征

    万次阅读 2018-09-05 17:11:31
    封装是面向对象特征之一,是对象概念的主要特性。 封装,也就是把客观事物封装成抽象的,并且可以把自己的数据和方法只让可信的或者对象操作,对不可信的进行信息隐藏。 继承 面向对象编程 (OOP) ...
  • 封装是面向对象特征之一,是对象概念的主要特性。 封装,也就是把客观事物封装成抽象的,并且可以把自己的数据和方法只让可信的或者对象操作,对不可信的进行信息隐藏。 在Java中中成员的属性有:...
  • 面向对象的三个基本特征(封装)

    千次阅读 2017-07-17 10:14:10
    封装是面向对象特征之一,是对象概念的主要特性。  封装,也就是把客观事物封装成抽象的,并且可以把自己的数据和方法只让可信的或者对象操作,对不可信的进行信息隐藏。 封装可以
  • 面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA)、 面向对象设计(OOD)、面向对象程序设计(OOP)等新的系统开发方式模型的研究。 对 Java 语言来说,一切皆是对象。把现实世界...
  • java面向对象三大特性

    2021-03-01 19:31:10
    一、面向对象的概念 面向对象是一种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现实中的事物使用对象的关系来描述事物之间的联系,...
  • 面向对象的编程语言有封装、继承 、抽象、多态等4个主要特征。 1封装: 封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在...
  • Java面向对象的三大特征为:封装、继承和多态,本文说说我对三大特性的理解。 1.封装 Java中的封装是指一个把自己内部的实现细节进行隐藏,只暴露对外的接口(setter和getter方法)。封装又分为属性的封装和方法的...
  • 计算机软件系统是现实生活中的业务在计算机中的映射,而现实生活中的业务其实就是一个个对象协作的过程。面向对象编程就是按现实业务一样... 面向对象的编程语言有封装、继承 、抽象、多态等4个主要特征。 1. 封装
  • Java对象 详解(一)

    万次阅读 多人点赞 2016-10-06 20:48:02
    一、面向对象简述面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的,在70年代的Smaltalk语言之中进行了应用,后来根据面向对象的设计...
  • 1.利用JDK1.8的新特性处理,主要代码一行即可解决,下面上代码 @Service public class AlarmStandardTabServiceImpl implements AlarmStandardTabService { @Autowired AlarmStandardTabMappe
  • Java 是一个支持并发、基于和面向对象的计算机编程语言。 面向对象软件开发具有以下优点: 代码开发模块化,更易维护和修改。 代码复用性强。 增强代码的可靠性和灵活性。 增加代码的可读性。 面向对象特征...
  • Java面向对象特征有那些

    千次阅读 2017-06-20 17:00:04
    一、java面向对象特征? 答:java面向对象特征:封装、继承、多态、抽象。 如果问java面向对象的三大特征是什么?那就是封装、继承、多态, 但说到面向对象,还有一个很主要特征就是抽象。
  • 其实不管是java还是.net都是属于面向对象程序设计语言,归根结底,它们都离不开面向对象,所以什么是面向对象呢,意思就是object-oriented 将对数据和对数据的操作作为一个相互依赖的关系、不可分割的整体,才用信息...
  • 一、面向对象程序设计(OOP)的三大基本特征(定义、特性、优缺点、java中的表现形式、应用) 1.封装 封装的定义 ​ 通俗的说:普通人对计算机进行应用操作,只需知道如何在计算机上连网,如何浏览网页,下载东西...
  • RTTI(Run-Time Type Identification) 运行时类型识别,最先出现在C++里,引入这个机制是为了让程序在运行时能根据基类的指针或引用来获得该指针或引用所指的对象的实际类型。 Java中的RRTI则是源于《Thinking in ...
  • 下面从结构化程序设计说起,逐步展示面向对象程序设计。 结构化程序设计简介 早期的程序设计,大量使用共享变量(全局变量)和GOTO语句,这使得代码结构比较混乱,不容易改错和复用,后来有人证明所有的有意义的程序...
  • 面向过程程序设计的主要特征是:程序由过程定义和过程调用组成(所谓过程,简单地说,就是程序执行某项操作的一段代码,函数是最常用的过程。),从这个意义出发, 基于面向过程的程序可以用以下的公式来表述: 程序 = ...
  • Java面向对象的三大特征以及理解

    万次阅读 多人点赞 2018-05-26 16:01:36
    Java面向对象的三大特征为:封装、继承和多态,本文说说我对三大特性的理解。1.封装Java中的封装是指一个把自己内部的实现细节进行隐藏,只暴露对外的接口(setter和getter方法)。封装又分为属性的封装和方法的...
  • 理解什么是面向对象之前先理解一下什么是面向过程。   面向过程   过程就是一件事情的先后经过;从什么开始到什么介绍,有一个时间上的先后顺序。 程序过程就体现在代码执行的先后顺序。 面向过程,就是一种...
  • JavaScript面向对象的三大特征

    千次阅读 2017-02-11 22:26:26
    js我们都知道是一种动态类型脚本型语言,变量类型无法保证,所以我们可以尝试调用任意对象的任意方法,不用考虑它原本是否被设计为拥有该方法。 什么是面向对象本文不在论述,接下来说一下面向对象的三大特征在js当中...
  • JAVA练习题二(对象

    千次阅读 2020-03-13 10:21:19
    下列关于面向对象的说法中,错误的是( )。 A、面向对象思想编程,不仅增强代码了复用性,提供了开发效率,而且为程序的修改补充提供了便利。 B、面向对象就是分析解决问题所需要的步骤,然后用函数把这些步骤一一实现,...
  • 是用于描述客观世界里某一类对象的共同特征,而对象则是的具体存在。 Java中也支持面向对象的三大特征:封装、继承、多态,Java提供了private 、protected、和public三个访问控制修饰符来实现良好的封装性。提供...
  • 深入理解Java类型信息(Class对象)与反射机制

    万次阅读 多人点赞 2017-05-01 23:19:19
    【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) ...深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解
  • 早期方法的不足: 早期的方法只使用一种系统的视角作为构造块,而没有容纳其他视角。 1、结构化分析和设计方法集中于将功能作为系统的构造块...为了克服传统开发方法的不足,面向对象方法解决问题的思路 是从现实世...
  • 面向对象思想————不看后悔! ————转载自:https://zhidao.baidu.com/question/751474259711412524.html 前言: 整理这份资料的目的是为了帮助朋友们能够更直观的理解面向对象的编程。让后来者能够少走一些...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 162,155
精华内容 64,862
关键字:

下面属于类对象主要特征的是