java中的类修饰符、成员变量修饰符、方法修饰符

简介: 类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。 abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现(抽象方法)。

类修饰符:

public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。

abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现(抽象方法)。

final,将一个类生命为最终(即非继承类),表示他不能被其他类继承。

friendly,默认的修饰符,只有在相同包中的对象才能使用这样的类。

 

说明:对于顶级类(外部类)来说,只有两种修饰符:public和默认(default)。因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置。因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:public和默认(default)。

如果类使用了private修饰符,说明是个内部类。内部类的上一级是外部类,那么对应的有四种访问控制修饰符:本类(private),同包(default),父子类(protected),任何位置(public)。当一个内部类使用了private修饰后,只能在该类的外部类内部使用。

 

1 package xiushi;
2 
3 class Test1 {
4     
5     private  class a1{
6         //这个就是一个内部类
7     }
8 }

 

成员变量修饰符:

public(公共访问控制符),指定该变量为公共的,他可以被任何对象的方法访问。

private(私有访问控制符)指定该变量只允许自己的类的方法访问,其他任何类(包括子类)中的方法均不能访问。

protected(保护访问控制符)指定该变量可以别被自己的类和子类访问。在子类中可以覆盖此变量。

friendly ,在同一个包中的类可以访问,其他包中的类不能访问。

final,最终修饰符,指定此变量的值不能变。

static(静态修饰符)指定变量被所有对象共享,即所有实例都可以使用该变量。变量属于这个类。

transient(过度修饰符)指定该变量是系统保留,暂无特别作用的临时性变量。

volatile(易失修饰符)指定该变量可以同时被几个线程控制和修改。

 

说明:静态变量与实例变量的区别

1:在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。

2:在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

 

方法修饰符

public(公共控制符)

private(私有控制符)指定此方法只能有自己类等方法访问,其他的类不能访问(包括子类)

protected(保护访问控制符)指定该方法可以被它的类和子类进行访问。

final,指定该方法不能被重载。

static,指定不需要实例化就可以激活的一个方法。

synchronize,同步修饰符,在多个线程中,该修饰符用于在运行前,对他所属的方法加锁,以防止其他线程的访问,运行结束后解锁。

native,本地修饰符。指定此方法的方法体是用其他语言在程序外部编写的。

 

 

 

欢迎大家一起说出自己的想法。
相关实践学习
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
3天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
28 3
|
5天前
|
存储 Java
Java动态转发代理IP的实现方法
Java动态转发代理IP的实现方法
21 11
|
6天前
|
Java
Java接口中可以定义哪些方法?
【4月更文挑战第13天】
9 0
Java接口中可以定义哪些方法?
|
7天前
|
Java 编译器
Java Character 类
4月更文挑战第13天
|
8天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
12天前
|
Java Shell
Java 21颠覆传统:未命名类与实例Main方法的编码变革
Java 21颠覆传统:未命名类与实例Main方法的编码变革
13 0
|
16天前
|
Java
Java中的多线程实现:使用Thread类与Runnable接口
【4月更文挑战第8天】本文将详细介绍Java中实现多线程的两种方法:使用Thread类和实现Runnable接口。我们将通过实例代码展示如何创建和管理线程,以及如何处理线程同步问题。最后,我们将比较这两种方法的优缺点,以帮助读者在实际开发中选择合适的多线程实现方式。
22 4
|
3月前
|
存储 Java 数据库连接
Java 编程问题:七、Java 反射类、接口、构造器、方法和字段4
Java 编程问题:七、Java 反射类、接口、构造器、方法和字段
24 0
|
8月前
|
安全 Java 开发者
【Java|多线程与高并发】JUC中常用的类和接口
JUC是Java并发编程中的一个重要模块,全称为Java Util Concurrent(Java并发工具包),它提供了一组用于多线程编程的工具类和框架,帮助开发者更方便地编写线程安全的并发代码。
|
8月前
|
Java
java泛型:泛型类,泛型接口,泛型方法,泛型集合
java泛型:泛型类,泛型接口,泛型方法,泛型集合