这一章节我们来讨论一下public 、private和protected
1.CLASS_PATH
环境变量里面的CLASS_PATH,这个路径就是我们java寻找文件的路径。
注意:一般在CLASS_PATH里面都会加上"."代表当前文件夹,如果不加上这个符号,那么,你编辑的java很有可能不能编译,因为在CLASS_PATH里面特定的几个文件夹里面很可能找不到你的源文件。
2.public
对于所有成员公开
package com.ray.ch05;
public class Test {
private int id;
private void say() {
}
public static void main(String[] args) {
new Test();
}
}
对于上面的代码,其他的类只能访问构造器,因为构造器是public,其他的是private。
3.private
只能本类访问,其他所有都不可以。
package com.ray.ch05;
public class Test {
private int id;
private void say() {
}
public static void main(String[] args) {
new Test().say();// 访问私有方法。
new Test().id = 0;//设定私有域的值
System.out.println(new Test().id);//读取私有域的值
}
}
我们在同一个包里面建立另一个类Test2
package com.ray.ch05;
public class Test2 {
public static void main(String[] args) {
new Test();
// new Test().say();// 抛异常
// new Test().id = 0;//抛异常
// System.out.println(new Test().id);//抛异常
}
}
上面的这个类只能new Test(),其他的操作都是错误的。
4.protected
只能够子类访问父类的protected方法或属性。
我们修改一下刚才的那两个类,使得Test2继承Test,然后再Test里面建立一个protected的属性域。
package com.ray.ch05;
public class Test {
private int id;
protected String name;
private void say() {
}
public static void main(String[] args) {
new Test().say();// 访问私有方法。
new Test().id = 0;//设定私有域的值
System.out.println(new Test().id);//读取私有域的值
}
}
package com.ray.ch05;
public class Test2 extends Test {
public static void main(String[] args) {
new Test();
System.out.println(new Test2().name);// 读取父类的属性域
// System.out.println(new Test2().id);//抛异常,因为id是private
}
}
从上面代码可以看见,子类Test2可以读取父类Test的protected属性。同样的,也可以延伸到方法上面去。
package com.ray.ch05;
public class Test {
private int id;
protected String name;
private void say() {
}
protected String setName() {
return "";
}
public static void main(String[] args) {
new Test().say();// 访问私有方法。
new Test().id = 0;// 设定私有域的值
System.out.println(new Test().id);// 读取私有域的值
}
}
package com.ray.ch05;
public class Test2 extends Test {
public static void main(String[] args) {
new Test();
System.out.println(new Test2().name);// 读取父类的属性域
System.out.println(new Test2().setName());// 读取父类的方法
// System.out.println(new Test2().id);//抛异常,因为id是private
}
}
总结:这一章节主要讲述了public private protected的一些特性。
这一章节就到这里,谢谢。
-----------------------------------
目录
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
标题 "AccessControl-5.3-cp36-cp36m.manylinux2010_i686.whl" 提供的信息是关于一个特定版本的 Python 库 AccessControl,版本号为 5.3,它适用于 Python 3.6(由 cp36 表示)并使用了cp36m ABI(Application ...
在Java开发中,这样的库可以极大地提高开发效率,因为它封装了常见的功能,开发者可以直接使用,而无需从头编写代码。 描述中的 "mchange-commons-java-0.2.11.jar包" 是该库的主要组成部分,是一个Java归档(JAR)...
用户可以轻松地导入现有的Java项目,或者从头开始创建新的项目,包括Maven或Gradle构建系统。 3. **构建工具**:Eclipse 集成了构建工具,如Ant和Maven,使得构建和管理项目依赖变得简单。对于现代Java开发,Maven...
标题中的“api-ntrip-java-client-master.zip”是一个包含Java实现的NTRIP客户端的源代码压缩包,专门针对Android平台。NTRIP(Networked Transport of RTCM via Internet Protocol)是一种用于实时传输GPS(全球...
标题 "aip-java-sdk-4.2.0" 指的是一个针对Android平台的AIP(Artificial Intelligence Platform)SDK的特定版本,版本号为4.2.0。这个SDK是百度公司提供的,用于帮助开发者在Android应用程序中集成和使用百度的各种...
【标题】"Aspose.Words for Java 23.6 with JDK 17 Support" Aspose.Words 是一个强大的文档处理库,专为Java开发者设计,用于创建、操作和转换各种文档格式。版本23.6是这个库的一个重要更新,它引入了对Java ...
【标题】: "手把手 - 微服务 Windows 开发环境从头搭建 2022-09-05 直播录像 - 软件安装包-2.zip" 这个压缩包文件包含了搭建微服务开发环境所需的基础软件,包括JDK(Java Development Kit)和MySQL数据库。...
Java Swing是Java GUI(图形用户界面)开发的一个重要组件,它是Java Foundation Classes (JFC)的一部分,用于构建桌面应用程序。Swing提供了丰富的组件库,允许开发者创建美观且功能丰富的交互式用户界面。在这个...
在Java编程中,多文件...通过这个"java-多文件上传dome"工具包,你可以快速实现上述功能,无需从头编写所有代码。不过,记得在实际项目中,除了功能实现,还要关注性能、安全性和可维护性,确保应用程序的稳定运行。
Java SDK是许多软件开发中的重要组成部分,特别是在与服务器端交互时。在这个名为"java-sdk-master.zip"的压缩包中,包含的是Leancound的Java SDK,这是一个专为集成Leancound服务而设计的开发工具包。Leancound是...
**Free Spire.Doc for Java - 3.9 无水印** `Free Spire.Doc for Java` 是一款专为Java开发者设计的文档处理库,它允许用户在Java应用程序中创建、编辑和转换Microsoft Word文档。这个3.9版本提供的是无水印版本,...
在Java编程中,库(Library)是预先编写好的代码集合,程序员可以导入并直接使用,无需从头开始编写所有功能。这些库通常以JAR(Java Archive)文件的形式存在,里面封装了类和方法,可供应用程序调用。Java库广泛...
Java是一种广泛使用的面向对象的编程语言,其特点包括抽象、继承、封装和多态性。在Java笔试中,这些概念经常被考察。 1. **面向对象的特征**: - **抽象**:抽象是将复杂问题简化的过程,分为过程抽象(方法)和...
在Java开发中,创建具有模糊效果的视图背景可以提升应用程序的用户体验,使其看起来更加现代和精致。"使用渲染脚本实现模糊视图背景"是一个常见的技术实践,它通常涉及到图形处理和用户界面的设计。在这个项目中,...
【标题】:“curso-java-pildorasInf:从头开始学习Java” 这门“从头开始学习Java”的课程,源自"PillsInformática"的教育资源,旨在为初学者提供全面的Java编程知识。Java是一种广泛使用的面向对象的编程语言,由...
【标题】"ks-java-lib:包含 Java 的 KS 库" 提供的是一个专门为 Java 开发者设计的库,它扩展了 Java 的功能,为开发者在处理特定任务时提供了便利。这个库可能包含了丰富的类和方法,旨在简化开发过程,提高代码的...
Java平台提供了一系列库来支持这些操作,本项目中涉及的主要有Spire.Doc、Spire.PDF以及Apache PDFBox。让我们详细探讨这些库的功能及其在Java开发中的应用。 首先,`Spire.Doc.jar`是Spire.Doc for Java的库文件,...
标题中的"java-leetcode题解之第21题合并两个有序链表.zip"指的是一个Java编程语言实现的LeetCode算法题解,具体是第21题——“合并两个有序链表”。这道题目要求我们将两个已排序的链表合并为一个新的已排序链表并...
luke5.3 支持打开lucene5.3及以下的版本,运行方式。java -jar lucene5.3索引查看工具.jar