精华内容
下载资源
问答
  • 对象之间都可以干什么
    千次阅读
    2017-06-06 16:26:20

    什么是类

    类的概念:类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。

    什么是对象

    对象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类。

    之间的联系

    类描述了一组有相同特性(属性)和相同行为(方法)的对象。上面大概就是它们的定义吧,也许你是刚接触面向对象的朋友,
    不要被概念的东西搞晕了,给你举个例子吧,如果你去中关村想买几台组装的PC
    机,到了那里你第一步要干什么,是不是装机的工程师和你坐在一起,按你提供的信息和你一起完成一个装机的配置单呀,这个配置单就可以想象成是类,它就是一张纸,但是它上面记录了你要买的PC
    机的信息,如果用这个配置单买10 台机器,那么这10 台机子,都是按这个配置单组成的,所以说这10
    机子是一个类型的,也可以说是一类的。那么什么是对象呢,类的实例化结果就是对象,用这个配置单配置出来(实例化出来)的机子就是对象,是我们可以操作的实体,10
    台机子,10 个对象。每台机子都是独立的,只能说明他们是同一类的,对其中一个机做任何动作都不会影响其它9
    台机器,但是我对类修改,也就是在这个配置单上加一个或少一个配件,那么装出来的9 个机子都改变了,这是类对象的关系(类的实例化结果就是对象)。

    更多相关内容
  • 爬虫是什么?可以用来干什么

    千次阅读 2021-06-18 22:21:14
    随着科技不断发展,互联网已经进入了大数据时代。...网络爬虫就是一种可以从网页上抓取数据信息并保存的自动化程序,它的原理就是模拟浏览器发送网络请求,接受请求响应,然后按照一定的规则自动抓取互联网数据。 1、获

    随着科技不断发展,互联网已经进入了大数据时代。

    我们过去只能通过报刊杂志、电视广播获取到有限的信息,而现在,互联网上的海量数据,让我们享受到了信息自由。

    但是,我们获取到了海量的信息同时,也带来了大量的垃圾信息。

    所以必须要通过一些技术手段进行收集、整理、分析、筛选,然后才能获取到对我们有用的相关内容。
    而这个技术手段,就叫网络爬虫技术。
    在这里插入图片描述


    网络爬虫
    网络爬虫就是一种可以从网页上抓取数据信息并保存的自动化程序,它的原理就是模拟浏览器发送网络请求,接受请求响应,然后按照一定的规则自动抓取互联网数据。

    1、获取网页
    获取网页可以简单理解为向网页的服务器发送网络请求,然后服务器返回给我们网页的源代码,其中通信的底层原理较为复杂,而Python给我们封装好了urllib库和requests库等,这些库可以让我们非常简单的发送各种形式的请求。

    2、提取信息
    获取到的网页源码内包含了很多信息,想要进提取到我们需要的信息,则需要对源码还要做进一步筛选。可以选用python中的re库即通过正则匹配的形式去提取信息,也可以采用BeautifulSoup库(bs4)等解析源代码,除了有自动编码的优势之外,bs4库还可以结构化输出源代码信息,更易于理解与使用。

    3、保存数据
    提取到我们需要的有用信息后,需要在Python中把它们保存下来。可以使用通过内置函数open保存为文本数据,也可以用第三方库保存为其它形式的数据,例如可以通过pandas库保存为常见的xlsx数据,如果有图片等非结构化数据还可以通过pymongo库保存至非结构化数据库中。

    4、让爬虫自动运行
    从获取网页,到提取信息,然后保存数据之后,我们就可以把这些爬虫代码整合成一个有效的爬虫自动程序,当我们需要类似的数据时,随时可以获取。


    WEB网页
    知道什么是爬虫之后,web网页作为爬取目标,是非常有必要了解的。
    web网页分别是由HTML、CSS、JavaScript三个部分组成。

    1、HTML
    HTML是运行在浏览器上,由浏览器来解析的超文本标记语言(英语:HyperText Markup Language)。

    2、CSS
    CSS能够对网页中元素位置的排版,进行像素级精确控制。支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。是一种用来表现HTML或XML等文件样式的计算机语言,全称:层叠样式表(Cascading Style Sheets)。

    3、JavaScript
    JavaScript是一种具有函数优先的轻量级,解释型或即时编译型,基于多范式、原型编程的动态脚本语言,而且支持命令式、声明式和面向对象风格。JavaScript简称JS

    HTTP
    爬虫和WEB我们现在都知道是什么了,接下来就需要了解两者之间的请求与响应的关系。HTTP作为请求和响应的超文本传输协议,必须要好好介绍一下。

    http
    http(HyperText Transfer Protocol,超文本传输协议)通常运行在TCP之上,它指定了客户端可能发送给服务器什么消息,以及能得到什么响应。

    https
    而https(Hyper Text Transfer Protocol over SecureSocket Layer)是在http的基础上,通过传输加密和身份证认证,而保障了传输过程的安全性。

    请求和响应
    http请求过程可分为以下几个部分:
    1、建立TCP连接
    2、浏览器向服务器发送请求命令
    3、服务器应答
    4、服务器关闭TCP连接以及浏览器接受到服务器响应的数据。

    在这里插入图片描述

    展开全文
  • 在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。他们在编程语言中的体现却是基本相同的,...

    在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。他们在编程语言中的体现却是基本相同的,但是基本相同并不等于完全相同,这一点在我的前一篇博文《设计模式中类的关系》中已经有所提及,下面就来详细的论述一下在Java中如何准确的体现依赖、关联、聚合和组合。

    首先看一看书上对这四种关系的定义:

    • 依赖(Dependency)关系是类与类之间的联接。依赖关系表示一个类依赖于另一个类的定义。例如,一个人(Person)可以买车(car)和房子(House),Person类依赖于Car类和House类的定义,因为Person类引用了Car和House。与关联不同的是,Person类里并没有Car和House类型的属性,Car和House的实例是以参量的方式传入到buy()方法中去的。一般而言,依赖关系在Java语言中体现为局域变量、方法的形参,或者对静态方法的调用。
    • 关联(Association)关系是类与类之间的联接,它使一个类知道另一个类的属性和方法。关联可以是双向的,也可以是单向的。在Java语言中,关联关系一般使用成员变量来实现。
    •  聚合(Aggregation) 关系是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。例如,汽车类与引擎类、轮胎类,以及其它的零件类之间的关系便整体和个体的关系。与关联关系一样,聚合关系也是通过实例变量实现的。但是关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分。
    •  组合(Composition) 关系是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分对象的生命周期,组合关系是不能共享的。代表整体的对象需要负责保持部分对象和存活,在一些情况下将负责代表部分的对象湮灭掉。代表整体的对象可以将代表部分的对象传递给另一个对象,由后者负责此对象的生命周期。换言之,代表部分的对象在每一个时刻只能与一个对象发生组合关系,由后者排他地负责生命周期。部分和整体的生命周期一样。

    ——摘自《Java面向对象编程》,作者:孙卫琴

           以上关系的耦合度依次增强(关于耦合度的概念将在以后具体讨论,这里可以暂时理解为当一个类发生变更时,对其他类造成的影响程度,影响越小则耦合度越弱,影响越大耦合度越强)。由定义我们已经知道,依赖关系实际上是一种比较弱的关联,聚合是一种比较强的关联,而组合则是一种更强的关联,所以笼统的来区分的话,实际上这四种关系、都是关联关系。

            依赖关系比较好区分,它是耦合度最弱的一种,在java中表现为局域变量、方法的形参,或者对静态方法的调用,如下面的例子:Driver类依赖于Car类,Driver的三个方法分别演示了依赖关系的三种不同形式。

    [java]  view plain  copy
    1. class Car {  
    2.     public static void run(){  
    3.         System.out.println("汽车在奔跑");  
    4.     }  
    5. }  
    6.   
    7. class Driver {  
    8.     //使用形参方式发生依赖关系  
    9.     public void drive1(Car car){  
    10.         car.run();  
    11.     }  
    12.     //使用局部变量发生依赖关系  
    13.     public void drive2(){  
    14.         Car car = new Car();  
    15.         car.run();  
    16.     }  
    17.     //使用静态变量发生依赖关系  
    18.     public void drive3(){  
    19.         Car.run();  
    20.     }  
    21. }  

            关联关系在java中一般使用成员变量来实现,有时也用方法形参的形式实现。依然使用Driver和Car的例子,使用方法参数形式可以表示依赖关系,也可以表示关联关系,毕竟我们无法在程序中太准确的表达语义。在本例中,使用成员变量表达这个意思:车是我自己的车,我“拥有”这个车。使用方法参数表达:车不是我的,我只是个司机,别人给我什么车我就开什么车,我使用这个车。

    [java]  view plain  copy
    1. class Driver {  
    2.     //使用成员变量形式实现关联  
    3.     Car mycar;  
    4.     public void drive(){  
    5.         mycar.run();  
    6.     }  
    7.     ...  
    8.     //使用方法参数形式实现关联  
    9.     public void drive(Car car){  
    10.         car.run();  
    11.     }  
    12. }  

            聚合关系是是一种比较强的关联关系,java中一般使用成员变量形式实现。对象之间存在着整体与部分的关系。例如上例中

    [java]  view plain  copy
    1. class Driver {  
    2.     //使用成员变量形式实现聚合关系  
    3.     Car mycar;  
    4.     public void drive(){  
    5.         mycar.run();  
    6.     }  
    7. }  


            假如给上面代码赋予如下语义:车是一辆私家车,是司机财产的一部分。则相同的代码即表示聚合关系了。聚合关系一般使用setter方法给成员变量赋值。

    假如赋予如下语义:车是司机的必须有的财产,要想成为一个司机必须要先有辆车,车要是没了,司机也不想活了。而且司机要是不干司机了,这个车就砸了,别人谁也别想用。那就表示组合关系了。一般来说,为了表示组合关系,常常会使用构造方法来达到初始化的目的,例如上例中,加上一个以Car为参数的构造方法

    [java]  view plain  copy
    1. public Driver(Car car){  
    2.     mycar = car;  
    3. }  


            所以,关联、聚合、组合只能配合语义,结合上下文才能够判断出来,而只给出一段代码让我们判断是关联,聚合,还是组合关系,则是无法判断的。

    展开全文
  • Go 语言到底适合干什么

    万次阅读 多人点赞 2020-08-26 09:31:56
    开发人员在为项目选择语言时,不得不在快速开发和性能之间做出选择。C和C++这类语言提供了很快的执行速度,而Ruby和Python这类语言则擅长快速开发。Go语言在这两者间架起了桥梁,不仅提供了高性能的语言,同时也让...

    Go语言开发团队花了很长时间来解决当今软件开发人员面对的问题。开发人员在为项目选择语言时,不得不在快速开发和性能之间做出选择。C和C++这类语言提供了很快的执行速度,而Ruby和Python这类语言则擅长快速开发。Go语言在这两者间架起了桥梁,不仅提供了高性能的语言,同时也让开发更快速。

    在探索Go语言的过程中,读者会看到精心设计的特性以及简洁的语法。作为一门语言,Go不仅定义了能做什么,还定义了不能做什么。Go语言的语法简洁到只有几个关键字,便于记忆。Go语言的编译器速度非常快,有时甚至会让人感觉不到在编译。所以,Go开发者能显著减少等待项目构建的时间。因为Go语言内置并发机制,所以不用被迫使用特定的线程库,就能让软件扩展,使用更多的资源。Go语言的类型系统简单且高效,不需要为面向对象开发付出额外的心智,让开发者能专注于代码复用。Go语言还自带垃圾回收器,不需要用户自己管理内存。让我们快速浏览一下这些关键特性。

    1.1.1 开发速度

    编译一个大型的C或者C++项目所花费的时间甚至比去喝杯咖啡的时间还长。图1-1是XKCD中的一幅漫画,描述了在办公室里开小差的经典借口。

     

    图1-1 努力工作?(来自XKCD)

    Go语言使用了更加智能的编译器,并简化了解决依赖的算法,最终提供了更快的编译速度。编译Go程序时,编译器只会关注那些直接被引用的库,而不是像Java、C和C++那样,要遍历依赖链中所有依赖的库。因此,很多Go程序可以在1秒内编译完。在现代硬件上,编译整个Go语言的源码树只需要20秒。

    因为没有从编译代码到执行代码的中间过程,用动态语言编写应用程序可以快速看到输出。代价是,动态语言不提供静态语言提供的类型安全特性,不得不经常用大量的测试套件来避免在运行的时候出现类型错误这类bug。

    想象一下,使用类似JavaScript这种动态语言开发一个大型应用程序,有一个函数期望接收一个叫作ID的字段。这个参数应该是整数,是字符串,还是一个UUID?要想知道答案,只能去看源代码。可以尝试使用一个数字或者字符串来执行这个函数,看看会发生什么。在Go语言里,完全不用为这件事情操心,因为编译器就能帮用户捕获这种类型错误。

    1.1.2 并发

    作为程序员,要开发出能充分利用硬件资源的应用程序是一件很难的事情。现代计算机都拥有多个核,但是大部分编程语言都没有有效的工具让程序可以轻易利用这些资源。这些语言需要写大量的线程同步代码来利用多个核,很容易导致错误。

    Go语言对并发的支持是这门语言最重要的特性之一。goroutine很像线程,但是它占用的内存远少于线程,使用它需要的代码更少。通道(channel)是一种内置的数据结构,可以让用户在不同的goroutine之间同步发送具有类型的消息。这让编程模型更倾向于在goroutine之间发送消息,而不是让多个goroutine争夺同一个数据的使用权。让我们看看这些特性的细节。

    1.goroutine

    goroutine是可以与其他goroutine并行执行的函数,同时也会与主程序(程序的入口)并行执行。在其他编程语言中,你需要用线程来完成同样的事情,而在Go语言中会使用同一个线程来执行多个goroutine。例如,用户在写一个Web服务器,希望同时处理不同的Web请求,如果使用C或者Java,不得不写大量的额外代码来使用线程。在Go语言中,net/http库直接使用了内置的goroutine。每个接收到的请求都自动在其自己的goroutine里处理。goroutine使用的内存比线程更少,Go语言运行时会自动在配置的一组逻辑处理器上调度执行goroutine。每个逻辑处理器绑定到一个操作系统线程上(见图1-2)。这让用户的应用程序执行效率更高,而开发工作量显著减少。

     

    图1-2 在单一系统线程上执行多个goroutine

    如果想在执行一段代码的同时,并行去做另外一些事情,goroutine是很好的选择。下面是一个简单的例子:

    func log(msg string) {
        ...这里是一些记录日志的代码
    }
    
    // 代码里有些地方检测到了错误
    go log("发生了可怕的事情")

    关键字go是唯一需要去编写的代码,调度log函数作为独立的goroutine去运行,以便与其他goroutine并行执行。这意味着应用程序的其余部分会与记录日志并行执行,通常这种并行能让最终用户觉得性能更好。就像之前说的,goroutine占用的资源更少,所以常常能启动成千上万个goroutine。我们会在第6章更加深入地探讨goroutine和并发。

    2.通道

    通道是一种数据结构,可以让goroutine之间进行安全的数据通信。通道可以帮用户避免其他语言里常见的共享内存访问的问题。

    并发的最难的部分就是要确保其他并发运行的进程、线程或goroutine不会意外修改用户的数据。当不同的线程在没有同步保护的情况下修改同一个数据时,总会发生灾难。在其他语言中,如果使用全局变量或者共享内存,必须使用复杂的锁规则来防止对同一个变量的不同步修改。

    为了解决这个问题,通道提供了一种新模式,从而保证并发修改时的数据安全。通道a

     

    图1-3 使用通道在goroutine之间安全地发送数据

    图1-3中有3个goroutine,还有2个不带缓存的通道。第一个goroutine通过通道把数据传给已经在等待的第二个goroutine。在两个goroutine间传输数据是同步的,一旦传输完成,两个goroutine都会知道数据已经完成传输。当第二个goroutine利用这个数据完成其任务后,将这个数据传给第三个正在等待的goroutine。这次传输依旧是同步的,两个goroutine都会确认数据传输完成。这种在goroutine之间安全传输数据的方法不需要任何锁或者同步机制。

    需要强调的是,通道并不提供跨goroutine的数据访问保护机制。如果通过通道传输数据的一份副本,那么每个goroutine都持有一份副本,各自对自己的副本做修改是安全的。当传输的是指向数据的指针时,如果读和写是由不同的goroutine完成的,每个goroutine依旧需要额外的同步动作。

    1.1.3 Go语言的类型系统

    Go语言提供了灵活的、无继承的类型系统,无需降低运行性能就能最大程度上复用代码。这个类型系统依然支持面向对象开发,但避免了传统面向对象的问题。如果你曾经在复杂的Java和C++程序上花数周时间考虑如何抽象类和接口,你就能意识到Go语言的类型系统有多么简单。Go 开发者使用组合(composition)设计模式,只需简单地将一个类型嵌入到另一个类型,就能复用所有的功能。其他语言也能使用组合,但是不得不和继承绑在一起使用,结果使整个用法非常复杂,很难使用。在Go语言中,一个类型由其他更微小的类型组合而成,避免了传统的基于继承的模型。

    另外,Go语言还具有独特的接口实现机制,允许用户对行为进行建模,而不是对类型进行建模。在Go语言中,不需要声明某个类型实现了某个接口,编译器会判断一个类型的实例是否符合正在使用的接口。Go标准库里的很多接口都非常简单,只开放几个函数。从实践上讲,尤其对那些使用类似Java的面向对象语言的人来说,需要一些时间才能习惯这个特性。

    1.类型简单

    Go语言不仅有类似int和string这样的内置类型,还支持用户定义的类型。在Go语言中,用户定义的类型通常包含一组带类型的字段,用于存储数据。Go语言的用户定义的类型看起来和C语言的结构很像,用起来也很相似。不过Go语言的类型可以声明操作该类型数据的方法。传统语言使用继承来扩展结构——Client继承自User,User继承自Entity,Go语言与此不同,Go开发者构建更小的类型——Customer和Admin,然后把这些小类型组合成更大的类型。图1-4展示了继承和组合之间的不同。

     

    图1-4 继承和组合的对比

    2.Go接口对一组行为建模

    接口用于描述类型的行为。如果一个类型的实例实现了一个接口,意味着这个实例可以执行一组特定的行为。你甚至不需要去声明这个实例实现某个接口,只需要实现这组行为就好。其他的语言把这个特性叫作鸭子类型——如果它叫起来像鸭子,那它就可能是只鸭子。Go语言的接口也是这么做的。在Go语言中,如果一个类型实现了一个接口的所有方法,那么这个类型的实例就可以存储在这个接口类型的实例中,不需要额外声明。

    在类似Java这种严格的面向对象语言中,所有的设计都围绕接口展开。在编码前,用户经常不得不思考一个庞大的继承链。下面是一个Java接口的例子:

    interface User {
        public void login();
        public void logout();
    }

    在Java中要实现这个接口,要求用户的类必须满足User接口里的所有约束,并且显式声明这个类实现了这个接口。而Go语言的接口一般只会描述一个单一的动作。在Go语言中,最常使用的接口之一是io.Reader。这个接口提供了一个简单的方法,用来声明一个类型有数据可以读取。标准库内的其他函数都能理解这个接口。这个接口的定义如下:

    type Reader interface {
        Read(p []byte) (n int, err error)
    }

    为了实现io.Reader这个接口,你只需要实现一个Read方法,这个方法接受一个byte切片,返回一个整数和可能出现的错误。

    这和传统的面向对象编程语言的接口系统有本质的区别。Go语言的接口更小,只倾向于定义一个单一的动作。实际使用中,这更有利于使用组合来复用代码。用户几乎可以给所有包含数据的类型实现io.Reader接口,然后把这个类型的实例传给任意一个知道如何读取io.Reader的Go函数。

    Go语言的整个网络库都使用了io.Reader接口,这样可以将程序的功能和不同网络的实现分离。这样的接口用起来有趣、优雅且自由。文件、缓冲区、套接字以及其他的数据源都实现了io.Reader接口。使用同一个接口,可以高效地操作数据,而不用考虑到底数据来自哪里。

    1.1.4 内存管理

    不当的内存管理会导致程序崩溃或者内存泄漏,甚至让整个操作系统崩溃。Go语言拥有现代化的垃圾回收机制,能帮你解决这个难题。在其他系统语言(如C或者C++)中,使用内存前要先分配这段内存,而且使用完毕后要将其释放掉。哪怕只做错了一件事,都可能导致程序崩溃或者内存泄漏。可惜,追踪内存是否还被使用本身就是十分艰难的事情,而要想支持多线程和高并发,更是让这件事难上加难。虽然Go语言的垃圾回收会有一些额外的开销,但是编程时,能显著降低开发难度。Go语言把无趣的内存管理交给专业的编译器去做,而让程序员专注于更有趣的事情。

    本文摘自《Go语言实战》

     

    Go 语言结合了底层系统语言的能力以及现代语言的高级特性,旨在降低构建简单、可靠、高效软件的门槛。本书向读者提供一个专注、全面且符合语言习惯的视角。本书同时关注语言的规范和实现,涉及的内容包括语法、类型系统、并发、管道、测试,以及其他一些主题。

    本书是写给有其他编程语言基础且有一定开发经验的、想学Go语言的中级开发者的。对于刚开始要学习Go语言和想要深入了解Go语言内部实现的人来说,本书都是最佳的选择。

    展开全文
  • Eureka是干什么的?

    千次阅读 2021-08-12 00:18:09
    Eureka是干什么的? 前言:之所以写这篇文章,第一个原因是刚入职的这家新公司,里边使用到了这个组件,但是却没有真正的推广开,还在摸索探讨阶段,自己之前学习springCloud的时候,有学习过相关内容,但是没有去...
  • spring框架是干什么

    千次阅读 2021-03-10 06:24:37
    使用Spring可以:根据配置文件创建及组装对象之间的依赖关系;无耦合的实现日志记录,性能统计,安全控制;和第三方框架无缝集成,方便数据库访问、方便web层搭建等等。Spring框架Spring是一个开源的轻量级Java SE...
  • Maven(Maven是干什么用)

    千次阅读 2021-06-23 20:56:10
    Maven项目对象模型(POM)是一个项目管理工具软件,可以通过简短的信息描述来管理项目的构造,报告和文档。 除了具有构建程序的功能外,Maven还提供了高级项目管理工具。由于Maven的默认构建规则具有很高的可重用性...
  • 但是很多人学习了这门余元的语法和基本功能之后却不知道Python能干什么以及怎么做。Realpython.com上面的一篇文章于是把Python可以做的事情以及不适合做的事情进行了总结。更棒的是,里面还列举了如何做这些事情的...
  • JAVA 面向对象对象 封装

    万次阅读 多人点赞 2021-05-06 15:58:57
    面向对象其实是一种编程思想,通过它可以把生活中复杂的事情变得简单化,从原来的执行者变成了指挥者。 面向对象是基于面向过程而言的。 面向过程强调的是过程,比如: 打开冰箱门 2. 把大象放进去 3. 关上冰箱门 ...
  • 白箱测试可以应用于单元测试(unit testing)、集成测试(integration testing)和系统的软件测试流程,可测试在集成过程中每一单元之间的路径,或者主系统跟子系统中的测试。尽管这种测试的方法可以发现许多的错误...
  • python 类的定义_类和对象的关系

    千次阅读 2021-02-10 22:19:10
    1.类和对象我们把对象比作一个“饼干”,类就是制作这个饼干的“模具”。我们通过类定义不同数据类型的属性(数据)和方法(行为),也就是说,“类将行为和状态(数据)打包在一起”。对象是类的具体实例,一般称为“类的...
  • 什么是类,什么是对象,类和对象之间的关系

    万次阅读 多人点赞 2010-10-14 22:40:00
    类的概念:类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括...
  • 5w字长文带你彻底看懂Spring是怎么创建对象的!附10几张图,在创作这篇文章的过程中给官方提交了两个issue
  • 什么是UML? UML能帮我们做什么什么是建模? 为什么要建模? 为什么要可视化建模? 建模的原理(原则) 什么是UML? (Unified Modeling Language)统一建模语言,用来设计软件蓝图的可视化建模语言 ...
  • 面向对象的基础-抽象

    千次阅读 2022-05-05 19:35:35
    面向对象的三大特征? 封装、继承、多态 ...我觉得这两句话重点是强调是要几个对象、要哪个对象,至于这些对象具体是怎么的,我们不用管,总的来说是在关注对象。确定主语。 抽象是什么
  • JavaScript高手之路:对象的定义以及封装

    万次阅读 热门讨论 2019-01-29 02:00:51
    上诉代码先定义了一个Operation对象对象封装了±×/四种法则,按后调用Operation.add(),Operation.sub(),Operation.muti(),Operation.divsition()来分别操作它们,你可以尝试着运行上述代码来观察输出值,我觉得...
  • 一篇文章看明白 Android 系统启动时都干什么

    万次阅读 多人点赞 2018-01-26 17:32:44
    Android - 系统启动过程 计算机是如何启动的? 首先熟悉一些概念,计算机的硬件包括... 当我们按下开机键时,此时内存中什么都没有,,因此需要借助某种方式,将操作系统加载到内存中,而完成这项任务的就是 BIO...
  • 接下来咱们再来看看每一层嘛的。 Service,业务层,就是咱们开发的业务逻辑层。 Config,配置层,主要围绕 ServiceConfig 和 ReferenceConfig,初始化配置信息。 Proxy,代理层,服务提供者还是消费者都会...
  • 2、@Configuration你凭啥能这么 现在我们从spring的源码中看看凭什么你@Configuration可以这么,首先我们要知道加了这个注解的类是怎么被spring知道的呢? 第一种方式,你直接告诉他例如 ...
  • 新手小白学JAVA 面向对象之多态

    万次阅读 多人点赞 2021-05-10 13:55:29
    好处是:可以把不同的子类对象当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,统一调用标准。 水果有两种形态:水果和苹果,不关心买回来的是苹果还是西瓜,只要是水果就行 class ...
  • COM对象

    千次阅读 2019-01-28 18:38:43
    COM 对象QueryInterface 实现 关于 COM 接口的介绍请参考我的另一篇博文 COM 接口。 本文主要关注 COM 的实现。 QueryInterface 实现 QueryInterface 接口查询函数一般实现如下: HRESULT CCalculator::...
  • JS进阶之面向对象ES6-class类

    千次阅读 2020-11-05 19:54:05
    JS进阶之面向对象ES6-class类,面向对象OOP
  • MinIO简介

    千次阅读 2022-03-04 09:14:34
    对象文件最大可以达到5TB。 1. MinIO的基础概念 术语 含义 Object 存储到MinIO的基本对象。如文件,字节流等 Bucket 存储Object的逻辑空间,每个Bucket之间的数据时相互隔离的。对于用户而言,相当于...
  • 对象是否存活,可以这样判断?

    千次阅读 2020-08-19 11:54:56
    首先说为什么要判断是否存活,当垃圾收集器在对堆进行回收前,第一...但是在JVM中会很难解决对象之间相互循环引用的问题,就如果两个对象之间相互调用,这时候就会发生类似死锁的情况,即这个地方相互调用会使得引用
  • java中操作字符串有哪些类,他们之间什么区别?

    万次阅读 多人点赞 2019-09-02 18:15:51
    java中操作字符串的类有哪些? String StringBuffer StringBuilder 区别 我们可以先看一下这几个类的继承关系图 ...从类的继承关系上来开的话,String和...然后我们在通过断点看一下他们几个类创建出来的对象都什么...
  • servlet是干什么的?

    万次阅读 多人点赞 2017-10-22 15:50:01
    知乎上一个名为“servlet的本质是什么,它是如何工作的?”问题下面的各种回答,基本解答了我的疑问。 感谢。 现在,做一个知识的搬运工…… 1. 浏览器发送一个HTTP请求,HTTP请求由Web容器分配给特定的...
  • 什么是面向对象

    千次阅读 2018-04-03 11:32:35
    什么是面向对象?你真的理解了吗? 可能大家听过很多关于...面向对象:关注点在于能做什么,描述的是对象与对象之间的关系。 那么什么对象到底是什么呢?下面我来举一个简单的例子:小明要去吃饭,把这句话用代...
  • 【干货分享|建议收藏】2w字爆肝详解 JavaScript对象

    千次阅读 多人点赞 2020-12-08 11:05:50
    5.1.1_什么对象 例如:在JavaScript中描述一个手机对象,则手机拥有的属性和方法如下: 手机的属性:颜色、重量、屏幕尺寸。 手机的方法:打电话、发短信、看视频、听音乐。 在代码中,属性可以看成是对象中保存...
  • const对象什么可以在头文件中定义

    千次阅读 2014-06-15 10:13:53
    首先明确两点: const对象默认为文件的局部变量。《C++ Primer 4》p86头文件用于声明而不是用于定义。《C++ Primer 4》p100,
  • Java是什么?Java到底能干嘛?

    万次阅读 多人点赞 2019-11-15 08:30:00
    我刚开始学习Java的时候,很长一段时间有这么个疑惑?Java到底是啥?它能干什么?自己也看过不少的课程和书,大部分是从Java的发展史开始讲,总之就是那些什么Jav...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 186,864
精华内容 74,745
热门标签
关键字:

对象之间都可以干什么