面向对象初探

面向对象初探面向对象初探

大家好,又见面了,我是你们的朋友全栈君。

经历了UML,C#和设计模式,我们正在慢慢的向面向对象编程过度,那么面向对象编程究竟是怎样的呢?今天就一起来了解一下面向对象中的基础知识。

1.      类与实例

对象:对象是一个自包含的实体,用一组可识别的特性和行为来标识。(这是比较官方的定义,其实对象就是可以看到、感觉到、听到、触摸到、尝到、闻到的东西,所有的东西都是对象。)

类:具有相同的属性和功能的对象的抽象的集合。(我们人类就是每个个体人的集合)

实例:实例就是一个真实的对象。通常我们用new关键字来创建一个新的对象,即实例化一个对象。

下面通过具体代码创建一个类及一个类的实例:

class People     //创建了一个People类
{
      public string PlayGame()     //People类里有PlayGame的方法
	{
		return"basketball";
	}
}
private void play_Click()
{
	People YM = new People();        //实例化一个People类为YM,
                                         //People YM:声明一个People对象,对象名为YM
                                         //YM = new People():将YM对象实例化
	MessageBox.Show(YM.PlayGame());
}

2.      构造方法

构造方法:即构造函数,也就是对类进行初始化。构造方法与类同名,无返回值,也不需要void,在new的时候就可以调用。

所有的类都有构造方法,如果事先没有自己定义的构造方法,系统就会默认生成空的构造方法,如果已经定义,则默认的构造方法就会失效。

class People
{
       private string name= "";           // 声明People类的私有字符串变量name
       public People(string name)         // 定义People类的构造方法,参数为输入的一个字符串
       {
            this.name = name;             // 将参数赋值给私有变量name,一般情况下参数和私有变量同名
       }
 
       public string Introduce()
       {
             return “我的名字叫" + name;
       }
}

3.      方法重载

方法重载提供了创建同名的多个方法的能力,方法重载时,两个方法的方法名必须相同,但是参数类型或个数必须要有所不同。

    class People
    {
       private string name= ""; 
         
       public People(string 中文名)     // 定义一个构造方法        
       {
            this.name = 中文名;             
       }

       public People(string 英文名)     // 将构造方法重载    
       {
           this.name = 英文名;            
       }
 
       public string Introduce()
       {
             return "我的名字叫" + name;
       }
    }

4.      属性

属性是一个方法或一对方法。属性有两个get 和 set 两个方法。

get : 返回与声明的属性相同的数据类型,表示的意思是调用时可以得到内部字段的值或引用。即数据的功能。

set : 无显示设置参数,用关键字value来表示它的一个隐式参数,作用是调用属性时可以给内部的字段或引用赋值。即数据的功能。

    class People
    {
        private int playTime = 5;
        public int PlayTime
        {
            get                            // 读取时间数据
            {
                return playTime;
            }
            set                            //  写入时间数据
            {
                playTime = value;
            }
        }
    }

 

从以上代码可以看出,属性是一个字段,也就是说适合于以字段的方式使用方法调用的场合。

字段就是存储类要满足其设计所需要的数据,是与类相关的变量。相应的字段可以是public,private。

构造方法VS属性

有一段时间看设计模式,就混淆了构造方法和属性的概念。

构造方法是一个函数,有参数,无返回值。

属性是一个字段,没有参数,有返回值。

这里和VB中的过程 Sub 和函数 Function 的区别很相似。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/105775.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • windows server ftp服务器怎么搭建_serveru访问ftp

    windows server ftp服务器怎么搭建_serveru访问ftp首先说说什么是ftp?FTP协议是专门针对在两个系统之间传输大的文件这种应用开发出来的,它是TCP/IP协议的一部分。FTP的意思就是文件传输协议,用来管理TCP/IP网络上大型文件的快速传输。FTP最早也是在Unix上开发出来的,并且很长一段时间里只有Unix系统支持FTP功能,后来逐渐普及到其他系统,并成为Internet/Intranet网络中的标准组件。FTP服务器就是局域网信息资源的存储中心,主要是用来进行文件共享和传输。为了便于数据信息的共享和沟通,很多企业甚至个人都想搭建自己的ftp

  • 无证书签名简介[通俗易懂]

    无证书签名简介[通俗易懂]前言为什么要提出无证书签名防止公钥替换攻击防止密钥托管问题相关工作方案结构和安全模型方案结构参考:AnEfficientProvably-SecureCertificatelessSignatureSchemeforInternet-of-ThingsDeployment大致分为:Setup、Extract、KeyGen、Sign、Verify安全模型Al-Riyami2003Certificatelesspublickeycryptography提出的

  • 决策树原理及其应用[通俗易懂]

    决策树原理及其应用[通俗易懂]决策树原理及其应用决策树的原理我们先构造一颗简单的决策树来玩一玩。举一个不恰当的例子:小明过年回家,老妈催着他结婚,帮着张罗相亲对象。有三个女孩的资料(简称A、B、C)。关于A:小明问:”身材好吗?”,妈妈说:“好!”,小明说:“见一面”关于B:小明问:”身材好吗?”,妈妈说:“不好!”,小明又问:“漂亮吗?”,妈妈说:“漂亮!”,小明说:“见一面”关于C:

  • 【自动化测试工具】QTP/UFT入门

    【自动化测试工具】QTP/UFT入门准备工作:QTP11.5安装教程:http://www.iquicktest.com/qtp-uft-11-5-download.html注: QuickTestPro(QTP)11.5后更名为UnifiedFunctionalTesting(UFT)1、安装后打开QTP,勾选Webadd-in,进入QTP后File-New-Test。2、选择File菜单下New

  • mysql优化器不能使用hash索引_博优软件数据怎么恢复

    mysql优化器不能使用hash索引_博优软件数据怎么恢复1.hash表只能匹配是否相等,不能实现范围查找select * from xx where id > 23; 这时就没办法索引了2.当需要按照索引进行order by时,hash值没办法支持排序select * from xx order by score desc;如果score为建立索引的字段,hash值没办法辅助排序。3.组合索引可以支持部分索引查询,如(a,b,c)的组合索引,查询中只用到了阿和b也可以查询的,如果使用hash表,组合索引会将几个字段合并hash,没办法支持部分索引

  • 【CSS】CSS样式表+复合选择器

    【CSS】CSS样式表+复合选择器CSS样式表+复合选择器总结

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号