【从零开始学习JAVA | 第十六篇】杂项知识点介绍

目录

前言:

包:

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语言。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

猜你喜欢

转载自blog.csdn.net/fckbb/article/details/131354032