java中的各种修饰符作用及范围
作者:0 与 1 发布时间:2022-02-10 01:03:54
访问修饰符
private
缺省
protected
public
作用范围
访问修饰符\作用范围 | 所在类 | 同一包内其他类 | 其他包内子类 | 其他包内非子类 |
---|---|---|---|---|
private | 可以访问 | 不可以 | 不可以 | 不可以 |
缺省 | 可以 | 可以 | 不可以 | 不可以 |
protected | 可以 | 可以 | 可以 | 不可以 |
public | 可以 | 可以 | 可以 | 可以 |
private
被private修饰的属性和方法,不能被其他类访问,子类不能继承也不能访问。只能在所在类内部访问。
缺省
变量或者方法前没有访问修饰符时,可以被所在类访问,可以被同一包内的其他类访问 或者继承。但是不能被其他包访问。
protected
被protected修饰的方法和属性,在同一包内可被访问和继承。不同包内,子类可继承,非子类不能访问。
public
方法和属性前有public修饰,可以被任意包内的类访问。
另外,类要想被其他包导入,必须声明为public。被public修饰的类,类名必须与文件名相同。
静态修饰符的特点
static是一个修饰符,用于修饰成员(成员变量和成员函数)
1.静态成员随着类的加载而加载。
2.静态成员优先于对象存在。
3.静态成员被所有对象所共享
4.静态成员多了一个中调用方式,可以被类名直接调用。
静态使用的注意事项
1.静态方法只能访问静态成员, 非静态方法既可以访问静态又可以访问非静态。
2.静态方法中不可以定义this,super关键字。因为this代表是对象。而静态存在时,有可能没有对象。所以静态方法运行时,this是没有任何对象代表的。简单说,先进内存的数据不可以访问后进内存的数据,可是后进内存数据可以访问先进内存的数据。
3.主函数是静态的
静态的优缺点
优点:静态成员多了一种调用方式。可以直接被类名调用 格式 :类名.静态成员。也可以被对象调用。
弊端:静态方法只能访问静态成员,出现了访问局限性。
静态修饰的数据对象共享的数据,存放在方法区的静态区中。
非静态的数据,是每一个对象特有数据。存放在对象的所属的堆内存中。
当成员变量被静态修饰后,和非静态成员变量的区别
1.静态变量也称为类变量,也就是直接可以被类名调用的变量。这个变量是所属于类的。非静态变量成为成员变量,或者实例变量,是被对象调用的,是所属具体对象的。
2.静态变量随着类的加载而加载,也意味着随着类的消失而消失。生命周期最长。实例变量,随着对象的创建而加载,随着对象的消失而消失。按照对象的生命周期而存在。
3.静态变量存储在方法区的静态区中。实例变量存在于对象所属的堆内存中。
4.静态变量数据,被所有对象所共享。实例变量是对象中的特有数据
来源:https://blog.csdn.net/yxy_myfields/article/details/76422952


猜你喜欢
- 在默认情况下,对象的Equals(object o)方法(基类Object提供),是比较两个对象变量是否引用同一对象。我们要必须我自己的对象
- Java java.lang.ExceptionInInitializerError 错误如何解决引起 Java.lang.Ex
- 一:什么是SparkSQL?(一)SparkSQL简介Spark SQL是Spark的一个模块,用于处理结构化的数据,它提供了一个数据抽象D
- 前沿知识ThreadLocal存储线程变量,使用set方法设置变量,使用get方法获取变量线程隔离的实现是每个Thread类有一个类型为Th
- Android安全加密专题文章索引Android安全加密:对称加密Android安全加密:非对称加密Android安全加密:消息摘要Mess
- Apache Thrift 是 Facebook 实现的一种高效的、支持多种编程语言的远程服务调用的框架。和其它RPC框架相比,它主要具有如
- 如下所示:Synchronized是内置的java关键字,Lock是一个java类。Synchronized无法判断是否获取到了锁,Lock
- import java.io.BufferedInputStream;import java.io.BufferedOutputStream
- 一、设置Fira_Code字体1.下载字体这里给出github下载链接,点击链接后在README.md中的Download & In
- SSM框架是JavaWeb必学的框架,虽说基本的增删改查很简单,但是当面临一些特殊情况时,有时还是会显得手足无措,此篇用来记录一些特殊场景下
- private void button1_Click(object sender, EventArgs e) &nbs
- 本文实例讲述了C#快速排序算法。分享给大家供大家参考。具体实现方法如下:public static int[] QuickSort(int[
- 这篇文章主要介绍了如何通过SpringBoot实现商城秒杀系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 1.添加加载更多布局1_初始化和隐藏代码在RefreshListView构造方法中调用private void initFooterView
- 一、堆排序1、什么是堆排序(1)堆排序:堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构
- 排序算法介绍排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。排序的分类:1) 内部排序:指将
- 随着时间的推移现在的软件要求显示的内容越来越多,所以要在小的屏幕上能够更好的显示更多的内容,首先我们会想到底部菜单栏,但是有时候想网易新闻要
- java @Value("${}")获取不到配置文件中值1、property.yml配置spring: ma
- 公司在使用定时任务的时候,使用的是spring scheduled。代码如下:@EnableSchedulingpublic class T
- 马云说:“未来最大的资源就是数据,不参与大数据十年后一定会后悔。”毕竟出自wuli马大大之口,今年二月份我开始了学习大数据的道路,直到现在对