这是我参加“朝闻道知识分享大赛”的第二篇文章,Java程序,用eclipse软件探索public成员变量/方法、private成员变量/方法、protected成员变量/方法和友好成员变量/方法的可见

2301_81159032 2024-11-19 13:39:28

public成员变量/方法、private成员变量/方法、protected成员变量/方法和友好成员变量/方法的可见范围

  1. 在eclipse中建立目录:

Test

──package1

── AccessModifiers.java

── SubClass.java

── package2

── TestAccess.java

 

  1. 编译AccessModifiers代码为:

package Package1;

public class AccessModifiers {

public int publicField = 1;

private int privateField = 2;

protected int protectedField = 3;

int defaultField = 4;

public void publicMethod() {

System.out.println("Inside publicMethod");

}

private void privateMethod() {

System.out.println("Inside privateMethod");

System.out.println("Private Field Value: " + privateField);

}

protected void protectedMethod() {

System.out.println("Inside protectedMethod");

}

void defaultMethod() {

System.out.println("Inside defaultMethod");

}

public static void main(String[] args) {

AccessModifiers am = new AccessModifiers();

am.publicMethod();

am.privateMethod();

am.protectedMethod();

am.defaultMethod();

}

}

运行结果:

 

 

  1. 编译SubClass代码为:

package Package1;

class SubClass extends AccessModifiers {

void testAccess() {

System.out.println(publicField);

System.out.println(privateField);

System.out.println(protectedField);

System.out.println(defaultField);

publicMethod();

privateMethod();

protectedMethod();

defaultMethod();

}

}

private处编译错误:

 

 

  1. 编译TestAccess,代码为:

package Package2;

import Package1.AccessModifiers;

public class TestAccess {

public static void main(String[] args) {

AccessModifiers obj = new AccessModifiers();

System.out.println(obj.publicField);

System.out.println(obj.privateField);

System.out.println(obj.protectedField);

System.out.println(obj.defaultField);

obj.publicMethod();

obj.privateMethod();

obj.protectedMethod();

obj.defaultMethod();

}

}

除public处,皆编译错误:

 

 

结果如表所示:

类A的成员变量/成员方法

public

private

protected

(package)

类A自己的方法

类B(与A同包的方法)

×

类C(与A不同包的方法)

×

×

×

实验结果:

public成员变量/方法、private成员变量/方法、protected成员变量/方法和友好成员变量/方法的可见范围

1.public成员可以在任何地方被访问。

2.private成员只能在定义它们的类内部访问。

3.protected成员可以在同一个包内的类和任何子类中访问。

4.默认访问权限(友好)的成员只能在同一个包内的类之间访问。

5.实验验证了不同访问修饰符对成员变量和方法的可见性影响,以及它们在继承和多包环境下的行为。

...全文
49 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
2301_81159032 2024-11-19
  • 打赏
  • 举报
回复
哒哒哒

1,042

社区成员

发帖
与我相关
我的任务
社区描述
中南民族大学CSDN高校俱乐部聚焦校内IT技术爱好者,通过构建系统化的内容和运营体系,旨在将中南民族大学CSDN社区变成校内最大的技术交流沟通平台。
经验分享 高校 湖北省·武汉市
社区管理员
  • c_university_1575
  • WhiteGlint666
  • wzh_scuec
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎各位加入中南民族大学&&CSDN高校俱乐部社区(官方QQ群:908527260),成为CSDN高校俱乐部的成员具体步骤(必填),填写如下表单,表单链接如下:
人才储备数据库及线上礼品发放表单邀请人吴钟昊:https://ddz.red/CSDN
CSDN高校俱乐部是给大家提供技术分享交流的平台,会不定期的给大家分享CSDN方面的相关比赛以及活动或实习报名链接,希望大家一起努力加油!共同建设中南民族大学良好的技术知识分享社区。

注意:

1.社区成员不得在社区发布违反社会主义核心价值观的言论。

2.社区成员不得在社区内谈及政治敏感话题。

3.该社区为知识分享的平台,可以相互探讨、交流学习经验,尽量不在社区谈论其他无关话题。

试试用AI创作助手写篇文章吧