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之间随机取一个数字
int remainder = num % ; //%为求余,得到随机数字除于2的余数
if (remainder == )//如果余数的值等于0,则证明该数字被2整除,为偶数
{
return false; //返回值为 false
}
else { return true; }//如果余数的值不等于0,则证明该数字不能被2整除,为奇数 ,返回值为true
}
public void Demo()//返回值为空,无参数,方法名为 Demo 的公有方法,由Public访问修饰符进行指定
{
SNo = SNo + ; //在类的内部 可以 访问到私有成员
}
}
}
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中没有访问修饰符的成员,并不是默认为私有的,而也是一种访问修饰符,其范围是:包访问权限,即在整个包内均可被访问。
C#学习-图解教程(2):访问修饰符(其中两种)的更多相关文章
- C#学习笔记06--类/对象/访问修饰符/方法
编程思想 1.面向过程 面向过程是要把问题解决的过程分成有一定顺序的不同步骤, 然后按照步骤一步步的将问题解决. 2.面向对象 面向对象解决问题的思路是先分析问题中所涉及的对象, 然后 ...
- Java中各种(类、方法、属性)访问修饰符与修饰符的说明
类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被本项目的所 ...
- package,继承,访问修饰符
1.package 包(package),用于管理程序中的类,可用于处理类的同名问题. 1.1定义package的方法 package 包名; package用于定义包,必须写在源文件有效代码的第一句 ...
- C# 中访问修饰符
1.public 完全公开的,公共的 2. private 私有的,只能在当前类的内部访问, 不可修饰类 3.protected 受保护的,只能在当前类的内部以及其子类中访问,不能用来修饰类 4.in ...
- 20151024_004_C#基础知识(C#中的访问修饰符,继承,new关键字,里氏转换,is 和 as,多态,序列化与反序列化)
1:C#中的访问修饰符 public: 公共成员,完全公开,没有访问限制. private: 私有的,只能在当前类的内部访问. protected: 受保护的,只能在当前类的内部以及该类的子类中访问. ...
- C#面向对象16 访问修饰符
C# 访问修饰符 public:公开的公共的 private:私有的,只能在内部类中访问 protected:受保护的,子类可以访问和类的内部 internal:只能在当前项目/程序集中访问.在同一项 ...
- Scala学习文档-访问修饰符
在scala里,对保护成员的访问比Java严格.Scala中,保护成员只在定义了成员的类的子类中可以访问,而Java中,还允许在同一个包的其他类中访问. package p1 { class FCla ...
- scala学习手记10 - 访问修饰符
scala的访问修饰符有如下几个特性: 如果不指定访问修饰符,scala默认为public: 较之Java,scala对protected的定义更加严格: scala可以对可见性进行细粒度的控制. s ...
- Java学习笔记:04面向对象-内部类_访问修饰符_final
04面向对象-内部类/访问修饰符/final 1.static的介绍 static:关键字,静态的 static的作用是用来修饰类中的成员 2.访问一个类中的某一个成员变量 方法一: _1.创建对象 ...
随机推荐
- 通过JQuery的$.ajax()把 json 数据 post 给 PHP
通过JQuery的$.ajax()把 json 数据 post 给 PHP时的几种情况: 无法在PHP中通过$_POST 以及 $_REQUEST 获取json数据,即 $json = $_POST[ ...
- 机器视觉:MobileNet 和 ShuffleNet
虽然很多CNN模型在图像识别领域取得了巨大的成功,但是一个越来越突出的问题就是模型的复杂度太高,无法在手机端使用,为了能在手机端将CNN模型跑起来,并且能取得不错的效果,有很多研究人员做了很多有意义的 ...
- bean 属性排列顺序
丑是丑了点,但是有效啊.@JsonPropertyOrder({ "IP", "accuracy", "continent", " ...
- java求最大值以及定义方法调用
class ArrayDome { public static void main(String[] args) { int[] arr = {-12,-51,-12,-11}; int max = ...
- padding填充属性
内边距属性: 设置元素的内容与边框之间的距离. 分4个方向(上右下左): padding-top padding-right padding-bottom padding-left 说明:值不能为负值 ...
- pdf.js 使用实例(app直接预览pdf格式的文档)
pdf.js可以实现在html下直接浏览pdf文档,是一款开源的pdf文档读取解析插件 pdf.js主要包含两个库文件,一个pdf.js和一个pdf.worker.js,,一个负责API解析,一个负责 ...
- angular6 开发实践基础知识汇总
1 事件处理 1.1 鼠标移入事件触发 (mouseenter)=" " eg: (mouseenter)="isCollapsed= ...
- ZJOI2018 D1T2 历史(毕竟我菜,所以题解十分易懂。。)
我定睛一看,上一篇博客居然是去年省选写的...emmm我果然很懒.. 又是一年省选季,临死前订正一下去年的题吧.. 作为第一天30pts的滚粗选手,我去年并没有怎么思考这题.. 题意概括好麻烦,来来来 ...
- Space Invaders 太空侵略者
发售年份 1978 平台 街机 开发商 Taito 类型 射击 https://www.youtube.com/watch?v=MU4psw3ccUI
- Django学习笔记之数据库-模型的操作
模型的操作 在ORM框架中,所有模型相关的操作,比如添加/删除等.其实都是映射到数据库中一条数据的操作.因此模型操作也就是数据库表中数据的操作. 添加模型 添加模型到数据库中.首先需要创建一个模型.创 ...