C#入门经典(第五版)笔记(四)第10章 定义类成员、实现接口

本文详细介绍了C#中定义类成员的关键字、字段、方法、属性,探讨了派生类如何隐藏、重写和调用基类方法,以及如何实现接口。还提到了`readonly`、`static`、`const`的差异,`override`关键字的作用,以及`base`和`this`关键字的使用场景。最后,提及了接口实现的初步概念,并预告了后续的示例应用程序开发。
摘要由CSDN通过智能技术生成

目录

十、定义类成员

关键字

字段Field

方法Method

属性Property

派生类隐藏、重写、调用基类的方法

实现接口

10.6 示例应用程序(随后续不断开发)


十、定义类成员

类名规则:Pascal;

关键字

public、private、internal、protected、protected internal

const和static的区别?

const的值在初始化时确定,无法改变。

static的值至少还能通过静态函数进行编译。

字段Field

初始化的那部分。

字段的关键字:readonly、static、const

命名规则:首小后大、const字段全大

readonly是什么?可以和private一起用吗?

 

方法Method

命名规则:Pascal;

关键字:virtual、abstract、override、extern

override是什么?

重写基类方法。

属性Property

关键字:virtual、override、abstract

访问器:get{}、set{}

private int myInt;
    //myInt属于parameter,Camel规则
pubic int MyIntProperty{
    get{
        return myInt;
        //get块必须有一个返回值属性
    }
    set{
        //用这里的函数来访问myInt,改变myInt的值
    }
}

属性是用来做什么的?

派生类隐藏、重写、调用基类的方法

隐藏基类和重写基类的区别?

如果是隐藏基类,方法前加new。在派生类重新赋给基类时,使用基类的代码。

如果是重写基类,关键字部分填override。在派生类重新赋给基类时,使用派生类的代码。

关键字:base、this

https://www.cnblogs.com/yellowcool/p/7908607.html

实现接口

没细看,深入学习,把那个检索的代码重构一下。

#region&#endregion给代码分组(真的可以折叠的那种)

 

10.6 示例应用程序(随后续不断开发)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace example
{
    //为字段提供范围
    #region 枚举
    public enum CardColor
    {
        meihua,
        fangkuai,
        hongxin,
        heitao,
    }
    public enum CardNumber
    {
        One = 1,
        Two,
        Three,
        Four,
        Five,
        Six,
        Seven,
        Eight,
        Nine,
        Ten,
        Jack,
        Queen,
        King,
    }
    #endregion
    class Example1006 {
        public class Card {
            //初始化的设置
            #region 字段
            private CardColor m_CardColor;
            private CardNumber m_CardNumber;
            #endregion

            //利用属性访问私有字段
            #region 属性
            public CardColor CardColor {
                get {
                    return m_CardColor;
                }
            }//名字和类型一样就行
            public CardNumber CardNumber{
                get {
                    return m_CardNumber;
                }
            }
            #endregion
            //  利用方法输出牌面
            #region 方法
            private Card(CardColor cardColor,CardNumber cardNumber)//显式的创建构造函数
            {
                m_CardColor = cardColor;
                m_CardNumber = cardNumber;
            }
            public string OutputCard() {//改成接口该怎么改?
                return "Card: " + m_CardColor + " with " + m_CardNumber + " .";
            }
            public override string ToString()//override重写ToString()
            {
                return "Card: " + m_CardColor + " with " + m_CardNumber + " .";
            }
            #endregion
        }
        public class Deck {
            #region 字段
            private Card[] m_Deck;
            #endregion
            public Deck() {
                //
            }
            public Card VisitCard(int cardNumber)
            {
                //
                return DirectCard;
            }
            public void Shuffle()
            {
                //
            }
        }
    }
}

10.9 练习答案

3.确保忽略所有结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值