c#第三章

使用属性升级MyBank

访问修饰符

Java中的访问修饰符

Public 、protected、private

C#

Public公共的                     访问级别最高

Private私有的                  访问级别最低

访问修饰可以用来修饰字段(属性)和方法,用来限定类成员的访问级别

Student stu = new Student();

stu.userName = "";

stu.age = 0;

stu.show1();

stu.show2();

private string userName = "Tom";

public int age = 18;

public void show1()

{

Console.WriteLine("AAAAA");

}

private void show2()

{

Console.WriteLine("AAAAA");

}

This关键字(指定当前对象)

C#所有的对象都将创建在并脱管堆上

/// <summary>

/// 初始化学员

/// </summary>

/// <param name="name"></param>

public void SetName(string name)

{

this.userName = name;

}

public void Show()

{

Console.WriteLine("大家好:{0},今年:{1}",this.userName,this.age);

}

C#属性

1)  一个物体抽象出来,形成公共的类,减少代码量

2)  用方法保证数据的安全

做一个年龄的限制

private int age;

public string idCard;

/// <summary>

/// 得到年龄

/// </summary>

/// <returns></returns>

public int GetAge()

{

// 返回值

return this.age;

}

public void SetAge(int age)

{

if (age < 0 || age > 100)

{

this.age = 19;

}

else

{

this.age = age;

}

}

测试类

Student stu = new Student();

stu.SetAge(-10);

Console.WriteLine("年龄是:{0}",stu.GetAge());

stu.SetAge(35);

Console.WriteLine("年龄是:{0}", stu.GetAge());

Console.ReadKey();

用属性实现字段的封装

private string UserName;

快捷键(Ctrl + r + e)

Get访问器用来返回相应私有的字段属性,get访问器与方法相似,必须使用return返回字段值

Set访问器用来设置相应私有字段的值,set访问器类似于返回类型为void的方法

public int Age

{

get

{

return age;

}

set

{

if (value < 0 || value > 100)

{

this.age = 19;

}

else

{

this.age = value;

}

}

}

属性的数据类型

定义一个类中的属性,属性的数据类型必须与他所范文的字段类型一致(必须是整形)

属性的类型可以是一个类或者一个数组

属性的访问类型

属性访问类型分为三种:

1)  只读属性:只有Get

2)  只写属性:只有Set

3)  只读只写:Get+Set

字段和属性的区别?

通常字段是指private,在类的内部使用。讲指定属性为public,对外开发个,同常get或set提供访问安全,有效的范围保护

C#中的属性和方法?

C#中的属性set访问器和get访问器后面不能加“()”,因为访问器没有返回值

对象初始化

先创建一个Student对象在初始化

Stu.userName = “某某”;

对象初始化

Student stu = new Student(){username = “某某”};// 多个属性之间使用“逗号”隔开

面向对象(封装、继承、多态)

C#中-----封装

什么是封装:就是将东西打包

作用:隐藏类的内部细节,只对外暴露类的基本操作

好处:

1)  避免非法数据的赋值

2)  保证数据的完整性

3)  避免类内部发生修改时,导致整个程序发生变化

通过访问修饰符来实现

Public:公共的

Private:私有的

Protected:只有该类对象(自己)及子类对象可以访问(继承关系)

Internal:同一个程序集的对象可以访问

Protected Internal:访问限于当前程序集或派生自包含类的类型

比如说:一个人A为父亲,他的儿子B,妻子C,私生子D(注:D不在他家)

Public:地球人都知道,公开的

Private:只有A知道(隐私、私事,心事)

Protected:A,B,D(A和他所有儿子都知道,C他妻子不知道)

Internal:A,B,C知道(私生子D不知道)

Protected Internal:A,B,C,D都知道,其他人不知道

值传递和引用传递

Java中是如何数据传给方法的,通过参数的形式

int pay;// 税前工资

float taxRate = 0.1f;// 税率

float afterTax;//税后工资

Console.WriteLine("请输入税前工资:");

pay = int.Parse(Console.ReadLine());

if (pay <= 3500)

{

afterTax = pay;

}

else

{

afterTax = pay - (pay - 3500) * taxRate;

}

Console.WriteLine("税前工资{0}\n税后工资{1}",pay,afterTax);

Console.ReadKey();

修改后的

private static float GetPay(int pay, float taxRate)

{

float after;// 税后的工资

if (pay <= 3500)

{

after = pay;

}

else

{

after = pay - (pay - 3500) * taxRate;

}

return after;

以上是值传递

java中左右手换纸牌

三个abc

实现左右手换纸牌

引用传递

要想实现左右手换纸牌需要按引用传递的方式进行(需要使用ref关键字)

值传递(拿的是复制品)

值传递是将变量的值复制了一份,是方法的形参和实参的值相同,在调用方法中修改形参也只是对复制品做修改,并没有真正的改变实际参数的值

引用传递(拿的是原来参数的地址    关键字ref)

引用传递是将传递的对象引用复制给方法的形参,使被调用的方法直接对引用对象进行更改,会影响到原来的值

原文地址:https://www.cnblogs.com/loose/p/10080983.html

时间: 12-07

c#第三章的相关文章

构建之法前三章读后感

一. 软件作为一个产品,在提供用户使用前经历了许多工序,我们用工程的方式将开发软件的工序,过程加以工程化,系统化.成立了一套完整的体系后,有利于帮助我们开发软件,乃至于大型的系统. 软件具有一定的特殊性,使得软件工程师们做开发提升了一定的难度,但软件工程有助于软件系统的开发,帮助工程师们设计,构建,测试和维护软件.所以,软件工程的最终目的是帮助工程师们创造“足够好”的软件,提高软件的质量,用户满意度,可靠性,可维护性等. 第一章问题:怎么才算是一个真正的软件工程师? 二.   一个优秀的软件,通

0320 《构建之法》前三章观后感

第一章.为我们解释什么是软件,什么是软件工程,读完这章对这些概念有一定的认识这章让我明白,代码不能盲目的敲,好的软件并非两三天,并非一两个人就能赶出来的,需要大家的精诚合作.同时,在编写程序之前,还需要做一系列的分析.设计,要满足客户的需求,后续还要对软件进行测试.维护等.在这之前,我一直觉得能把程序运行,能有正确的结果,那就完成任务了,可这只是整个软件流程的一部分而已.看了邹老师的书,才知道其实创新有很多的方面,除了技术,还有商业思路,差异化等等,这些都给了我很大的感触,作为一名程序员,我们不

家庭作业——第三章

第三章家庭作业    3.69和3.70 3.69 A:long trace(tree_ptr tp)    {        long ret = 0;        while(tp != NULL)        {           ret = tp->val;           tp = tp->left;        }        return ret;    } B:作用是从根一直遍历左子树,找到第一个没有左子树的节点的值. 3.70 A:long traverse(t

第三章 Linux操作系统的安装

第三章 Linux操作系统的安装 因为笔者一直都是使用CentOS,所以这次安装系统也是基于CentOS的安装.把光盘插入光驱,设置bios光驱启动.进入光盘的欢迎界面. 其中有两个选项,可以直接按回车,也可以在当前界面下输入 linux text 按回车.前者是图形下安装,可以动鼠标的,后者是纯文字形式的.建议初学者用前者安装.直接回车后,出现一下界面: 这一步是要提示你是否要校验光盘,目的是看看光盘中的安装包是否完整或者是否被人改动过,一般情况下,如果是正规的光盘不需要做这一步操作,因为太费

《C#高级编程》【第三章】对象和类型 -- 学习笔记

在看过C++之后,再看C#的面向对象感觉就不难了,只是有一些区别而已. 1.类定义 使用class关键字来声明类,其和C++不同的地方是在大括号之后不需要冒号 class 类名 { //类的内部 } //C++这里有一个冒号,而C#没有 2.类成员 3.字段与属性 首先我们先区分一下C#数据成员中的字段.常量与事件成员.字段.常量是与类的相关变量.事件是类的成员,在发生某些行为时(如:改变类的字段或属性,或进行某种形式的用户交互操作),它可以让对象通知调用方. 那么现在我们在来看看字段与属性,属

标准库》第三章 包装对象和Boolean对象

第三部分  标准库 ***************第三章   包装对象和Boolean对象******************* 一.包装对象的定义[1]有人说,JavaScript语言"一切皆对象",数组和函数本质上都是对象,就连三种原始类型的值--数值.字符串.布尔值--在一定条件下,也会自动转为对象,也就是原始类型的"包装对象". 所谓"包装对象",就是分别与数值.字符串.布尔值相对应的Number.String.Boolean三个原生对象

2017.06.29数据挖掘基础概念第二.三章

第二章21.研究的属性类型标称属性:值是一些符号或事物的名称,代表某种类型.编码或状态二元属性:是一种标称属性,只有两个类别或状态,又称布尔属性序数属性:是一种属性,其可能的值之间具有有意义的序或秩评定,但是相续值之间的差是未知的数值属性:是定量的,即他是可度量的量,可用整数或实数值表示(区间和比率标度)22.数据散布常见的度量量(数据如何分散的方法/识别离群点)极差 四分位数.四分位数极差.五数概括图.方差和标准差23.审视数据的图形条形.饼图.线图.分位数图.分位数-分位数图.直方图和散点图

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一、 除夕诗词概述 二、元日诗词概述 三、 元宵诗词概述 第二节:春节古诗词拾萃

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一. 除夕诗词概述 二.元日诗词概述 三. 元宵诗词概述 第二节:春节古诗词拾萃 一.腊祭诗词 二.祭灶诗词 三.除夕诗词 四.元旦诗词 五.人日诗词 六.元宵诗词 第一节:春节古诗词概述 中国的春节,作为除旧迎新的节日,时间相当长,从年前的腊月二十三,天空中就似乎弥漫了节日的气息.这种节日的气氛,在保持传统风俗较好的地方,甚至会持续到二月二龙抬头的时候,但欢度春节的高潮,应该说是自除夕始一直到上元之夜.因此,历代歌咏和反

Android艺术开发探索第三章————View的事件体系(下)

Android艺术开发探索第三章----View的事件体系(下) 在这里就能学习到很多,主要还是对View的事件分发做一个体系的了解 一.View的事件分发 上篇大致的说了一下View的基础知识和滑动,现在我们再来聊聊一个比较核心的知识点,那就是事件分发了,而且他还是一个难点,我们更加应该掌握,View的滑动冲突一直都是很苦恼的,这里,我们就来一起探索一下 1.点击事件的传递规则 我们分析的点击事件可不是View.OnClickListener,而是我们MotionEvent,即点击事件,关于M

web—第三章XHTML

web—第三章XHTML 又是一周 我们学的了做表单:一开始我以为表单是表格.但结果:表单是以采集和提交用户输入数据的,这样讲很迷,说简单点就是登陆端.比如:Facebook.twitter.Instagram .非常强大的是表单不仅仅可以做登录端,注册.做一些像我们在网上购买东西选择数量或者是点菜的时候选票等等都可以. 首先最开始,就是理解表单是什么东西:表单的作用是什么? 其实很简单:先从表单的作用说起,表单的主要作用在于网页上提供一个图形用户界面,当用户输入正确的用户名和密码后,输入的数据