目录
前言:
包:
final:
权限修饰符:
总结:
前言:
本文不隶属于正文序列,而是对面向对象中的一些常用词进行介绍,方便大家理解记忆,本文将会逐一介绍 什么是包,final,权限修饰符。
包:
在Java中,包(package)可以理解为一种组织代码的方式,它可以将相关类组织在一起,从而方便管理和使用。
一个包包含多个类,接口和其他包,其语法是:
package packagename;
其中packagename是包的名称,通常使用域名倒序排列。
例如,Java提供了java.lang包,这个包中包含了Java中最基础的类型和对象,例如String类、System类、Object类等。
在Java中,如果我们要使用一个包中的类或者接口,我们需要使用import语句将其导入到我们的代码中,例如:
import java.util.ArrayList;
import java.util.List;
上面的代码将Java的util包中的ArrayList和List类导入到了我们的代码中,我们就可以直接使用它们了。
在Java中,包的作用不仅仅是组织代码,它还可以控制访问权限,解决命名冲突等问题,是Java编程中一个非常重要的概念。
1. 控制访问权限
在Java中,包还可以用来控制访问权限。Java中有4种访问修饰符,它们分别是public、protected、default(也叫package-private)和private,它们表示不同的访问权限范围。使用包名可以将不同的类分组,从而控制对类、方法和变量的访问权限。
例如,我们有两个类A和B,A类在包com.example中,B类在包com.example.other中。如果我们想让B类中的方法只能在com.example.other包内部访问,应该给方法添加default访问修饰符,注意这里没有public、protected或private修饰符:
package com.example.other; public class B { void doSomething() { // do something } }
这样,其他包中的类就无法访问B类中的doSomething方法。
2. 解决命名冲突
在Java中,可能会出现同名的类,在同一个包或不同的包中都可能出现。为了解决这个问题,Java使用了包名加类名的方式来唯一确定一个类。
例如,假设我们有两个自定义类名都为Test,一个在包com.example.test1中,另一个在包com.example.test2中。我们如何在代码中访问这两个类呢?使用完整类名(包名加类名)即可:
com.example.test1.Test test1 = new com.example.test1.Test(); com.example.test2.Test test2 = new com.example.test2.Test();
这样就可以清楚地区分这两个同名的类了。
总之,包是Java中一个非常重要的概念,它可以用来组织代码,控制访问权限,解决命名冲突等问题,是Java编程中不可或缺的一部分。
final:
在Java中,final关键字可以用来修饰变量、方法和类,其作用主要有以下几点:
1. 修饰变量:
- final修饰基本类型的变量时,表示该变量的值不能被改变,即常量;
- final修饰引用类型的变量时,表示该变量的引用不能被改变,但其所引用的对象的内容是可以改变的。
例如:
final int a = 1; // 常量a
final String str = "hello"; // 常量str,不能再引用其他字符串了
final List<String> list = new ArrayList<>(); // 常量list,不能再引用其他List了
list.add("world"); // 可以改变list所引用的对象的内容
2. 修饰方法:
final修饰方法时,表示该方法不能被子类重写。
例如:
class A {
final void print() {
System.out.println("A");
}
}
class B extends A {
// 编译错误:'print()' cannot override 'print()' in 'A'
// overridden method is final
void print() {
System.out.println("B");
}
}
3. 修饰类:
final修饰类时,表示该类不能被继承。
例如:
final class A {
// ...
}
class B extends A { // 编译错误:cannot inherit from final 'A'
// ...
}
final关键字在Java中使用频率较高,可以用来保证常量的值不变,保证方法和类不被改变,从而保证代码的安全性和稳定性。常见的应用场景包括:
- 声明常量;
- 防止被覆盖的方法;
- 防止被继承的类;
- 为实例域提供初始值;
- 确定方法参数和返回值被不可更改。
权限修饰符:
在Java中,访问权限修饰符用于控制类、接口、方法、属性对其他代码的可见性,Java中有四种访问权限修饰符,它们分别是public、protected、default(也称为package-private)和private,下面对这四种修饰符进行详细介绍:
1. public
public是最广泛的访问权限修饰符,它表示被修饰的类、方法、属性可以被其他所有类的代码访问,即开放所有的权限。
2. protected
protected表示被修饰的方法、属性可以被当前类、同包内的类、继承当前类的子类访问,即受保护的权限。
3. default(也称为package-private)
default表示被修饰的类、方法、属性只能被当前包内的代码访问,即同包内的默认权限。
4. private
private表示被修饰的方法、属性只能被当前类内部的其他方法访问,即最高限制的私有权限。
访问权限修饰符可以用在以下几个地方:
- 类:public和default
- 成员变量:public、protected、default和private
- 构造函数:public、protected和default
- 成员方法:public、protected、default和private
- 接口:public和default
- 接口成员变量:public、static、final
- 接口成员方法:public、default、static和abstract
总结:
本文对我们面向对象编程中三个常见的知识点作了介绍,希望各位可以很好的理解这三个的定义,只有这样才可以更好的掌握JAVA语言。
如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!