黑马程序员_面向对象(封装)

医学图像分割实战:基于TransUNet训练自己的眼底硬渗出物数据集(附完整代码) 本文详细介绍了基于TransUNet的眼底硬渗出物分割实战指南,涵盖数据预处理、模型调优、训练策略及性能优化等关键环节。通过代码复现和实验对比,展示了TransUNet在医学图像分割中的优势,为糖尿病视网膜病变的早期诊断提供技术支持。 阅读详情

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 

面向对象(封装) 

一、对于面向对象的理解

 

大学里面都学过c语言,c语言相对java来说是一种面向过程的语言,而java语言就是面向对象,面向对象时相对面向过程而言的,两者都是一种思想。

具体而言,面向过程更强调的是功能行为和过程,就是说实现某个功能的过程,;面向对象则是,把某个我们的功能封装进某个对象,这个对象具备某个我们可以调用的接口或者其他,我们只需要调用这个接口,来实现这个功能,而不必知道其具体过程是怎么实现的。

举个例子来说:

         一个程序员,他会编程,公司需要他完成某个项目,公司不需要知道他具体怎么做,他怎么会的编程,只要完成公司项目就可以,这里公司调用了程序员的编程功能,公司就是一个指挥者,就是说我们是指挥者,只需调用我们需要的功能的对象即可,这就是面向对象。而程序员具体怎么完成任务,具体步骤和过程,这就是面向过程。

 

 

二、类和对象

1、类和对象的关系

两者描述:

1)类:就是对现实生活中事物的描述

2)对象:就是这类事物实在存在的个体

打个比方,比如一个建筑工程,类就是描述整个建筑工程的蓝图或者说图纸,上面关于尺寸,形状,功能都有具体的描述;对象就是依据这个图纸所建成的大楼,具有图纸上所有描述的功能和属性。相对应的,到java程序中,类就是class所定义的类,对象就是在java中通过new在堆内存中建立的实体。

描述来说比较抽象,比面向对象理解难一点,个人认为两者容易混淆,但认清两者使用方式和内存占用的话,就会区别的比较清楚。

使用方式来说:类中的属性和功能,不能直接通过类来调用(静态方法除外),只能通过建立对象来调用,就好比我们不能直接住进建筑的图纸里,但我们可以住进建好的建筑里。

内存占用来说:类,

2、对象的建立及调用

         建立一个对象,格式为:类名 对象名称 = new 类名();

         调用其中的属性和行为:对象名称.对象成员。

每new一个对象,就会在堆内存中建立一个对象。

 

 

 

示例程序:

class Person{

    intage=20;

    Stringname="zhangsan";

    void study(){}

}

 

Person p =new Person();

p.age=24;

p.study();

3、匿名对象

就是没有名字的对象

有名字对象:Personp = new Person();

匿名对象:  new Person();

匿名对象时对象的简化形式,只用在当对象方法仅进行一次调用的时候,而且匿名对象可以作为实际参数进行传递,这一点要注意,后面学习会用到很多。比如一个函数需要传递一个对象最为参数,这是就可以用匿名对象。

例子:new Car().color

           new Car().color

           new Car().run()

上面第一第二例子是建立了两个对象,当第二个对象建立的时候,第一对象已经变成垃圾了。而第三个对象,只调用了方法一次,这是可行的。

总而言之,匿名对象调用方式:当对象方法只调用一次时。如果对一个对象进行多个成员调用,就必须起名字了。

总结:使用方式:1、对象方法调用一次。2、作为参数

 

4、成员变量和局部变量区别

         作用范围:成员变量作用与整个类中

              局部变量作用与函数中和语句中

在内存中存储:成员变量在堆内存中(对象建立)

              局部变量存在栈内存中

 

 

三、面向对象的三大个特征

三特征:封装,继承,多态

 

 

四、面向对象:封装

封装概念:是指隐藏对象的属性和实现细节,仅保留一个公共的对外访问方式。

优点:将变化隔离,便于使用,提高复用性和安全性

封装原则:将不需要对外提供给的内容都隐藏起来,把属性隐藏,仅提供公共方法对其进行访问。

1、封装

封装个人理解看来,就是对象的首个属性,我们将事物的属性和行为封装起来,这个对象可以实现某个功能,我们只是需要这个功能,像电视可是看节目,电脑可是显示文档,我们不需要知道其内部构造,只需一个开关点一下即可。这样,我们不用对其内部做什么改动,将变化隔离,同时提高了安全性,因为我们如果随便可以改动电视机里的电路,那么电视机就该坏了。这样我们就把具有某个工能的事物的内部封装到一个盒子里,不告诉你盒子内部有什么,也不让你操作,只给你提供一个方法,就是电视机那个按钮,这就是封装。函数就是java程序中最小的封装体。

 

 

 封装后,调用方法或者使用功能就会变得简单了,我们只需要那个公共方法就可以得到我们需要的功能。

封装就得用到一个权限修饰符private:私有,这个权限修饰符可以修饰成员变量和成员方法,使得类中成员只被本类使用,只在本类中有效。本类之外是直接不知道这个类中有这个成变量和成员方法,只能调用public修饰的公共方法来进行这个功能的访问,不需要知道内部是怎么实现这个工能的过程,及其属性和行为。注意:私有,仅仅是封装的一种表现形式。

程序例子:

class Person{

        private intage;

        private String name;

        void study(){}

}

现在类中age和name被私有化了,当我们在建立对象来调用age

                            Person   p = new Person();

                            p.age=20;

这时就会报错,因为age被private修饰,不能访问。但我们需要设置或者获取这个age的值,所以对外提供公共方法:

                            public voidsetAge(int a){

                                     age = a;

}

Public int getAge(){

         return  age;

}

通常,每个私有属性都会有两个公共访问方式,一个是设置,一个是获取。有公共访问方式,我们就可以对外面的访问数据进行筛选或者说判断,把我需要的数据传进来,这样提高了程序代码的健壮性。

2、构造函数

特点:函数名与类名一致,不用定义返回类型,不可以写return语句

作用:给对象进行初始化

注意:有默认的构造函数,多个构造函数以重载的形式存在

 

注意不定义返回类型和void的区别:void是一种返回值类型,代表没有具体返回值类型的情况,而构造函数是根本没有返回值类型。

         构造函数示例:

class Person{

        Person(){

            执行语句

}

Person(int x){

           执行语句

}

}

上述示例就是说,构造函数名必须是类名,而且构造函数不止一个,可以有多个,以重载的形式出现,每当我们执行一次  new Person();语句的时候,就是建立对象的时候,相应的构造函数就会被执行一次,就是对象建立即运行。这样表示,构造函数是给当前对象进行初始化的。之前,我们创建一个对象的时候,也没有构造函数,但是我们还是建立了,其实是系统默认给该类加入一个空参数的构造函数,比如上路例子如果我们不加构造函数,系统就会默认给我加一个空参数的构造函数Person(){}。当我自己定义的后,就没有这个系统默认的构造函数。

所以当我们自己写下构造函数,然后建立对象的时候没有使用相对应的构造函数,那么系统就会报错。构造函数也是可以私有化的,因为也属于类的成员,但是一旦私有化,我们建立对象使用这个构造函数的时候,就会出错。

总结来说,构造函数就是对象一建立就会调用的函数,与类同名,可以重载,用于给对象初始化,准确来说是给当前使用的构造函数创建的对象进行初始化。我们在分析事物的时候,当该事物具备一些建立的时就有的特性或行为,那没就可以将这些内容定义在构造函数中。

 

3、构造代码块

         构造代码块,与构造函数类似,但又不同。

         格式为

                   {

                            执行语句;

}

 

         相对于构造函数来说,构造代码块就是“裸奔”,只有大括号包含的语句,作用也是给对象进行初始化。构造代码块和构造函数的区别:

                                    相同之处:给对象进行初始化,都是对象一建立就运行

不同之处:1)构造代码块是给所有对象进行初始化,构造函数是给不同对象对象初始化。                           

                                               2)构造代码块优先于构造函数执行

                          3)构造代码块是给不同对象的相同的共性初始化的,而构造函数是给不同对象进行个性的初始化的。

 

         4、this关键字

先看示例:

         class Person{

           Stringname;

Person(String name){

              this.name= name;

}

}

从程序上来看,我们传入的参数和类里的成员变量重名了,当没有this时候,name=name,就是自己给自己赋值,没有任何意义。此处,this就表示类里成员变量,从而就区分了局部变量和成员变量同名的情况。

this关键字:就代表本类的对象。可以说就是当前所调用的对象。

我们建立一个对象,对象里就会包含类中所描述的属性和行为,就像上述程序例子,我们一旦建立对象,就会有name和Person构造函数,当我们建立对象时,就会往里传一个name进行初始化,而这个构造函数被我们现在建立的这个对象所调用,所以,this就代表我们现在的这个对象。

总结的说,哪个对象在调用this所在的构造函数,this就代表哪个对象,且当定义类中功能时,该函数内部要用到本类对象时,就用this。

 

注意构造函数间调用:

类中如果我们在以个函数中调用相同类中的另一个函数,在函数中直接以函数名调用即可,在study函数中直接调用work函数,程序如下:

class Person{

       intwork(){}

        void study(){

           work();

}

}

但构造函数间就不可以这样调用,需用到this关键字,在第二个构造函数中调用第一个构造函数:

 

         class Person{

           Person(intage){

              执行语句

}

Person(int age,String name){

              this(age);

}

}

 

 


                                                                                                                        

为什么在第一行,因为初始化要先执行,如果初始化中还有初始化,那么先执行里面的初始化动作,就像上述的this调用构造函数。注意不要在两个构造函数见互相调用,会出现死循环。这种this语句只能用于构造函数之间。

 

5、static关键字

 

通常,对象在建立的时候有一些共有的数据,比如人,除了个人数据如年龄,姓名每个人都会不同,但都是中国人或者都是某一国籍的人。如果我们建立对象,那么每个对象里都会有一个中国国籍,而这个国籍我们可以把它提取出来作为共有数据来使用。这里就用到了static关键字。

static是一个修饰符,用于修饰成员变量和成员函数,注意,只能修饰成员,不能修士局部。示例程序:

             class   Person{

  static  String  country = “China”;

}

 

这静态成员,可以直接被类名调用,调用方式为:类名.成员  如:Person.country

为什么可以有这些功能,这和内存有关:

之前我们学习过栈内存,堆内存,现在又有一个方法区或者是共享区、数据区。类中的共享数据和方法也在这里。

1)      静态修饰的成员,会在类的加载而加载,就是说类一加载,静态修饰的成员就会存到方法区中,也随着类的消失而消失。缺点也很明显,生命周期过长,占据方法去内存时间过长,所以不宜创建过多的静态成员。相对于对象来说,就优先于对象存在,也就优先于实例变量存在。

              ((小知识点:1、未被static修饰的成员变量,随着对象建立而存在于堆内存中,为实例变量。2、被static修饰的成员变量,因为随类的加载而加载,随类的消失而消失,存在于方法去中,称为类变量))。

2)      无法从非静态方法中引用非静态成员。因为静态优先于非静态存在,就是优先于对象存在,有静态的时候不一定有非静态,所以,静态方法只能访问静态成员。

非静态方法可以访问非静态成员也可以访问静态成员,因为内存中后出现,所以,两者都可以访问。

3)      静态方法中不可以使用this,super关键字,因为这两个字得先建立对象,所以不可。

4) 静态一点应用,如果建议一个工具类,其中没有特有数据,我们可以把方法都静态化,直接以类名进行调用即可,同时把构造函数私有化,这样就可避免不必要建立的对象。

总结:

什么时候使用静态:

        1、定义静态变量:当对象中出现共享数据时,比如国籍,所属学校

        2、定义静态函数:当功能内部没有访问到非静态数据(对象特有数据)时

6、静态的主函数

主函数是一个特殊的函数,是一个程序执行的起始点,是一个入口,可以被jvm识别并调用。

在主函数中,要注意main,这个不是关键字,但是是一个特殊的单词,可以被jvm识别。

(String[] args):函数参数,是一个数组类型,其中args可以再eclipse中设置程序初始参数args的信息。在dos命令行中,可以用java类名  数据1 数据2  数据… 来给主函数中的args传值。

尤其重要的一点,主函数格式是固定的,jvm识别

 

7、帮助文档制作,中注意,只有类名被public修饰的才可以使用文档注释。

8、静态代码块(小知识)

  格式:static{

         执行语句;

}

静态代码块特点:随着类的加载而加载,可以有多个静态代码块

静态代码块作用:给类进行初始化,并且由于主函数执行,且只执行一次。

                既然是给类进行初始化,那么类一加载,静态代码块就会先执行。

小知识点:类的加载时间,如果有一下程序:Person  p = null; 这时Person这个类是没有被加载进内存的,因为此处没有意义,没有用到一点类中的成员。而只要用到类中的成员,类才会被加载,像p=new Person(),Person.getAge(),这才会加载类。

 

总结:构造函数,构造代码块,静态代码块

 

 

 

初始化对象

执行次数

优先级

 

构造函数

对应对象(当前对象)

同对象建立次数

最后

 

构造代码块

所有对象

同对象建立次数

次优

 

静态代码块

类

只执行一次

最优(随类加载)

 

 

 

9、对象初始化过程

Person p = new Person(“zhangsan”,20);

 

这句话都做了什么?

1)  因为new用到了Person.class,所以会先找到Person.class文件加载到内存中

2)  执行该类中的static代码块,如果有的话,给Person.class类进行初始化

3)  在堆内存中开辟空间,分配内存地址值

4)  在堆内存中建立对象的特有属性,并进行默认初始化

5)  对属性进行显示初始化

6)  对对象进行构造代码块初始化

7)  对对象进行对应的构造函数的初始化

8)  将内存地址值赋给栈内存的p变量

Python 爬虫实战:淘宝直播间实时数据抓取(弹幕分析 + 流量监控) 随着电商直播的迅猛发展,淘宝直播已成为品牌推广和商品销售的重要阵地。通过爬取淘宝直播间的实时数据,包括弹幕互动和流量信息,可以帮助商家深入了解用户行为、优化直播策略,同时为市场分析和商业决策提供数据支持。本文将深入探讨如何利用 Python 爬虫技术实现对淘宝直播间实时数据的抓取,并进行弹幕分析和流量监控。 阅读详情

相关推荐

Maven证书信任危机:PKIX path building failed的全面解析与实战修复

本文全面解析了Maven构建中常见的`PKIX path building failed`证书验证错误。该错误通常在使用特定镜像仓库或自建仓库时,因SSL/TLS证书不被JDK默认信任而触发。文章深入剖析了错误根源,对比了临时忽略检查与永久导入证书等不同修复方案的安全性与适用场景,并推荐通过`keytool`将证书导入JDK信任库的根治方法,以保障构建安全与稳定。

zzz56的博客 506

黑马程序员-面向对象,封装

------- android培训、java培训、期待与您交流! ---------- 一、面向对象 1、面向对象概念 面向对象就是把多个功能封装到一个对象中,通过调用该对象获取这些功能。称为面向对象。 2、面向对象和面向过程的理解: 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想:面向过程强调的是功能行为;面向对象将功能

达达的专栏 848

Win10 + Linux 双系统删除(Linux)

删除Linux所使用的磁盘分区 进入此电脑->计算机->管理->磁盘管理

weixin_52247624的博客 944

黑马程序员__面向对象之封装

黑马程序员——面向对象之封装 -------android培训、java培训、期待与您交流! ---------- 1.      封装是面向对象的三大特征之一。指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部的信息,而是通过该类所提供的方法来实习对内部信息的操作和访问。简而言之,封装就是隐藏对象的属性和实现细节,仅对外提供公共的访问方式。 2.      封装的

Wei__yaoyao的专栏 550

jetson orin nano 使用cuPCL

jetson开发板上使用pcl时,正常使用的是cpu,拖慢了整体的效率。cuPCL有一些库用于使用CUDA处理点云。

weixin_42256401的博客 1020

MATLAB Appdesigner开发独立桌面App全流程(一):以打开串口功能为例介绍Appdesigner的基本使用

本文详细介绍了Appdesigner的基本使用,以串口功能为例介绍按钮回调函数的实现以及控件之间通信的问题

Zhuwany的博客 3万+

黑马程序员_面向对象_封装

----------- android培训、java培训、期待与您交流!------------

zzzx081135的专栏 447

用Arduino和MAX30102做个心率血氧仪,从硬件连线到算法调试全流程避坑

本文详细介绍了如何使用Arduino和MAX30102传感器构建高精度心率血氧仪,涵盖硬件连线、软件配置、信号处理及算法优化全流程。通过实战案例和避坑指南,帮助开发者快速实现临床级精度的健康监测设备,适用于可穿戴设备和医疗健康领域。

weixin_26897585的博客 385

黑马程序员--面向对象之封装

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------

wangwei19901213的博客 372

Amber&pdb4amber | 准备PDB文件

PDB文件中唯一需要或有用的数据来设置AMBER模拟是:原子名称,残基名称,也许还有链标识符(如果存在多条链),以及重原子的坐标。除非加载额外的文库,否则非蛋白质结构(特别是低分子量配体)会引起问题;如果它们在PDB文件中的名称对应于AMBER库中的内部名称,则通常会识别水和单原子离子。–dry选项移除结构中的结晶水和–reduce选项在最理想的位置添加氢原子.为tleap程序调整从外部获得的PDB文件。

ASKCOS博客 897

14 硬件工程师笔面试高频考点真题解析——逻辑门

逻辑门是数字电路的基本单元,实现布尔运算(如与、或、非、异或等)。OC门(集电极开路)和OD门(漏极开路)需外接上拉电阻,支持“线与”逻辑,适用于I2C总线等场景,避免推挽输出并联导致的短路问题。三态门具有高、低、高阻三种状态,用于总线分时复用。推挽输出因内置上下管,禁止并联,否则会引发电源短路。三者区别在于:推挽驱动强但不可并联;OC/OD需上拉,支持线与;三态门通过使能控制实现高阻隔离,适用于共享总线设计。

XU157303764的博客 1902

黑马程序员————面向对象之封装

------- android培训、java培训、期待与您交流! ---------- 众所周知,面向对象思想有三大特征:封装,继承,多态。 下面详细说说封装。 封装是很好理解的,就是隐藏属性和实现细节,仅对外提供公共的访问方式。     封装的体现有类,方法,以及private修饰成员变量等。 类实际就是一个封装体,把事物的属性和行为功能封装成一个整体,使我们在new对象的

jinger5186的博客 399

QGis二次开发 —— 2、第一个程序 - 加载栅格tif与矢量shp文件(附源码)

QGis二次开发 —— 2、第一个程序 - 加载栅格tif与矢量shp文件(附源码)

1100

黑马程序员 Java面向对象——封装

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- 面向对象 在Java中,高手们的概念就是万物皆对象。 面向对象的概念: 面向对象:是基于面向过程的一种思想。 面向过程:强调的是功能行为。 面向对象:将功能封装进

u014434956的专栏 632

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

黑马程序员 Java面向对象——封装

面向对象 在Java中,高手们的概念就是万物皆对象。 面向对象的概念: 面向对象:是基于面向过程的一种思想。 面向过程:强调的是功能行为。 面向对象:将功能封装进对象,强调具备了功能的对象。 面向对象是基于面向过程的。 面向对象和面向过程: 图例: 面向对象特点: 1,面向对象就是一种常见的

苦行僧 834

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

黑马程序员笔记——Java面向对象之封装

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

u014646324的专栏 568

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

黑马程序员_面向对象之封装

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流------ 面向对象思想 面向过程:关注的是步骤和过程 面向对象:关注的是对象 面向对象是基于面向过程的 面向对象的特点: a: 是一种更符合人们思考习惯的思想 b: 把复杂的事情简单化了 c: 从执行者变成指挥者 类与对象以及引用 事物 类 属性 成员变量  行为 成员方法

dai_bo_yang的博客 309

黑马程序员-面向对象三大原则——封装、继承、多态

一、面向对象三大原则——封装、继承、多态    1、封装是隐藏类的具体细节,这些细节信息是不需要被调用者所了解的,这样最大限度地保证了类的安全性    2、继承可以简化类的设计,并提高代码的可重用性。程序员可以直接使用别人事先写好的基类中已经存在的功能,而不需要重新         对功能进行编码。    3、多态可以使类中名称相同的功能具有不同的实现方式,在调用类的一些功能方法的时候

u014241593的专栏 1141

黑马程序员——Java基础——面向对象、匿名对象、封装

------http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------  传智基础班第6天内容笔记:  面向对象思想:面向对象是基于面向过程的编程思想;     面向对象思想特点:1、符合我们思想习惯的思想  2、将复杂的事情简单化 3、我们从执行者变成了指挥者     面向对

hzg_HM的博客 755

黑马程序员-面向对象之封装

------- android培训、java培训、期待与您交流! ---------- 面向对象-封装:        封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。        例如:电脑机箱,内部设备封装在机箱内部。 封装的好处: 1.      将变化隔离 2.      便于使用 3.      提高重用性 4.      提高安全性 封装的原则:

u010151497的专栏 513

黑马程序员_面向对象思想概述和三大特性之一——封装

---------------------- ASP.Net+Android+IOS">http://edu.youkuaiyun.com"target="blank">ASP.Net+Android+IOS开发、<a href=".Net">http://edu.youkuaiyun.com"target="blank">.Net培训、期待与您交流! ---------------------- 一、面向对象的概

Cla_CSharp1126XueXi的专栏 1444

黑马程序员———面向对象的特性之封装

OC语言是面向对象的,通过类实现,面向对象共有三大特性,封装继承和多态,这里主要分析一下封装,后几个博客会写集成和多态。 一、 封装 在开发过程中,考虑到安全性要求,我们通常不让外界直接修改我们类的成员变量,而让外界使用我们提供的方法来修改,这样类的成员变量就封装起来了。封装的目的就是保证数据的安全行,保证业务逻辑正常 运行。 二、set 方法和get 方法 @public的成员可以

u013231295的专栏 374

黑马程序员—面向对象之封装、继承、多态

黑马程序员—面向对象之封装、继承、多态 ---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- 刚开始接触面向对象的时候,确实对于封装、继承、多态了解不多,而且还相当困惑;不过,通过自己的学习,再结合高手的意见和方法,对类、属性、构造方法、抽象类、抽象方法、虚方法与封装、继承多态之间的关系也有所了解。

u013039979的专栏 571

黑马程序员- 面向对象封装,对象理解,static

------- android培训、java培训、期待与您交流! ---------- 1,面向对象理解        理解面向对象和面向过程           面向对象是相对面向过程而言           面向对象和面向过程都是一种思想           面向过程              强调的是功能行为          面向对象            将功能封装进对象

gzbbxu的专栏 605

黑马程序员_面向对象---封装

------- android培训、java培训、期待与您交流! ----------                                                                                                           面向对象---封装 1、认识面向对象(了解★★☆☆☆) 1.1 面向对象:将功能封装进

QingLiZhan的专栏 697

黑马程序员_面向对象的三大特征封装、继承、多态

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

a297056007的专栏 413
上一篇: 黑马程序员_面向对象(继承)
下一篇: 黑马程序员_面向对象(多态)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值