欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > ⭐Java修饰符

⭐Java修饰符

2025/2/27 16:34:33 来源:https://blog.csdn.net/m0_74977981/article/details/143847433  浏览:    关键词:⭐Java修饰符

目录

引入

基本类型

修饰符

一、访问修饰符(Access Modifiers)

1.public

2.protected

3.默认,无修饰符

4.private

二、非访问修饰符(Non-Access Modifiers)

1.static

2.final

3.abstract

4.@Override


引入

基本类型

先前已经剖析过Java中的基本数据类型,再次回忆:

整数类型

  • byte:8位,范围从-128到127。
  • short:16位,范围从-32,768到32,767。
  • int:32位,范围从-231-1(大约-2.147亿到2.147亿)。
  • long:64位,范围从-263-1。

浮点类型

  • float:32位单精度浮点数。
  • double:64位双精度浮点数。

字符类型

  • char:16位Unicode字符。

布尔类型

  • boolean:表示true或false。

引用数据类型(Reference Data Types)

引用数据类型包括类(class)、接口(interface)、数组(array)等。对于引用数据类型,需要创建对象或数组来初始化它们。

  • 类对象
MyClass obj = new MyClass();
  • 数组
int[] intArray = new int[5]; // 创建一个包含5个整数的数组 String[] strArray = {"apple", "banana", "cherry"}; // 创建一个包含3个字符串的数组并初始化
  • 接口
List<String> list = new ArrayList<>(); // List是一个接口,ArrayList是它的一个实现

注意事项

  • 当使用基本数据类型时,如果你没有显式地初始化它们,它们会有一个默认值(例如,int的默认值是0,boolean的默认值是false)---【但是底层本质都可以理解为0】
  • 对于引用数据类型,如果没有初始化,它们的默认值将是null
  • 在初始化数组时,可以指定数组的大小(对于基本数据类型数组)或直接在声明时提供初始值(对于所有类型的数组)。
  • 对于类对象,则需要使用new关键字来创建对象实例。

有了以上概念后,引入另一种“修饰”数据类型的符号,即修饰符。

修饰符

修饰符(Modifiers)是用于改变类、方法、变量、接口等元素的行为和可见性的关键字。这些修饰符主要分为两大类:访问修饰符(Access Modifiers)和非访问修饰符(Non-Access Modifiers)。

一、访问修饰符(Access Modifiers)

访问修饰符是Java等编程语言中用于控制类、字段、方法和构造函数的访问权限的关键机制。简单而言,就是你创建了一个数据类型之后,你希望它的状态是怎么样的,你想不想它能够被其他类访问或是你允不允许这个数据或方法能够被子类继承等等。

1.public

访问权限:任何地方都可以访问。(一个公开修饰

应用对象:类、方法、变量等。

使用场景:当一个类、方法或变量需要被任何其他类或包访问时。

public的应用十分广泛,比如封装一个工具类时,就会应用public来修饰类里面的类、方法、变量:

示例:一个链表的节点创建类:

public class Node {public int data;public Node next;public Node() {//一个空的构造函数,当没有传参调用Node()时,就会默认调用这里//在这个类中,表示生成一个data为0,指向为null的节点}public Node(int value) {data=value;//传参后默认这一项}//重写toString方法@Overridepublic String toString() {return (this.next == null) ?  this.data + " " :  this.data + " " + this.next.toString();}}

可以调用试试:

public class Main {public static void main(String[] args) {Node node1=new Node(1); //这里表示生成一个节点,data值为1,next指向nullNode node2=new Node();//这里表示生成一个节点,data值为0(因为调用了空的构造器方法,被初始化为0),next指向nullnode1.next=node2;//将node1和node2链接起来System.out.println(node1.toString()); 打印这一条数组}
}

不出所料,输出结果为:

2.protected

访问权限:可以被同一包内的类访问,也可以被不同包中的子类访问

应用对象:类成员(方法、变量等),注意类本身不能protected修饰

使用场景:当希望成员能够在同一个包中访问,或者只允许子类访问时。

3.默认,无修饰符

访问权限:只能被同一包内的类访问

应用对象:类、方法、变量等。

使用场景:当希望类或成员只能在包内使用时。

4.private

访问权限:只能被定义它们的类内部访问--决定了它们不能够被继承的特性

应用对象:类成员(方法、变量等),注意类本身不能private修饰

使用场景:当希望某个类的成员对外部完全隐藏,只允许在类内部使用时。

二、非访问修饰符(Non-Access Modifiers)

1.static

作用:表示类成员(方法、变量)属于类本身,而不是属于类的某个实例。

应用对象:类成员(方法、变量)、代码块。

使用场景:常用于定义工具类中的方法或变量,以及类的静态变量和静态代码块。

【相当于被建造出来的零件,被多次调用时,只会初始化一次,可以直接"类名.静态方法",而不用被限制"new对象后才能使用"】

2.final

作用:表示常量(变量),或不可被重写的方法,或不可被继承的类。

应用对象:类、方法、变量、接口中的方法(Java 8及以后,接口中的默认方法也可以用final修饰,但意义不大,因为默认方法已经是具体实现了)。

使用场景:当希望某个变量的值在初始化后不能被修改,或某个方法不允许被子类重写,或某个类不允许被继承时。

3.abstract

作用:表示抽象类或抽象方法。抽象类不能被实例化,抽象方法没有具体实现由子类去实现

应用对象:类、方法。

使用场景:在面向对象编程中,抽象类和方法用于定义类的模板或接口,而具体的实现由子类提供。

4.@Override

作用:表示当前方法是重写父类的方法。这是一个注解(Annotation),而不是传统的修饰符,但它也用于修改方法的行为。

应用对象:方法。

使用场景:在子类中重写父类的方法时,使用@Override注解可以确保正确地重写了父类的方法

总结,Java中的修饰符种类繁多,以上给出几个最常用的基本类型。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词