• 使用属性升级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#所有的对象都将创建在并脱管堆上

    /// 初始化学员

    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;

     /// 得到年龄

    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)

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

  • 相关阅读:
    VMware安装Centos7超详细过程(图文)
    linux中yum与rpm区别
    xshell连接本地虚拟机中的centos
    虚拟主机安装 CentOS 8 出现 “ pane is dead ” 故障解决方案
    python字符串前面添加(u,r,b)的功能
    from . import XXX
    我关注的博客
    并发与并行的区别
    GSAP学习(二)——载入
    GSAP学习(一)——什么是GSAP
  • 原文地址:https://www.cnblogs.com/F017/p/10081011.html
Copyright © 2020-2023  润新知