C#学习-图解教程(2):访问修饰符(其中两种)

学习内容:C#;学习书籍:图解教程(中文第四版)。

目录:第四章 类的基本概念 -----> 4.8 访问修饰符

访问修饰符

类的内部,任何函数成员都可以使用成员的名称访问类中任意的其他成员。

访问修饰符是成员声明的可以选部分,指明程序的其他部分如何访问成员

字段和方法声明的语法:

字段

  访问修饰符  类型  标识符;

方法

  访问修饰符  返回类型  方法名()

  {

    ...

  }

有5种成员访问控制:private 私有的;public 公有的;protected 受保护的;internal 内部的;protected internal  受保护内部的。

(这里介绍了前两种,剩下的在第7章)

1. 私有访问

私有成员只能从声明它的类的内部访问,其他的类不能看见或访问它们。

* 私有访问是默认的级别访问。也就是说,如果一个成员在声明时不带访问修饰符,则该成员就是私有成员。

使用 private访问修饰符对一个成员进行修饰,则将该成员声明为私有的。

2. 公有访问

实例的公有成员可以被程序的其他对象访问。

必须使用 public 访问修饰符指定公有访问。

声明一个Students类,包含两个私有成员(一个隐式声明、一个显示声明),一个公有成员;一个私有方法,一个公有方法。

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

namespace _2018_05_28_PM_1412_访问修饰符
{
    public class Students
    {
        int SNo; //该成员在声明时没有带访问修饰符,默认为私有的成员,隐式声明
        public string SName; //该成员在声明时由 public 访问修饰符进行修饰,该成员为公有成员
        private string SPassword; //该成员由 private 访问修饰符修饰,为私有成员,显式声明

        bool IsOdd() //返回值为 bool 类型,无参数,方法名为 IsOdd 的 私有方法
        {
            Random random = new Random(); //取随机数的种子
            int num = random.Next(1, 101); //在1到101之间随机取一个数字
            int remainder = num % 2; //%为求余,得到随机数字除于2的余数
            if (remainder == 0)//如果余数的值等于0,则证明该数字被2整除,为偶数
            {
                return false; //返回值为 false
            }
            else { return true; }//如果余数的值不等于0,则证明该数字不能被2整除,为奇数  ,返回值为true
        }
        public void Demo()//返回值为空,无参数,方法名为 Demo  的公有方法,由Public访问修饰符进行指定
        {
            SNo = SNo + 1; //类的内部 可以 访问到私有成员
} } }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _2018_05_28_PM_1412_访问修饰符
{
    class Program
    {
        static void Main(string[] args)
        {
            Students stu = new Students();//创建 Students类型的对象
            stu.SName = "Test";//可以访问 公有成员
            stu.Demo();//可以访问 公有方法
        }
    }
}

见下图,可以看到:创建的Students类型的对象 stu从外部访问Students类时,只有公共的成员和方法能访问到,而私有的成员和方法是无法访问的。

学习感受:

  记录这个的主要原因是看到:私有访问是默认的级别访问。也就是说,如果一个成员在声明时不带访问修饰符,则该成员就是私有成员。 这句话,因为之前有学过Java,在Java中没有访问修饰符的成员,并不是默认为私有的,而也是一种访问修饰符,其范围是:包访问权限,即在整个包内均可被访问。

猜你喜欢

转载自www.cnblogs.com/Leo-Olivine/p/9101687.html