zoukankan      html  css  js  c++  java
  • 09、封装与类成员

    一、为什么要封装

      不必知道类中所有的细节,只需要把需要使用的开放出来。

    二、如何封装

      Public--允许任何人来访问

      Internal--只要在同一个项目中即可访问

      Protected--继承时子类可以对基类的完全访问

      Protected Internal--它只可以被本组合体内所有的类和这些类的继承子类所存取

      Private--只允许同一个类中的成员进行访问

    例子:

      

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace _11
    {
        public class Product
        {
            int money5;
            public int money;
            private int money1;
            internal int noney2;
            protected int money3;
            internal protected int money4;
            public int sold(int num)
            {
                money -= num;
                return money;
            }
            
        }
    }
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace _11
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                int number = int.Parse(tb_num.Text);
                Product p = new Product();
                p.money = 1000;
                int result = p.sold(number);
                label1.Text = result.ToString();
            }
        }
    }

    三、类成员

      1、 数据成员

         字段

          实例成员字段

          静态字段

          只读字段

          常量字段 

    项目 只读字段 常量字段
    申明关键字 readonly const
    初始化 可以在初始化,构造函数和程序运行时初始化。 只能在申明的时候初始化。
    实例或静态 可以是静态的,默认不是静态的。 只是隐式静态
    数据类型 可以是值类型,也可以是引用类型 只能是同建的值类型或枚举类型

         常量

         事件

      2、函数成员

        方法

        属性

        构造函数和析构函数

        运算符

        索引器

  • 相关阅读:
    遍历 HashMap 的 5 种最佳方式
    Spring注入方式
    搜索引擎
    MySQL 中常见的时间类型有三种 DATE, DATETIME 和 TIMESTAMP
    向Arcglobe中添加MouseWheel事件,使其具有鼠标放大缩小功能。
    js eval
    鼠标指针图标:C#设置鼠标指针图标(转)
    对象模型图【OMD】阅读指南(转)
    ArcGIS 9.3 VBA 环境不可用问题的解决
    用实例学ASP.net2.0的CallBack机制[一] 20080308 11:33
  • 原文地址:https://www.cnblogs.com/zytr/p/14730382.html
Copyright © 2011-2022 走看看