• 使用属性升级MyBank


    使用属性升级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} 税后工资{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)

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

                           

  • 相关阅读:
    OSPF
    【今日CS 视觉论文速览】 24 Jan 2019
    【今日CS 视觉论文速览】Wed, 23 Jan 2019
    【今日CS 视觉论文速览】 21 Jan 2019
    【Processing学习笔记】安装与入门
    【今日CS 视觉论文速览】Part2, 18 Jan 2019
    【今日CS 视觉论文速览】Fri, 18 Jan 2019
    【今日CS 视觉论文速览】Thu, 17 Jan 2019
    【今日CS 视觉论文速览】Part2, 16 Jan 2019
    【今日CS 视觉论文速览】Wed, 16 Jan 2019
  • 原文地址:https://www.cnblogs.com/QiliPING9/p/8259537.html
Copyright © 2020-2023  润新知