20141011C#面向对象基础
什么是对象?—— 一切皆为对象。Object
生活中常说的“东西”,就是我们程序里所指的对象。
归类——找模型——抽象
类:class,对某类众多对象共同的特点进行抽象出来的模型
对象——(抽象的过程)——类
类——(实例化)——对象
类一般包括两类东西:变量(名词,成员变量) 函数(动词,成员方法)
面向对象三大特性:封装,继承,多态。
封装:1.不同类的变量只属于各自的类;2.不同对象的成员变量只属于各自的对象,彼此不影响;3,对象中的变量需要通过方法(函数)实现操作,比较安全。
继承:父类,子类。子类可以从父类继承下父类的成员和方法。
多态:某类众多不同对象在执行的时候,表现出来的形态各异,这种现象成为多态。
构造函数:特殊的成员函数。如果不写构造函数,系统会自动生成一个默认的构造函数。
- 写法特殊:没有返回值,函数名只能与类名一样
- 执行特殊:类在实例化(new出来的)的时候自动执行。构造函数是最早执行的成员函数。构造函数是用来生成对象的函数。
public MyDate()
{
_Year = 2014;
_Month = 10;
_Day = 1;
}
主要作用:对象实例化生成的时间,做一些初始化的操作。
重载:多个函数的函数名相同,参数不同(个数,类型)的函数就形成了重载。
重载只与函数名和参数有关,与返回值无关。
This:当前对象,不是当前类。
- this.成员变量(成员方法)
- this调用当前对象的其他构造函数。Public Bird(string name,string ):this(name)
is:对象 is 类名
对象属于后面的类,则返回true,否则返回false
可以把类分成几部分,放在不同的文件中(两个类),partial写在类的class前面,它代表,此处写的类是类的一部分,还可以继续用partial class来补充类的扩展。
partial class circle
{
}
一、属性
类中的方法(函数)一般有三类:构造方法,属性方法,行为方法。
在变量名上右键——重构——封装字段
get{ } set{ }
public int r
{
get { return r; }
set { r=value;}
}
注意:1.属性是用来为成员变量赋值和取值的,它有替代属性方法的作用
2.属性定义的时候,属性名后没有小括号
3.属性都是public
4.属性中只能包括两部分,即get部分和set部分。代码也只能写在get,set的花括号中
5.如果属性中只有set,没有get,则成为只读属性,反之,成为只写属性,二者都有成为可读写属性。
静态:
Static 静态成员变量 在内存中占用小,都可以访问
静态成员,静态变量,静态方法,静态属性
静态成员属于类的,不属于实例。例如:抽纸的标准抽数。
静态变量在内存中只保存一份,不像实例那样,每个对象都保存一份。
在C#中,在当前类的花括号之外,静态成员,只能用类名来调用,不能用实例名来调用。而实例成员只能用对象来调用,不能用类名来调用。
例如:抽纸的标准抽数是静态成员,200张;抽纸中可用的实际张数应当是实例成员。
继承:父类与子类
- public,protected修改的成员可以被继承到子类去。Private修饰的成员,无法被子类继承。
- 单继承:一个父类可以派生多个子类,但每个子类只能有一个父类。
- 实例化子类的时候,会先执行父类的构造函数,再执行子类的构造函数。
- Base关键字,用来调用父类的相关成员,base.xxxx()调用父类的成员方法。Base(…)调用父类构造函数
- 如果父类中有且只有一个带参的构造函数,则其子类必须要有带相应参数的函数,并且通过base()把参数
20141011C#面向对象基础的更多相关文章
- 了解JavaScript 面向对象基础 & 原型与对象
面向对象语言中的对象 老是能听到什么基于对象, 面向对象. 什么是对象, 如果有面向对象基础的人可以无视了, 下面举个简单的例子给大家讲讲面向对象中, 对象的定义, 这个是比较通用的, 不过对于JS来 ...
- MYSQL、PHP基础、面向对象基础简单复习总结
一.MYSQL 1.配置MySql 第一步安装服务器(apache). 第二部安装MySql界面程序 2 ...
- 从零开始学Python第六周:面向对象基础(需修改)
标签(空格分隔): 面向对象 一,面向对象基础 (1)面向对象概述 面向过程:根据业务逻辑从上到下写代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类 ...
- python面向对象基础
面向对象基础 1. 简述 编程方式: 面向过程: 根据代码在脚本的堆叠顺序,从上到下依次执行 函数式编程:将相同功能的代码封装到函数中,直接调用即可,减少代码重复性 面向对象:对函数进行分类和封装,将 ...
- java基础学习05(面向对象基础02)
面向对象基础02 实现的目标 1.String类的使用2.掌握this关键字的使用3.掌握static关键字的使用4.了解内部类 String类 实例化String对象一个字符串就是一个String类 ...
- java基础学习05(面向对象基础01--类实例分析)
面向对象基础01(类实例分析) 实现的目标 1.如何分析一个类(类的基本分析思路) 分析的思路 1.根据要求写出类所包含的属性2.所有的属性都必须进行封装(private)3.封装之后的属性通过set ...
- java基础学习05(面向对象基础01)
面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...
- 8.python笔记之面向对象基础
title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
随机推荐
- HTML5 javascript实现音乐播放器
准备毕业了,感觉好多东西都没学会,太多太多想学的知识,有种求知若渴的状态. 四年的大学就剩下一个多月了,无论将来多么困难,这条路是自己选的,走就要走的精彩! 自学了一点javascript.php,做 ...
- Python学习笔记7-把函数当参数传递、指定可变参数
把函数当参数传递 # 函数参数传递 # 面向对象编程就是把对象传来传去 # 面向函数编程就是把函数传来传去 def mytest(num): return num * 2 # # 不光可以传递变量,还 ...
- jquery实现隐藏显示层动画效果、仿新浪字符动态输入、tab效果
已经有两年多没登陆csdn账号了,中间做了些旁的事,可是现在却还是回归程序,但改做前端了,虽然很多东西都已忘得差不多了,但还是应该摆正心态,慢慢来,在前端漫游,做一只快乐双鱼. 路是一步一步走出来的, ...
- java 获取两个日期相差的毫秒数
方法一可以使用date的getTime()方法来将当前日期格式的时间转换为毫秒数,进而相减. long systime = new Date().getTime();//当前系统时间 l ...
- iOS开发那些事儿(二)热补丁
一.热补丁作用:修复导致崩溃的错误.替换/增加方法.替换原来的界面等等 二.实现手段:JSPatch (使用Objective-C Objective-C和JavaScript jspatch桥.你可 ...
- malloc和free的区别
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符.它们都可用于申请动态内存和释放内存. 2,对于非内部数据类型的对象而言,光用maloc/free无法满足动 ...
- C++学习笔录3
1.隐藏:存在于派生类和基类中.只要成员名字相同就叫做隐藏.参数和函数名都相同时,是一种特殊的隐藏,叫做重写,重写只出现在函数中.若需要访问基类中被隐藏的成员,必须访问这种方法:“对象名:类名::隐藏 ...
- Linux学习之进程管理
|-进程管理 进程常用命令 |- w查看当前系统信息 |- ps进程查看命令 |- kill终止进程 |- 一个存放内存中的特殊目录/p ...
- Android GridView(九宫图)
GridView跟ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选! <?xml version="1.0" encoding="u ...
- hadoop笔记之hdfs shell操作
HDFS命令行操作 HDFS命令行操作 (以下是hadoop 1.x 版本的命令使用) 装好hadoop之前首先要进行一个格式化 hadoop namenode -format 运行之后,可以将文件夹 ...