码迷,mamicode.com
首页 > Windows程序 > 详细

c#第三章

时间:2018-12-07 11:45:39      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:返回值   bank   vat   数据   show   setname   card   赋值   逗号   

使用属性升级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)

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

c#第三章

标签:返回值   bank   vat   数据   show   setname   card   赋值   逗号   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!