public公共的,意思是任何东西都可以访问public修饰的东西!那不写可以吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了public公共的,意思是任何东西都可以访问public修饰的东西!那不写可以吗?相关的知识,希望对你有一定的参考价值。

c#

那要看你用的什么语言了;

JAVA默认的修饰符是FRIENDLY,所以是必须申明PUBLIC;

所以说写不写是要看语言默认的是什么修饰符!

C#默认是internal :
C#用多种修饰符来表达类的不同性质。根据其保护级C#的类有五种不同的限制修饰符:

public可以被任意存取;
protected只可以被本类和其继承子类存取;
internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是“.DLL”或“.EXE”。
protected internal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。
private只可以被本类所存取。
如果不是嵌套的类,命名空间或编译单元内的类只有public和internal两种修饰。

new修饰符只能用于嵌套的类,表示对继承父类同名类型的隐藏。

abstract用来修饰抽象类,表示该类只能作为父类被用于继承,而不能进行对象实例化。抽象类可以包含抽象的成员,但这并非必须。abstract不能和new同时用。
参考技术A 不写则表示只作用于当前代码内,相当于private本回答被提问者采纳 参考技术B 对于class定义的类,默认的数据成员类型都是private
类的对象只能调用public型的
参考技术C 你都没说你用的是哪个语言

类的公共成员及其访问

【中文标题】类的公共成员及其访问【英文标题】:Public member of class and its access 【发布时间】:2015-07-11 05:37:13 【问题描述】:

我们可以在程序中声明但不是该类成员的函数中使用公共数据成员或成员函数吗?

【问题讨论】:

是的,您可以通过该类的对象 【参考方案1】:

任何函数都可以访问类的公共数据成员。

类的公共成员函数可以被任何函数调用。

这就是让班级成员public的目的。

当然,还有其他条件(例如,调用非静态公共成员函数的函数通常需要访问类的实例,即对象)。如果不满足这些条件,通常会阻止代码编译或导致未定义的行为——但这与成员是否为public 的问题无关。

【讨论】:

【参考方案2】:

这可以通过使用友元函数的概念来实现。任何不是该类成员函数的函数,那么我们可以使用friend关键字将该函数声明为朋友函数。现在通过使用这个友元函数,我们可以在该类的对象的帮助下访问所有私有的、受保护的、公共的数据成员。

【讨论】:

【参考方案3】:

如果有问题的非成员函数有一个可以调用成员函数的对象,那么是的——这就是公共成员的想法。例如:

class X

  public:
    void f()  
    int n_;
;

int main()

    X x; // an actual object/variable of type X
    x.f(); // can access public members
    x.n_ = 3;

【讨论】:

c++中有一条规则是"Never specify public or protected member data in a class." @goGud:这不是“C++ 中的规则”,只是某人过于严格的风格指南。 @goGud:这是人们阅读的合理指南,尽管将其称为“规则”会使它听起来像是标准规定的……这当然取决于程序员。干杯。

以上是关于public公共的,意思是任何东西都可以访问public修饰的东西!那不写可以吗?的主要内容,如果未能解决你的问题,请参考以下文章

访问修饰符

c++里面的protect和public、private有啥区别?

类的公共成员及其访问

面相对像 类 封装 继承

Java的修饰符

public等访问修饰符和final,static的用法