C#面向对象(一) 封装
一、什么叫做面向对象封装?
封装的概念:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。
二、面向对象封装有什么好处(为什么要封装)?
三、如何使用面向对象封装?
1、属性器 2、实例与静态方法 3、构造函数 4、重载 5、访问修饰符
1、常用访问修饰符的介绍
(1) public 该类的实例可以被任何其他类访问
(2) private 嵌套类,只能在定义它的类中使用
(3) protected 嵌套类,只能从定义它的类中和自此派生的类中使用
(4) internal 该类只能从同一个程序集的其他类中访问。这是嵌套类的默认访问方式。
2、属性器的定义和构造函数的定义
下面定义一个Person类!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace ConsoleApplication1
{
public class Person
{
private string _name;
private int _age;
private string _sex; public string Name
{
get { return _name; } //只读属性
} public int Age
{
get { return _age; }
set { _age = value; } //可读可写
} public string Sex
{
get { return _sex; }
set { _sex = value; } //可读可写
} //1、类的构造函数 public Person() //不带参数的构造函数
{ } public Person(int Age, string Sex) //带参数的构造函数
{
this._age = Age;
this._sex = Sex; //this就是该类的实例化
} public static string SayHi() //2、静态方法
{
return "大家好";
}
public static string SayHi(string Name) //3、重载
{
return Name + "大家好";
}
public string SayGoodBye() //实例方法
{
return "再见";
} }
}
类的属性器,方法,构造函数的使用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Person p = new Person(,"女"); //带参数的构造函数的使用 p.Sex="女"; // 属性器的使用 p.SayGoodBye();//实例方法的使用 Person.SayHi();//静态方法的使用 }
}
}
实例方法的使用需要实例化,静态方法的使用直接调用类的方法即可!
3、重载
概念:就是方法名称相同,参数不同的两个以上的方法叫做重载
优点:给类的使用者带来很大的方便!
C#面向对象(一) 封装的更多相关文章
- OracleHelper(对增删改查分页查询操作进行了面向对象的封装,对批量增删改操作的事务封装)
公司的一个新项目使用ASP.NET MVC开发,经理让我写个OracleHelper,我从网上找了一个比较全的OracleHelper类,缺点是查询的时候返回DataSet,数据增删改要写很多代码(当 ...
- 原生JS面向对象思想封装轮播图组件
原生JS面向对象思想封装轮播图组件 在前端页面开发过程中,页面中的轮播图特效很常见,因此我就想封装一个自己的原生JS的轮播图组件.有了这个需求就开始着手准备了,代码当然是以简洁为目标,轮播图的各个功能 ...
- 黑马程序员_Java面向对象1_封装
3.面向对象_封装 3.1面向对象概念 3.1.1理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程:强调的是功能行为(执行者) 面向对象:将功能封装进对象,强调具备了 ...
- Java面向对象(封装性概论)
Java面向对象(封装性概论) 知识概要: (1)面向对象概念 (2)类与对象的关系 (3)封装 (4)构造函数 (5)this关键字 (6)static关键 ...
- python 面向对象之封装与类与对象
封装 一,引子 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,小老虎一起装进麻袋,然后把麻袋封上口子.照这种逻辑看,封装='隐藏',这种理解是相当片面的 二,先看如何隐藏 在 ...
- python面向对象编程 -- 封装、继承
面向对象编程 -- 封装.继承 面向对象编程三要素:封装.继承和多态.本文主要看和封装.继承相关的概念:在python中多态的概念比较模糊,本文不做讨论. 1 封装 封装:将数据和操作组装到一起,对外 ...
- C#面向对象(封装)
以上就是面向对象的封装和初始化:
- python 全栈开发,Day116(可迭代对象,type创建动态类,偏函数,面向对象的封装,获取外键数据,组合搜索,领域驱动设计(DDD))
昨日内容回顾 1. 三个类 ChangeList,封装列表页面需要的所有数据. StarkConfig,生成URL和视图对应关系 + 默认配置 AdminSite,用于保存 数据库类 和 处理该类的对 ...
- python之路----面向对象的封装特性
封装 [封装] 隐藏对象的属性和实现细节,仅对外提供公共访问方式. 广义上面向对象的封装 :代码的保护,面向对象的思想本身就是一种只让自己的对象能调用自己类中的方法 狭义上的封装 —— 面向对象的三大 ...
- python之面向对象之封装
今天我们终于进入了面向对象,今天做一下面向的封装的总结 #面向对象的封装 #这里定义了一个类,名称为Role,object是所有类的父类 class Role(object): #这里是定义实例的属性 ...
随机推荐
- 高性能、高容错、基于内存的开源分布式存储系统Tachyon的简单介绍
Tachyon是什么? Tachyon是一个高性能.高容错.基于内存的开源分布式存储系统,并具有类Java的文件API.插件式的底层文件系统.兼容Hadoop MapReduce和Apache Spa ...
- Python 学习笔记(四)正则、闭合、生成器
(一)正则表达式 基本规则: ^ 匹配字符串开始位置. $ 匹配字符串结束位置. \b 匹配一个单词边界. \d 匹配一个数字. \D 匹配一个任意的非数字字符. x? 匹配可选的x字符.换句话说,就 ...
- 纯CSS3实现宽屏二级下拉菜单
今天我们要来分享一款基于纯CSS3的宽屏二级下拉菜单,这款菜单的子菜单在展开的时候是很宽敞的,菜单项中可以自定义格式的内容,非常实用,也很大气.由于是用纯CSS3实现,所以这款下拉菜单不用运行Java ...
- Node.js中的事件
var util = require("util"); //导入util模块 var events = require("events"); //导入event ...
- SRM DIV1 500pt DP
SRM 501 DIV1 500pt SRM 502 DIV1 500pt SRM 508 DIV1 500pt SRM 509 DIV1 500pt SRM 511 DIV1 500pt SRM 5 ...
- 怎么在 html 中 动态的加载一个 script
var script = document.createElement( 'script' );script.type = 'text/javascript';script.src = bodyStr ...
- Java设计模式系列之动态代理模式(转载)
代理设计模式 定义:为其他对象提供一种代理以控制对这个对象的访问. 动态代理使用 java动态代理机制以巧妙的方式实现了代理模式的设计理念. 代理模式示例代码 public interface Sub ...
- Oracle的回收站和闪回查询机制(二)
上一篇中讲诉了Oracle中一些闪回查询(Flashback Query),这是利用回滚段信息来恢复一个或一些表到以前的一个时间点(一个快照).要注意的是,Flashback Query仅仅是查询以前 ...
- HDU 2425 DNA repair (AC自动机+DP)
DNA repair Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- linux下面的查找命令
在linux下面经常用查找命令,我自己最常用的是find whereis locate 关于find 我常用find的基本功能,如 find / -name filename 在某个目录下寻找文件. ...