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

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

访问修饰符

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

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

字段和方法声明的语法:

字段

  访问修饰符  类型  标识符;

方法

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

  {

    ...

  }

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

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

1. 私有访问

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

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

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

2. 公有访问

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

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

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

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _2018_05_28_PM_1412_访问修饰符
  8. {
  9. public class Students
  10. {
  11. int SNo; //该成员在声明时没有带访问修饰符,默认为私有的成员,隐式声明
  12. public string SName; //该成员在声明时由 public 访问修饰符进行修饰,该成员为公有成员
  13. private string SPassword; //该成员由 private 访问修饰符修饰,为私有成员,显式声明
  14.  
  15. bool IsOdd() //返回值为 bool 类型,无参数,方法名为 IsOdd 的 私有方法
  16. {
  17. Random random = new Random(); //取随机数的种子
  18. int num = random.Next(, ); //在1到101之间随机取一个数字
  19. int remainder = num % ; //%为求余,得到随机数字除于2的余数
  20. if (remainder == )//如果余数的值等于0,则证明该数字被2整除,为偶数
  21. {
  22. return false; //返回值为 false
  23. }
  24. else { return true; }//如果余数的值不等于0,则证明该数字不能被2整除,为奇数 ,返回值为true
  25. }
  26. public void Demo()//返回值为空,无参数,方法名为 Demo 的公有方法,由Public访问修饰符进行指定
  27. {
  28. SNo = SNo + ; //在类的内部 可以 访问到私有成员
    }
  29. }
  30. }
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _2018_05_28_PM_1412_访问修饰符
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. Students stu = new Students();//创建 Students类型的对象
  14. stu.SName = "Test";//可以访问 公有成员
  15. stu.Demo();//可以访问 公有方法
  16. }
  17. }
  18. }

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

学习感受:

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

C#学习-图解教程(2):访问修饰符(其中两种)的更多相关文章

  1. C#学习笔记06--类/对象/访问修饰符/方法

    编程思想   1.面向过程   面向过程是要把问题解决的过程分成有一定顺序的不同步骤, 然后按照步骤一步步的将问题解决.   2.面向对象   面向对象解决问题的思路是先分析问题中所涉及的对象, 然后 ...

  2. Java中各种(类、方法、属性)访问修饰符与修饰符的说明

    类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被本项目的所 ...

  3. package,继承,访问修饰符

    1.package 包(package),用于管理程序中的类,可用于处理类的同名问题. 1.1定义package的方法 package 包名; package用于定义包,必须写在源文件有效代码的第一句 ...

  4. C# 中访问修饰符

    1.public 完全公开的,公共的 2. private 私有的,只能在当前类的内部访问, 不可修饰类 3.protected 受保护的,只能在当前类的内部以及其子类中访问,不能用来修饰类 4.in ...

  5. 20151024_004_C#基础知识(C#中的访问修饰符,继承,new关键字,里氏转换,is 和 as,多态,序列化与反序列化)

    1:C#中的访问修饰符 public: 公共成员,完全公开,没有访问限制. private: 私有的,只能在当前类的内部访问. protected: 受保护的,只能在当前类的内部以及该类的子类中访问. ...

  6. C#面向对象16 访问修饰符

    C# 访问修饰符 public:公开的公共的 private:私有的,只能在内部类中访问 protected:受保护的,子类可以访问和类的内部 internal:只能在当前项目/程序集中访问.在同一项 ...

  7. Scala学习文档-访问修饰符

    在scala里,对保护成员的访问比Java严格.Scala中,保护成员只在定义了成员的类的子类中可以访问,而Java中,还允许在同一个包的其他类中访问. package p1 { class FCla ...

  8. scala学习手记10 - 访问修饰符

    scala的访问修饰符有如下几个特性: 如果不指定访问修饰符,scala默认为public: 较之Java,scala对protected的定义更加严格: scala可以对可见性进行细粒度的控制. s ...

  9. Java学习笔记:04面向对象-内部类_访问修饰符_final

    04面向对象-内部类/访问修饰符/final 1.static的介绍 static:关键字,静态的 static的作用是用来修饰类中的成员 2.访问一个类中的某一个成员变量 方法一: _1.创建对象 ...

随机推荐

  1. 使用Python画一个带坐标轴的圆

    Download Microsoft Visual Studio Microsoft Visual Studio enables you develop your python Application ...

  2. 3.7 unittest之断言

    3.7 unittest之断言 前言在测试用例中,执行完测试用例后,最后一步是判断测试结果是pass还是fail,自动化测试脚本里面一般把这种生成测试结果的方法称为断言(assert).用unitte ...

  3. Android连接服务器端的Socket

    package com.example.esp8266; import java.io.IOException;import java.io.InputStream;import java.io.Ou ...

  4. 解决centos7上system tools - setting无法打开的问题

    今天在centos7上安装中文输入法时,遇到system tools - setting无法打开的问题. 最后定位时libwbclient这个包无法查找到的原因. 问题显示如下: 可以使用以下方式安装 ...

  5. vue—data中变量和字符串拼接

    #变量和字符串的拼接# 写项目中,遇到了这样的一个问题:怎样在一个div里面显示两个data中的数据?我的问题描述清楚了吗?... 看图吧:   这是用户最初的需求~  这是用户后来的需求,嗯……就是 ...

  6. Python:从入门到实践--第九章-类--练习

    #.餐馆:创建一个名为Restaurant的类,其方法_init_()设置两个属性:restaurant_name和cuisine_type. #创建一个名为describe_restaurant的方 ...

  7. sping配置头文件

    spring配置文件头部xmlns配置精髓   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <beans xmlns="http://www.s ...

  8. 常用socket选项

    1.socket选项通常:服务端应在listen 前设置,accpet返回的socket继承自监听套接字. 客户端应在connect之前设置 2.socket 如果有大量短连接应设置SO_LINGER ...

  9. Postman 使用方法详解

    转自:https://blog.csdn.net/fxbin123/article/details/80428216 一.Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的 ...

  10. SpeedReader for Mac(快速阅读器)v1.6免费版

    SpeedReader for Mac是一款运行在Mac平台上的阅读软件,通过这款软件就可以自行调整阅读速度.通过SpeedReader Mac版用户可以将想要阅读的内容拖入到软件中,调整速度和字体, ...