java中的各种修饰符作用及范围

目录
  • 访问修饰符
    • 作用范围
    • 静态修饰符的特点
    • 静态使用的注意事项
    • 静态的优缺点
    • 当成员变量被静态修饰后,和非静态成员变量的区别

访问修饰符

  • 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.静态变量数据,被所有对象所共享。实例变量是对象中的特有数据

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 一篇文章带你入门Java修饰符

    目录 定义 分类 访问控制修饰符 非访问控制修饰符 修饰符的使用说明 修饰类 修饰方法 访问控制修饰符 非访问控制修饰符 修饰变量 总结 定义 Java修饰符:修饰符用来定义类.方法或者变量,通常放在语句的最前端. 分类 主要分为2类: 访问控制修饰符 非访问控制修饰符 访问控制修饰符 可以使用访问控制符来保护对类.变量.方法和构造方法的访问.分为以下4中权限:private,default,protected,public. 权限说明: 修饰符 当前类 同包 子类(不同包) 不同包(其他类)

  • 深度理解Java访问修饰符

    一.作用及种类 UML类图 建模语言或标准建模语言 类的属性.操作中的可见性使用+.#.-分别表示public.protected.private 作用:信息隐藏 防止用户意外修改数据,使模块易于维护和使用有哪些修饰符呢? private:只有该类可以访问 protected:该类及其子类的成员可以访问,同一个包中的类也可以访问 public:该类或非该类可以访问 默认:同一个包中的类可以访问 可以作用于类,成员,方法 二.深度理解 同一个类 就是同一个类里面的,类相当于结构体 同一个包 圈中的

  • 一文搞懂JAVA 修饰符

    Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类.方法或者变量,通常放在语句的最前端.我们通过下面的例子来说明: public class ClassName { // ... } private boolean myFlag; static final double weeks = 9.5; protected static final int BOXWIDTH = 42; public static void main(String[] argum

  • java 方法重写与权限修饰符以及多态和抽象类详解概念和用法

    1.方法重写 子类写和父类一样的方法定义 public void call(){ System.out.println("输出文字"); //父类的方法 } public void call(){ System.out.println("helloworld"); } //子类的方法 重写父类方法时,容易写错名字怎么办? 加个@Override 注解 如果报错,说明重写父类方法时,写错了 @Override: @Override public void call()

  • Java开发必备的三大修饰符

    一.abstract 抽象的 抽象类:被abstract 修饰的类 语法: abstract class 类名{} 抽象方法 : 被abstract 修饰的方法 定义语法: 访问修饰符 abstract 返回值类型 方法名(参数列表): abstract 访问修饰符 返回值类型 方法名(参数列表): 特点: 1.当一个类中存在抽象方法 那么这个类也必须是抽象的 2.一个抽象类中可以有抽象方法也可以有非抽象方法 3.如果一个类继承了抽象类,这个类如果不想成为抽象类,那么这个类必须实现抽象类中的所有

  • Java中的权限修饰符(protected)示例详解

    前言 大部分来自:https://blog.csdn.net/justloveyou_/article/details/61672133.并在这个博客的基础上,加上了自己的一些理解. 权限控制表 修饰词 本类 同一个包的类 继承类 其他类 private √ × × × 无(默认) √ √ × × protected √ √ √ × public √ √ √ √ 关于protected 最近在看Effective Java时,遇到了一个关于protected修饰符的问题.这个问题中,对于它的认识

  • Java private修饰符失效的原因

    失效之Java内部类 在一个内部类里访问外部类的private成员变量或者方法. public class OuterClass { private String language = "en"; private String region = "US"; public class InnerClass { public void printOuterClassPrivateFields() { String fields = "language=&quo

  • java中的各种修饰符作用及范围

    目录 访问修饰符 作用范围 静态修饰符的特点 静态使用的注意事项 静态的优缺点 当成员变量被静态修饰后,和非静态成员变量的区别 访问修饰符 private 缺省 protected public 作用范围 访问修饰符\作用范围 所在类 同一包内其他类 其他包内子类 其他包内非子类 private 可以访问 不可以 不可以 不可以 缺省 可以 可以 不可以 不可以 protected 可以 可以 可以 不可以 public 可以 可以 可以 可以 private 被private修饰的属性和方法,

  • Java中的访问修饰符详细解析

    1.类的修饰符分为:可访问控制符和非访问控制符两种. 可访问控制符是:公共类修饰符 public 非访问控制符有:抽象类修饰符 abstract :最终类修饰符 final 1 )公共类修饰符 public : Java 语言中类的可访问控制符只有一个: public 即公共的.每个 Java 程序的主类都必须是 public 类作为公共工具供其它类和程序使用的应定义为 public 类. 2 )抽象类修饰符 abstract :凡是用 abstract 修饰符修饰的类,被称为抽象类.所谓抽象类

  • Java中的private修饰符失效了?

    在Java编程中,使用private关键字修饰了某个成员,只有这个成员所在的类和这个类的方法可以使用,其他的类都无法访问到这个private成员. 上面描述了private修饰符的基本职能,今天来研究一下private功能失效的情况. Java内部类 在Java中相信很多人都用过内部类,Java允许在一个类里面定义另一个类,类里面的类就是内部类,也叫做嵌套类.一个简单的内部类实现可以如下 复制代码 代码如下: class OuterClass {     class InnerClass{   

  • 聊聊Java中的Native修饰符

    目录 Native修饰符的使用 native主要用于方法上 说明 举例 Native修饰的方法到底有什么用处 什么是NativeMethod 为什么要使用NativeMethod JVM怎样使NativeMethod跑起来 Native修饰符的使用 native主要用于方法上 1.一个native方法就是一个Java调用非Java代码的接口.一个native方法是指该方法的实现由非Java语言实现,比如用C或C++实现. 2.在定义一个native方法时,并不提供实现体(比较像定义一个Java

  • 浅谈java中的访问修饰符

    一. public:所有类都可以访问 protected:所有子类和同包下的类都可以访问 缺省:同包类都可以访问 private:类本身才可以访问 注意点:protected修饰类属性时,例如 复制代码 代码如下: package Parent; public class Parent{ protected int i=5; } package Son; public class Son extends Parent{ public static void main(String[] args)

  • Java正确使用访问修饰符的姿势

    目录 1.简介 2.访问修饰符 3.原则 总结 1.简介 访问修饰符是Java语法中很基础的一部分,但是能正确的使用Java访问修饰符的程序员只在少数.在Java组件开发中,如果能够恰到好处的使用访问修饰符,就能很好的隐藏组件内部数据和不必公布的实现细节,从而把组件API和实现细节隔离:正确的使用访问修饰符开发的Java组件,在组件与组件的调用和依赖过程中,也能很好的解耦程序,以至于整个组件能够持续开发.持续测试.持续更新. 小捌温馨总结: 通过限制访问范围达到信息隐藏或封装的效果,保证程序实现

  • java中string.trim()函数的作用实例及源码

    trim()的作用:去掉字符串首尾的空格. public static void main(String arg[]){ String a=" hello world "; String b="hello world"; System.out.println(b.equals(a)); a=a.trim(); //去掉字符串首尾的空格 System.out.println(a.equals(b)); } 执行结果: a: hello world ,false a:h

  • Java四种权限修饰符知识点详解

    Java中有四种权限修饰符 public protected (default) private 同一个类 yes yes yes yes 同一个包 yes yes yes no 不同包子类 yes yes no no 不同包非子类 yes no no no Warning:(default)并不是关键字"default",而是根本不写 知识点补充: Java语言4种访问权限修饰符 Java语言4种访问权限修饰符,但是仅有3个关键字,因为不写访问权限,在Java中被称为默认权限,或同包

  • vue中的事件修饰符once,prevent,stop,capture,self,passive

    目录 vue中的事件修饰符 1. once 2. prevent 3. stop 4. capture和self 5. passive与prevent相反 vue事件处理(修饰符) 事件修饰符 按键修饰符 系统修饰键 鼠标按钮修饰符 vue中的事件修饰符 1. once 只执行一次 <div v-on:click.once='alert("1")'></div> 只有在第一次点击时会执行,再次点击不会起作用 2. prevent 阻止默认程序,比如form表单中

随机推荐