Java中的访问权限控制

ArrayList list=new ArrayList();

}

}

这样就可以不用限定地使用ArrayList了,但是这里只能使用ArrayList类。若想导入java.util中的其他类,可以将import java.util.ArrayList;换成import java.util.*;这样就可以使用java.util中的所有类了。

1.2 代码组织

当编译一个.java文件时,在.java文件中的每个类都会有一个输出文件,而该输出文件的名称与.java文件中每个类的名称相同,只是多了一个后缀.class。因此,在编译少量.java文件之后,会得到大量的.class文件。Java可运行程序是一组可以打包并压缩为Java文档文件(JAR,使用Java的jar文档生成器)的.class文件。Java解释器负责这些文件的查找,装载和解释。

类库实际上是一组类文件,其中每个文件都有一个public类,以及任意数量的非public类。因此每个文件都有一个构件。如果希望这些构件从属于同一个群组,就可以使用关键字package

例如:假设文件的名称是MyClass.java,这就意味着在该文件中有且只有一个public类,该类的名称必须是MyClass:

package com.mypackage;

public class MyClass {

// …

}

此时假如MyClass类是在某一个类库中的类,当我们想要调用时就必须使用关键字import来使库的名称可用,或者给出完整的名称。

import com.mypackage.MyClass;

public class Thinking_test {

public static void main(String []args){

MyClass m=new MyClass();

}

}

Java访问权限修饰符


在Java中,当我们要访问一个类成员时,为使这种访问合法化有以下四种情况:

  • 1. 被访问类成员被public修饰。

  • 2. 被访问类成员没有任何修饰,访问者和被访问者定义在同一个包内。

  • 3. 通过继承访问其父类的public/protect成员。

  • 4.使用getter/setter或其他类内函数间接地访问类内的私有成员。

分别对应了Java访问权限的不同访问级别:

| | 当前类 | 同一个包的类 | 不同包的子类 | 同一个工程的类 |

| — | — | — | — | — |

| public | √ | √ | √ | √ |

| protected | √ | √ | √ | × |

| default | √ | √ | × | × |

| private | √ | × | × | × |

2.1 public公共访问权限

使用关键字public修饰一个类成员时,代表这个类成员可以被所有代码访问

public:即共有的,是访问权限限制最宽的修饰符。使用关键字public就意味着public之后跟随着的成员声明自己对每个人都是可用的,被public修饰的类、属性、及方法不仅可以跨类访问,而且可以跨包访问。

2.2 protected受保护访问权限

使用关键字protected修饰一个类成员时,代表这个类成员只能被自己的类成员和子类的类成员访问

protected:即保护访问权限,是介于public和private之间的一种访问修饰。被protected修饰的属性及方法只能被类本身的方法和子类访问。一般情况下处理的是继承的概念,通过继承可以利用一个现有类—将其称为基类,然后将新成员添加到该现有类中而不必改变现有类。

2.3 包访问权限

包访问权限没有关键字,通常默认为包访问权限(有时表示为default),包中所有的类都可以对拥有包访问权限的类/类成员进行访问,它们对包外的类来说不可见。

2.4 private私有访问权限

使用关键字private修饰一个类成员时,代表这个类成员所在类的其他成员外,其他任何代码都无权访问

private:即私有访问权限,由于处于同一个包内的其他类是不可以访问private成员的,这相当于自己隔离了自己,使得使用类的客户端程序员无法访问包访问权限成员,这个机制把类设计者负责的部分和类使用者要负责的部分分离开了。

类的访问权限


在Java中,访问权限修饰符可以用于确定库中的那些类对于该库的使用者是可用的。如果希望某个类可以被某个客户端程序员所用,就可以通过public作用于整个类的定义来达到目的,这样做甚至可以控制客户端程序员是否能创建一个该类对象。

在控制类的访问权限时,还有一些额外的限制需要注意:

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值