Java学习路线(9)——包、权限、常量、枚举、抽象类、接口

这篇具有很好参考价值的文章主要介绍了Java学习路线(9)——包、权限、常量、枚举、抽象类、接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、包

概念: 用来分类代码功能,有利于程序的管理和维护。

建包格式: 【package 包路径】

包路径的格式规则: 英文小写以及具备意义,通常放在一个文件的第一
行。

导入程序包: 相同包下的类可以直接访问,不同包下的类必须导包。

导包格式: 【import 包名.类名】

导包注意事项: 导包默认只能导入一个包,当导入不同包的相同类名时,第二个包采用全名访问。


二、权限修饰符

概念: 是控制一个成员能够被访问的范围。

作用对象: 成员变量、方法、构造器、内部类,不同权限修饰符修饰的成员能够被访问的范围被限制。

权限类型: private -> 缺省 -> protected -> public

  • private: 同类可访问,不可被继承。
  • 缺省: 同包下可访问
  • protected: 同包或不同包的子类可访问,子类可继承。
  • public: 所有包下的所有类都可访问,子类可继承。

权限修饰的通用原则:
1、成员变量私有化。
2、方法公开化。
3、本类访问private。
4、本包与子类访问protected。


三、final关键字

概念: final翻译为最终的。

作用对象: 类、方法、变量

  • final类: 表明最终类,不可继承。
  • final方法: 表明最终方法,不可重写。
  • final变量: 表明常量,不可赋值。

作用场景: 不希望被修改成员的场景。

注意事项:
1、final修饰的基本数据类型,其数据值不变。
2、final修饰的引用数据类型,其地址值不变,数据值可变。


四、常量

概念: 使用了public static final 修饰的成员变量,必须初始化,而且执行过程中不可改变数据值。

作用: 用于系统配置信息,方便程序维护,同时提高程序可读性。

格式: 【public static final 数据类型 变量名 = 值】

常量命名规范

  • 英语单词全部大写
  • 多单词下划线连接

执行原理

  • 在编译阶段进行“宏替换”(就是C语言中的预编译),将使用的常量替换为字面量。
  • 优势在于执行性能与直接使用字面量相同,一处改动,处处改动。

实例:

public class Constant{
	public static final String SCHOOL_NAME = "xxx";
}

五、枚举

概念: 枚举是Java的一种特殊类型。

作用: 为了做信息的标志和信息的分类。

格式: 【修饰符 enum 枚举名称{ 枚举类实例名称列表 }】

特征

  • 枚举类都继承了java.lang.Enum类
  • 枚举是最终类,不能被继承
  • 构造器是私有的,枚举不对外创建对象
  • 枚举类第一行默认都是枚举对象的名称

六、抽象类

概念: Java中abstract翻译为抽象。

作用: 为了给子类提供相应的模板,因此创建了抽象类,具体实现交给子类完成。

作用对象: 类、成员方法

  • abstract类: 表示抽象类
  • abstract方法: 表示抽象方法

格式:

修饰符 abstract class 类名{
	修饰符	abstract 返回值类型 方法名称(形参列表);
}

特征和注意事项

  • 抽象类不能实例化。
  • 类有的成员,抽象类都具备。
  • 抽象类不一定有抽象方法,包含抽象方法的类一定是抽象类。
  • 抽象方法只有方法名,不声明方法体。
  • 一个类定义了抽象方法,则这个类必须声明为抽象类。
  • 一个类继承了抽象类,要么重写全部抽象方法,要么定义为抽象类。

设计模式(2):模版设计模式

  • 使用场景: 当一个功能多处开发,而功能的大部分代码相同,只有小部分内容不同的场景。
  • 实现步骤: 保留公共部分,其余可自定义部分声明为抽象方法,交于子类实现。
  • 注意事项: 模板方法使用final进行修饰,以避免子类直接重写方法,导致方法改变。
  • 示例:

模板类Student.java

public abstract class Student {
    /**
     * 公用方法
     * */
    public final void write(){
        System.out.println("这里是公共部分");
        System.out.println(writePrivate());
    }

    /**
     * 自定义方法
     * */
    
    public abstract String writePrivate();
}

子类StudentExtend.java

public class StudentExtend extends Student{
    private String content;
    @Override
    public String writePrivate() {
        return content;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}

测试类

		StudentExtend student = new StudentExtend();
        student.setContent("私有部分1");
        student.write();
        StudentExtend student2 = new StudentExtend();
        student2.setContent("私有部分2");
        student2.write();

测试结果

这里是公共部分
私有部分1
这里是公共部分
私有部分2

七、接口

概念: 接口是公开的规范。

关键字:interface

格式:

public interface 接口名{
	//常量;
	//抽象方法
}

使用方式:

  • 关键字:implements(用复数形式,是因为Java可以实现多接口)
  • 格式:
修饰符 class 实现类名 implements 接口1,接口2,...{
	实现代码...
}
  • 注意事项: 定义了多少个抽象方法,就必须实现多少个方法。

接口与接口之间的关系:多继承

接口多继承的作用: 规范合并,便于子类实现。

接口新增方法(JDK8往后版本):
允许接口直接定义具体实现方法。

  • 默认方法
    采用关键字 “default” 修饰方法
    注意: 接口的静态方法必须用本身的接口名调用。该类方法只能继承给子类进行使用,无法重写。
    以下是默认方法的格式:
default 返回类型 方法名(参数列表){
	方法体;
}
  • 静态方法
    访问默认使用public修饰,方法类型必须采用关键字 “static” 修饰
    注意: 接口的静态方法必须用本身的接口名调用。
    以下是静态方法的格式:
访问符 static 方法名(参数列表){
	方法体;
}
  • 私有方法(JDK1.9开始支持)
    实质是私有化实例方法,必须使用 private 修饰
    注意: 接口的静态方法必须用本身的接口名调用。私有化后只能在本类中被其它默认方法或私有方法访问。
    以下是私有方法的格式:
private 返回类型 方法名(){
	方法体;
}

接口注意事项
1、接口不能实例化(它自己就是抽象的)。
2、一个类多态实现接口,接口中的相同静态方法不冲突(反正都是共享的)。
3、一个类可以继承类同时实现接口,同名方法默认使用父类的。
4、一个类实现多个接口,同名默认方法不冲突,重写方法即可(重复了就干掉,自己写)。
5、一个接口可以继承多个接口,若发生规范冲突则不能多继承。文章来源地址https://www.toymoban.com/news/detail-461612.html

到了这里,关于Java学习路线(9)——包、权限、常量、枚举、抽象类、接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 全网最通俗易懂的JAVA抽象概念

    抽象类 和 抽象方法 是面向对象编程中的重要概念,用于实现抽象和继承的特性。 抽象类是 不能被实例化 的类,通常用作其他类的基类。 抽象方法是在抽象类中声明但没有具体实现的方法,需要在 子类中 实现具体的功能。 假设我们开了一个汽车玩具厂,现在要造 奔驰 和

    2024年02月11日
    浏览(35)
  • 一、枚举类型——常量特定方法

    Java 的枚举机制可以通过为每个枚举实例编写不同的方法,来赋予它们不同的行为。要实现这一点,你可以在枚举类型中定义一个或多个抽象方法,然后为每个枚举实例编写不同的实现,例如: ConstantSpecificMethod.java 运行结果如下: 注意:如果 CLASSPATH 和 JAVA_HOME 打印为 null,

    2024年02月09日
    浏览(29)
  • Java的抽象类 & 接口

    如果自下而上在类的继承层次结构中上移,位于上层的类更具有通用性,甚至可能更加抽象。从某种角度看,祖先类更加通用,人们只将它作为派生其他类的基类,而不作为想使用的特定的实例类。例如,考虑一下对 Employee 类层次的扩展。一名雇员是一个人,一名学生也是一

    2024年02月03日
    浏览(23)
  • TypeScript枚举:方便的常量定义方式

    在 TypeScript 中,枚举是一个非常重要的特性,它提供了一种方便的常量定义方式。在本文中,我们将详细探讨 TypeScript 枚举的用法和优势。 枚举是指 一组命名的常量 ,这些常量称为 枚举成员 。枚举可以在 TypeScript 中以类似于 C# 和 Java 的方式来定义,它们在 JavaScript 中被编

    2024年02月11日
    浏览(30)
  • JAVA-抽象类和接口

    文章目录 前言 1.1抽象类的概念 1. 2抽象类的语法 1.3抽象类的特性 1.3.1抽象类不能直接实例化对象 1.3.2抽象方法不能被private,final和static修饰 1.3.3 抽象类的子类要么也是抽象类,要么重写所有抽象方法 1.4抽象类的作用 2.1 接口的概念 2.2 语法规则 2.3 接口的使用  2.4 接口的特性

    2024年02月05日
    浏览(40)
  • 【JAVA】抽象类与接口

    作者主页:paper jie_的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将javaSE基础知识一网打尽,希望可以帮到读者们哦。 其他专栏

    2024年02月09日
    浏览(22)
  • Java 抽象类和接口

    登神长阶 第三阶 抽象类和接口 🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀 目录 🐕‍🦺 一.抽象类 🐱1.定义及其作用 🦌2.语法 🦙3.特性 🦏4.意义 🦛二.接口  🐀1.定义及其作用 🦦2.语法 🦘3.具体使用 🐰4.特性 🫏5.多个接口的实现 🐻‍❄️6.接

    2024年03月18日
    浏览(37)
  • 【Java】抽象类和接口

    在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的, 如果一个类中没有包含足够的信息来描绘一个具体的对象,那么这样的类就是抽象类 在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法

    2024年02月05日
    浏览(36)
  • Java——抽象类和接口

    目录 1.抽象类 1.概念: 2.语法  3.特性  2.接口   1.概念 2.语法  3.特性  在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是 抽象类 。 在这我们

    2024年04月12日
    浏览(35)
  • Java 基础进阶篇(三)—— 权限修饰符、final 关键字与枚举

    权限修饰符 用于约束成员变量、构造器、方法等的访问范围。 权限修饰符: 有四种作用范围由小到大 (private - 缺省 -protected - public) 注: 不同包下的子类指的是,不同包下的子类对象能访问,当前类创建父类对象访问不了。 定义成员变量、构造器、方法等一般需满足如下要

    2024年02月02日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包