.Net学习 第3季 C#面向对象 访问修饰符

.Net 视频学习第3季 C#面向对象

面向对象 访问修饰符

C#五种访问修饰符

1)可以修饰类的访问修饰符只有两个:public,internal(默认)

internal:只可以在当前程序集(先理解为项目)中访问

public:公共的

项目A访问项目B中的public类,首先要在项目A的引用中添加项目B,然后再项目A的文件中添加using 项目B该类的命名空间。

在同一个程序集当中,public和internal的访问权限一样。

2)修饰类的成员的访问修饰符:public,private,protected,internal,internal protected

同一个项目中,internal的访问权限比protected高,不同项目中,protected比internal高。

例如项目A中有internal类a,里边有protected成员data_a,有public类aa继承于a。在项目A中,可以通过aa的对象访问到成员data_a,因为aa继承于a并且data_a为protected;在项目B中可以访问到aa,因为aa是public类,但不能访问到a,因为a是internal类——但在项目B中却可以通过aa访问到data_a。实际上这是不允许的,因为这样的话子类暴露了父类的成员,因此子类的访问权限不可以高于父类的访问权限

internal protected即是只能在当前程序集中该类内部和该类子类内部访问。

时间: 2025-01-12 23:48:05

.Net学习 第3季 C#面向对象 访问修饰符的相关文章

面向对象访问修饰符

1.访问修饰符(写在命名任何东西的最前面)public 公共的 - 访问权限是最高的private 私有的 - 只能在类的内部进行访问 internal 默认的 - 当前命名空间(程序集)下可以访问protected 被保护的 - 当前类及它的派生类中可以访问 2.在项目开发过程中,可能因为项目代码量大,导致有可能有一些类会重名,这样会编译失败,因此,引进部分类,我们可以抽象为将类拆成部分,他们所对外的就是一个类,而部分类是类中的集合. 关键字为:sealed: public partial c

.Net学习 第3季 C#面向对象 接口

.Net 视频学习第3季 C#面向对象 面向对象 接口 C++中一个类可以继承于多个类,但C#中不允许.因此如果想实现类似操作,需要接口,关键字interface public class Person { } public interface Iable { void test(); } public class Student:Person,Iable { void test() { Console.WriteLine("test"); } } 接口名通常以I开头able结尾. 接

.Net学习 第3季 C#面向对象 多态

.Net 视频学习第2季 C#面向对象 面向对象 多态 概念:让一个(父类)对象表现出多种(子类)类型的特性:三种方法:虚方法/抽象类/接口 方法一:虚方法 将父类方法标记为虚方法,使用关键字virtual在返回值类型前,这个方法可以被子类重写一遍(在子类方法返回值类型前使用关键字override) 没有使用虚方法下: public class Person { private string _name; public string Name { get{return _name;} set{_

.Net学习 第2季 C#面向对象

.Net 视频学习第2季 C#面向对象 面向对象初级 类是一个模板,不占内存,对象是根据模板生成的具象,占内存. 字段field:数据 方法method:函数 属性property:保护字段,对字段的赋值进行限定(将这部分封装在类中,外界不用理会如何实现)属性的本质就是两个方法 get() / set() 外部(甚至类内部的方法)通过属性对字段进行赋值/读取,get()/set()内部会进行限定,字段永远用private,属性才是public的. namespace Proj { class P

C#关键字、面向对象特点、访问修饰符、数据类型等

new关键字 一.创建对象 (一)在堆中开辟控件,引用类型在堆中 (二)在开辟的堆控件中,创建对象 (三)调用对象的构造函数 二.隐藏父类的成员 this (一)代表当前类的对象 (二)显示调用自己的构造函数 base (一)显示调用父类的构造函数 (二)调用父类的成员 三.面向对象 (一)封装: 1.减少大量的冗余代码 2.封装将一坨很难理解的功能封装起来,但是对外提供一个访问的使用接口 (二)继承: 特性: 1.单根性:一个子类只能有一个父类 2.传递性:爷爷类,爹类,儿子类 作用: 1.我

.Net学习笔记----2015-07-21(C#基础复习07,关键字、访问修饰符)

1.new关键字: 1).创建对象 2).隐藏从父类继承过来的成员 什么是面向对象? 一种分析问题的方式(增强了程序的可扩展性) 面向对象的三大特性:封装.继承.多态 类?对象?类和对象的区别? *类是模子,确定对象将会拥有的特征(属性)和行为(方法) *对象是一个你能够看的到.摸得着的具体实体---万物皆对象 ***类是模具,创建对象的模具,抽象的. 1).类是一种数据类型,用户自定义的数据类型 2).类的组成:字段.属性.方法.构造函数等 ***对象是具体的,是类的具体实例.对象具有属性(特

.Net学习笔记----2015-06-27(访问修饰符)

周末要陪老婆孩子,还要多多做些家务事,所以只能晚上学习喽 C#中的访问修饰符: public:公开的公共的. private:私有的,只能在当前类的内部使用. protected:受保护的,只能在当前类的内部以及该类的子类中访问. internal: 只能在当前程序集(项目)中访问,在同一个项目中,public和internal的权限是一样的. protected internal:protected + internal. (1).能够修饰类的访问修饰符只有2个,:public     int

面向对象的过程、继承、封装、多态;抽象类、访问修饰符的使用、引用类型强制转换、方法重写@override与重载、空指针异常、super关键字

面向对象设计的过程:     发现类-发现类的属性-发现类的方法-优化设计: 封装: private类型的,只可以在本类中使用,当其他类调用此类时,不可使用,因此可以设置setget方法,如下所示: 构造------------------------ 默认有无参构造,若设置了有参构造,则就没有默认的无参构造了,需要自己再添加一个 方法重载------------------- 方法名相同,参数列表不同(类型,数量,顺序不同,与参数名无关): 与返回值,访问修饰符无关 面向对象(OO)的优点--

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

scala的访问修饰符有如下几个特性: 如果不指定访问修饰符,scala默认为public: 较之Java,scala对protected的定义更加严格: scala可以对可见性进行细粒度的控制. scala的默认访问修饰符 如果没有修饰符,scala会默认把类.字段.方法的访问修饰符当做public.如果要将之调整为private或protected,只需在前面添加对应的修饰符关键字即可.就如下面的程序: class Microwave{ def start() = println("star