请简述private,public,protected,internal的区别。

题目
问答题
请简述private,public,protected,internal的区别。
参考答案和解析
正确答案: P.ublic:对任何类和成员都公开,无限制访问。
P.rivate:仅对该类公开。
P.rotected:对该类和其派生类公开。
I.nternal:只能在包含该类的程序集中访问该类。
P.rotectedinternal:protected+internal。
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下面叙述错误的是( )

A.对基类成员的访问能力在private派生类中和public派生类中是相同的

B.基类的private成员在public派生类中不可访问

C.基类中的public成员在protected派生类中是protected的

D.基类中的public成员在protected派生类中仍然是public的


正确答案:D

第2题:

访问修饰符作用范围由大到小是( )

A)private-default-protected-public

B)public-default-protected-private

C)private-protected-default-public

D)public-protected-default-private


答案:D

第3题:

有如下两个类定义: class XX{ private: double X1; protected: double x2; public: doublex3; ); clase YY:protected XX{ private: doubley1; protected: doubley2; public: double y3; }; 在类YY中保护成员变量的个数是( )。

A.1

B.2

C.3

D.4


正确答案:C
解析:派生类从基类保护继承(classYY:protectedXX)时,基类的公有成员在派生类中变为保护成员,基类的保护成员在派生类中仍然是保护成员;本题中YY本身有一个保护成员y2,再加上基类XX的x2和x3,故选C。

第4题:

下列哪个成员方法声明是正确的? ( )

A.public abstract final int f(){…}

B.public static boolean f(){…}

C.static protected void g(a,b){…}

D.protected private number;


正确答案:B
解析:本题考查对成员方法声明的掌握程度。选项A错误,成员变量不能同时声明成abstract 和 final;选项B正确,声明了一个公有静态返回值类型是布尔类型的方法 f();选项C错误,protected应在static之前;选项D错误,既不是方法声明,也不是正确的成员变量声明。

第5题:

请找出下列程序中错误之处 ______。 include classA{private: intx1;protected: int

请找出下列程序中错误之处 ______。

#include<iostream.h>

class A{

private:

int x1;

protected:

int x2;

public:

int x3;

};

class B:public A{

private:

int y1;

protected:

int y2;

public:

int y3;

void disp(){cout<<x1<<y1<<end1:} //A

void set(int i) {x2=i;} //B

};

void main() {

B bb;

bb.x3=10; //C

bb.y3=10; //D

}

A.A

B.B

C.C

D.D


正确答案:A

第6题:

有如下两个类定义: classXX{ private: doublexl; protected: doublex2; public: doublex3; }; claseYY:protectedXX{ private: doubleyl; protected: doubley2; public: doubley3; }; 在类YY中保护成员变量的个数是( )。

A.1

B.2

C.3

D.4


正确答案:C
C。【解析】派生类从基类保护继承classYY:pr0-teetedXX时,基类的公有成员在派生类中变为保护成员,基类的保护成员在派生类中仍然是保护成员;本题中YY本身有一个保护成员y2,再加上基类XX的x2和x3,故选C。

第7题:

下列哪个成员方法声明是正确的? ( )

A.public abstract final int f(){...}

B.public static boolean f(){...}

C.static protected void g(a,{...}

D.protected private number;


正确答案:B
解析:本题考查对成员方法声明的掌握程度。选项A错误,成员变量不能同时声明成abstract和final;选项B正确,声明了一个公有静态返回值类型是布尔类型的方法f();选项C错误,protected应在static之前;选项D错误,既不是方法声明,也不是正确的成员变量声明。

第8题:

protected和private区别在于:protected成员可以被派生类访问,而private成员则不能被派生类访问。()


参考答案:正确

第9题:

作用域public,private,protected,以及不写时的区别


正确答案:

 

区别如下:
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly

第10题:

请说出作用域publicprivateprotected,以及不写时的区别

 


说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly。                  

                 当前类              同一package          子孙类         其他包

public            √                                           √                     √                     

protected         √                      √               √              ×

friendly          √                      √               ×              ×

private           √                      ×               ×              ×