java中的各种修饰符作用范围
访问修饰符:
- private
- 缺省
- protected
public
作用范围:
| 访问修饰符\作用范围 | 所在类 | 同一包内其他类 | 其他包内子类 | 其他包内非子类 |
|---|---|---|---|---|
| private | 可以访问 | 不可以 | 不可以 | 不可以 |
| 缺省 | 可以 | 可以 | 不可以 | 不可以 |
| protected | 可以 | 可以 | 可以 | 不可以 |
| public | 可以 | 可以 | 可以 | 可以 |
- private
被private修饰的属性和方法,不能被其他类访问,子类不能继承也不能访问。只能在所在类内部访问。 - 缺省
变量或者方法前没有访问修饰符时,可以被所在类访问,可以被同一包内的其他类访问 或者继承。但是不能被其他包访问。 - protected
被protected修饰的方法和属性,在同一包内可被访问和继承。不同包内,子类可继承,非子类不能访问。 - public
方法和属性前有public修饰,可以被任意包内的类访问。
另外,类要想被其他包导入,必须声明为public。被public修饰的类,类名必须与文件名相同。
静态修饰符的特点:
static是一个修饰符,用于修饰成员(成员变量和成员函数)
- 静态成员随着类的加载而加载。
- 静态成员优先于对象存在。
- 静态成员被所有对象所共享
- 静态成员多了一个中调用方式,可以被类名直接调用。
静态使用的注意事项。
- 静态方法只能访问静态成员, 非静态方法既可以访问静态又可以访问非静态。
- 静态方法中不可以定义this,super关键字。因为this代表是对象。而静态存在时,有可能没有对象。所以静态方法运行时,this是没有任何对象代表的。
简单说,先进内存的数据不可以访问后进内存的数据,可是后进内存数据可以访问先进内存的数据。- 主函数是静态的
静态的优缺点
优点: 静态成员多了一种调用方式。可以直接被类名调用 格式 :类名.静态成员。也可以被对象调用。
弊端 : 静态方法只能访问静态成员,出现了访问局限性。
静态修饰的数据对象共享的数据,存放在方法区的静态区中。
非静态的数据,是每一个对象特有数据。存放在对象的所属的堆内存中。
当成员变量被静态修饰后,和非静态成员变量的区别:
- 静态变量也称为类变量,也就是直接可以被类名调用的变量。这个变量是所属于类的。
非静态变量成为成员变量,或者实例变量,是被对象调用的,是所属具体对象的。- 静态变量随着类的加载而加载,也意味着随着类的消失而消失。生命周期最长。
实例变量,随着对象的创建而加载,随着对象的消失而消失。按照对象的生命周期而存在。- 静态变量存储在方法区的静态区中。
实例变量存在于对象所属的堆内存中。- 静态变量数据,被所有对象所共享。
实例变量是对象中的特有数据
文章来源:https://blog.csdn.net/yxy_myfields/article/details/76422952
java中的各种修饰符作用范围的更多相关文章
- 详解Java中的访问控制修饰符(public, protected, default, private)
Java中的访问控制修饰符已经困惑笔者多时,其中较复杂的情况一直不能理解透彻.今天下定决心,系统.全面地研究Java中的访问控制修饰符的所有方面,并整理成这篇文章,希望有同样疑惑的读者读完后能有所收获 ...
- Java学习笔记十九:Java中的访问控制修饰符
Java中的访问控制修饰符 一:Java修饰符的种类: 访问修饰符 非访问修饰符 修饰符用来定义类.方法或者变量,通常放在语句的最前端.我们通过下面的例子来说明: public class Hello ...
- 分享知识-快乐自己:java 中的访问修饰符
1):Java中的访问修饰符: Java面向对象的基本思想之一是封装细节并且公开接口.Java语言采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而向使用者暴露接口,但隐藏实现细节. 访问控制 ...
- java中4种修饰符访问权限的区别及详解全过程
java中4种修饰符访问权限的区别及详解全过程 http://jingyan.baidu.com/article/fedf0737700b3335ac8977ca.html java中4中修饰符分别为 ...
- java中的访问修饰符详解
主要讲述一下java中protected的修饰控制范围. 在叙述protected修饰符使用之前,先来说一下java,可以发现,开发java程序是一个时时刻刻都在编写类.开发类.定义类的过程.类里面可 ...
- java中的类修饰符、成员变量修饰符、方法修饰符。
类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. fin ...
- (转)JAVA中的权限修饰符
注:本博文是转载的,原文地址:http://blog.csdn.net/xk632172748/article/details/51755438 Java中修饰符总结: 访问控制修饰符 访问控制修饰符 ...
- java中的权限修饰符的理解
首先了解概念: 在java中有四种权限修饰符:范围从大到小分别是:public.protect.default(friendly).private,它们之间的区别是: public: Java语言中访 ...
- java中的访问修饰符
Java有四种访问权限,其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符.其中package代表缺省的访问权限,具体到代码中就是不写任何修饰符的 ...
随机推荐
- ApplicationContex是干啥的
ApplicationContext就是一个百宝箱 ApplicationContext是Spring的核心,Context我们通常解释为上下文环境,我想用“容器”来表述它更容易理解一些,Applic ...
- C#向服务器上传文件问题
最近在写服务器端web上传的接口.但一直报错,上传不上去,后来发现是在分隔符中出现的问题. 错误的写法: var boundary = "---------------" + Da ...
- Bitnami WordPress无法修改MySQL root的默认密码的解决方法?
今天准备修改Bitnami WordPress的MySQL root的默认密码,但是总是出现下面错误: ERROR 1045 (28000): Access denied for user 'root ...
- 【转】分析.net中的object sender与EventArgs e
源地址:http://blog.csdn.net/feihu19851111/article/details/7523118
- 【BZOJ3589】动态树 树链剖分+线段树
Description 别忘了这是一棵动态树, 每时每刻都是动态的. 小明要求你在这棵树上维护两种事件 事件0: 这棵树长出了一些果子, 即某个子树中的每个节点都会长出K个果子. 事件1: 小明希望你 ...
- 开启和查看mysql的bin-log日志
[root@VM_0_7_centos data]# vim /etc/my.cnf [root@VM_0_7_centos data]# vim /etc/my.cnf [root@VM_0_7_c ...
- 命令行里打 cd 简直是浪费生命
简评:作为工程师,你在命令行下最常打的命令无非就是 cd 与 ls.这些年你浪费了多少时间? 作为一个程序员或者在 shell 中花费大量时间的人,你可能会经常以一种低效率的方式在目录中来回移动,特别 ...
- 前端模块开发的基础代码,兼容amd,cmd标准,也可以直接使用window来引用对象
(function(global, factory) { if (typeof define === 'function' && define.amd) { define(functi ...
- java基础(多态)_03
一.多态 1.概念:一个对象的多种形态 2.前提: a:必须有继承 b:必须有重写(只有重写才会有意义,没重写语法没错) 3.体现形式: 父类类型 变量名 = new 子类类型(): 4.注意事项: ...
- JUC包下CountDownLatch学习笔记
CountDownLatch的作用是能使用多个线程进来之后,且线程任务执行完毕之后,才执行, 闭锁(Latch):一种同步方法,可以延迟线程的进度直到线程到达某个终点状态.通俗的讲就是,一个闭锁相当于 ...