首页 > 其他分享 >访问修饰符

访问修饰符

时间:2024-08-14 14:39:01浏览次数:7  
标签:pack2 子类 修饰符 Example 访问 com public

7.2 访问修饰符


目录

7.2.1 访问修饰符时什么

Java中的访问修饰符用于控制类、接口、构造函数、方法和数据成员(字段)的可见性和访问级别。

Java提供了四种访问修饰符:

访问修饰符 同一类内 同一包内 不同包的子类 不同包的非子类 适用对象
public 可见 可见 可见 可见 类、接口、变量、方法
protected 可见 可见 可见 不可见 变量、方法
默认 可见 可见 不可见 不可见 类、接口、变量、方法
private 可见 不可见 不可见 不可见 变量、方法

7.2.2 private关键字

  • 访问权限:最高,可以被任何其他类访问。
  • 适用范围:类、接口、构造器、方法和字段。

img

com.pack2 包中:

package com.pack2;
 
public class Example {
 
	//public 修饰字段(成员变量),以此为例
	public int publicVar;
 
	public void example() {
		System.out.println(publicVar);//同一个类中可以访问 publicVar
	}
}
package com.pack2;
 
public class SamePackage {
	public Example e = new Example();
 
	public void show() {
		System.out.println(e.publicVar);//可以在同一个包中被访问 publicVar
	}
}

这里可以看到同一类中可以访问 public 修饰的成员变量,同一个包中可以访问 public 修饰的成员变量。

com.pcak1 包中:

package com.pack1;
 
import com.pack2.Example;
 
public class NotSamePackNotSubclass {
	public static void main(String[] args) {
		Example e1 = new Example();
		System.out.println(e1.publicVar);//在不同包的非子类中访问 publicVar
	}
}
package com.pack1;
 
import com.pack2.Example;
 
public class Subclass extends Example {
 
	public void foo() {
		System.out.println(publicVar);//在不同包的子类中访问 publicVar
	}
}

这里可以看到在不同包的非子类和子类中都可以访问到 public 修饰的成员变量。

7.2.3 public关键字

  • 访问权限:最低,只能被定义它的类内部访问。
  • 适用范围:构造函数、方法和字段。

img

com.pack2 包中:

package com.pack2;
 
public class Example {
	//private 修饰的成员变量
	private int privateVar;
 
	public void show() {
		System.out.println(privateVar);//同一个类中可以访问 privateVar
	}
}

可以发现 private 修饰的成员变量只能在同一个类中被访问。

package com.pack2;
 
public class SamePackage {
	Example example = new Example();
 
	public void show() {
		//System.out.println(example.privateVar);//同一个包中不能访问 privateVar
		//这里会报错
	}
}

可以发现 private 修饰的成员变量不能在同一个包中被访问。这里会报错:

img

com.pcak1 包中:

package com.pack1;
 
import com.pack2.Example;
 
public class NotSamePackNotSubclass {
	public static void main(String[] args) {
		Example example = new Example();
		//System.out.println(example.privateVar);//不同包的非子类不能访问 privateVar
		//这里会报错
	}
}

可以发现 private 修饰的成员变量不能在不同包的非子类中被访问。这里会报错:

img

package com.pack1;
 
import com.pack2.Example;
 
public class Subclass extends Example{
	public void show() {
		//System.out.println(privateVar);//不同包的子类不能访问 privateVar
		//这里会报错
	}
}

可以发现 private 修饰的成员变量不能在不同包的子类中被访问。这里会报错:

img

标签:pack2,子类,修饰符,Example,访问,com,public
From: https://www.cnblogs.com/hweiling/p/18357376

相关文章

  • 电脑怎么设置禁止访问网页|深度干货!0基础也能懂!
    在一个忙碌的下午,人力资源部的张莉正坐在她的办公桌前,盯着电脑屏幕上的报表。突然,她的目光不经意间扫到了隔壁工位的小王,只见他正津津有味地浏览着某购物网站,完全沉浸在自己的小世界里。张莉心中不禁有些担忧,毕竟,在工作时间上网闲逛不仅影响工作效率,还可能带来网络安全风险。......
  • ACL(访问控制列表)
    ACL,AccessControlList,访问控制列表,流量工程技术ACL编号(华为)基本ACL(Basic),只能匹配源地址信息:2000~2999高级ACL(Advanced),可以匹配源目的IP、端口及协议:3000~3999二层ACL(L2),用于二层技术:4000~4999自定义ACL(Name),属于扩展功能:5000~5999ACL的规则结构条件安全套接字(sip、di......
  • c# 多线程环境下对共享资源访问的办法
    Monitor:定义:Monitor 是C#中最基本的同步机制,通过 Enter 和 Exit 方法来控制对共享资源的访问。它提供了排他锁的功能,确保在任何时刻只有一个线程可以访问共享资源。优点:简单易用,适合对临界区进行粗粒度的同步控制。缺点:只能实现排它锁,不能实现读写锁,性能相对较低。......
  • MySQL使用教程笔记(远程访问)
    远程连接MySQL数据库_mysql远程访问数据库-CSDN博客如何远程连接mysql数据库服务器_mysql如何连接远程数据库服务器_如何连接远程数据库mysql-腾讯云开发者社区-腾讯云(tencent.com)如何使用C#连接远程MySQL服务器?_webrtc_weixin_0010034-MySQL数据库(csdn.net)c#中mysq......
  • windows系统配置nginx环境运行pbootcms访问首页直接404的问题
    安装pbootcms后访问后台/admin.php可以,但是直接访问首页就404。运行环境运行环境采用的是:windows+nginx+php的环境详细经过客户说伪静态规则一直无法生效,看了一下,代码放到服务器除了后台/admin.php可以访问到,其他页面都是404错误,一直各种尝试导入伪静态,但是所有页面依然是404。......
  • Windows出现出现身份验证错误。要求的函数不受支持 远程计算机: 10.17.1.2 这可能是由
    Windows出现出现身份验证错误。要求的函数不受支持远程计算机:10.17.1.2这可能是由于CredsSP加密数据库修正。若要了解详细信息,请访问https://go.microsoft.com/fwlink/?linkid=866660解决方案解决方法第一步点开控制面板选择系统与安全第二步选择“允许远程访问......
  • nginx反向代理配置https和http能同时访问后,发现一些页面使用http访问正常,使用https访
    报错:Thisrequesthasbeenblocked;thecontentmustbeservedoverHTTPS,如下图: 问题原因:HTTPS页面里动态的引入了HTTP资源,比如引入一个js文件,会被直接block掉的.在HTTPS页面里通过AJAX的方式请求HTTP资源,也会被直接block掉。 解决方法一:(没试过,要改的页面太多了,没有使......
  • Odoo17 门户链接访问令牌
    为了方便共享文档,odoo在每个文档模型中都加入了共享链接的快捷分享功能,用户可以方便的在想要分享的文档上将文档的链接分享给客户/供应商。我们以销售订单为例,来看一下分享功能的使用方法.生成共享链接我们在想要分享的文档上点击动作-分享,会弹出一个对话框:在显示的对话框中......
  • Proxifier 是一个网络工具,用于通过代理服务器重定向应用程序的网络流量。它使你能够将
    Proxifier是一个网络工具,用于通过代理服务器重定向应用程序的网络流量。它使你能够将所有网络流量或特定应用程序的流量通过代理服务器发送,从而增强隐私、绕过地理限制或访问受限内容。为什么使用Proxifier?隐私保护:通过代理服务器隐藏真实IP地址,增强在线隐私。绕过限制:访......
  • [Lang] 类成员修饰符
    [Lang]类成员修饰符1.访问public成员可以被任何代码访问,包括类的外部和派生类。protected成员不能被类的外部直接访问,但可以被该类的派生类访问。private成员只能在类内部访问,不能被类的外部或派生类直接访问。2.继承public继承:基类public,protected,private在派生类......