力扣Hot100-final关键字,常量,抽象类(模板方法设计模式),接口

devtools/2024/10/18 11:42:58/

(一)final关键字

(2)常量

使用static final 修饰的成员变量被称为常量

作用:;通常用于记录系统的配置信息

注意:产量命名要求:单词大写,下划线连接多个单词

产量优势:

1.代码可读性好,可维护性高

(三)抽象类(abstract)

使用关键字abstract修饰的类,方法叫抽象类,抽象方法

注意:抽象方法必须在抽象类中实现

public abstract class A{

//抽象方法:必须abstract 修饰,只有方法签名,不能有方法体

public abstrct void test();  //这里不能加{  。。。}等方法体

}

(四)抽象类的常见应用场景:模板方法设计模式  (面试,笔试,源码中会出现)

(1)场景:学生,老师都要写一篇作文:神经网络         第一段,最后一段相同 正文不同

未使用abstract时的学生类和老师类:

学生类:

package Day2_Abstract;public class Students {public void print(){System.out.println("\t\t《神经网络》");System.out.println("\t\t 包括卷积神经网络,循环神经网络等" );System.out.println("实现过程包括:数据预处理,模型搭建,模型训练,模型评估,结果分析等~");System.out.println("神经网络对我们的生活影响巨大!!!");}
}

老师类:

package Day2_Abstract;public class Teacher {public void print(){System.out.println("\t\t《神经网络》");System.out.println("\t\t 包括卷积神经网络,循环神经网络等" );System.out.println("常与PCA,决策树等方法结合使用");System.out.println("神经网络对我们的生活影响巨大!!!");}
}

(2)使用抽象类后:先定义一个共有的父类:

package Day2_Abstract;public abstract  class Father {/*设计模板方法设计模式1.定义一个模板方法:.* */public void print(){System.out.println("\t\t《神经网络》");System.out.println("\t\t 包括卷积神经网络,循环神经网络等" );//2:模板方法并不清楚正文部分怎么写,但是它知道子类中要写,所以设计为一个抽象方法printmain();System.out.println("神经网络对我们的生活影响巨大!!!");}//3定义一个抽象方法写正文,具体实现交给子类public abstract void printmain();
}

学生类:

package Day2_Abstract;public class AbstractStudent extends Father{@Overridepublic  void printmain(){System.out.println("实现过程包括:数据预处理,模型搭建,模型训练,模型评估,结果分析等~");}
}

老师类:

package Day2_Abstract;public class AbsractTeacher extends  Father{@Overridepublic void printmain(){System.out.println("常与PCA,决策树等方法结合使用");}
}

进行测试test:

package Day2_Abstract;public class test {public static void main(String[] args) {//target:搞清楚抽象类的应用场景之一:设计模板方法模式//场景:学生,老师都要写一篇作文:神经网络//第一段,最后一段相同  正文不同Father s=new AbstractStudent();s.print();}
}

(四)接口

(1)接口中只能有成员变量和成员方法

(2)接口中成员变量默认是 常量

(3)接口中成员方法默认为抽象方法

public interface 接口名{

成员变量(常量)

//成员方法(抽象方法)

}

注意:接口不能被创建对象,接口是用来被类实现(implements)的,实现接口的类称为实现类

(4)实现类格式:

修饰符 class 实现类 implements 接口1,接口2,接口3,...{

}

(5)一个类可以实现多个接口,实现类实现多个接口,必须重写完全接口的全部出现方法,否则实现类需要定义为抽象类

定义一个接口B,C:

package Interface.example;public interface B {void testb1();}
package Interface.example;public interface C {void testc1();}

实现类D:

package Interface.example;
//实现类
public class D implements B,C{
//未重写时会报错,Alt+回车 再回车即可实现重写@Overridepublic void testb1() {}@Overridepublic void testc1() {}
}

Test方法:

package Interface.example;public class Test1 {public static void main(String[] args) {//可以用实现类D来创建对象D d=new D();d.testb1();}
}


http://www.ppmy.cn/devtools/97078.html

相关文章

在Go中过滤范型集合:性能回顾

在一个真实的 Golang 场景中使用泛型&#xff0c;同时寻找与 Stream filter(Predicate<? super T> predicate)和 Python list comprehension 等同的函数。我没有依赖现有的包&#xff0c;而是选择自己写一个过滤函数&#xff0c;以达到学习的目的 func filterStrings(c…

深入理解 Go 并发原语

1. goroutine 基础知识 1.1 进程 进程&#xff08;process) 是一个程序的实例&#xff0c;具有某些专用资源&#xff0c;如内存空间、处理器时间、文件句柄&#xff08;例如&#xff0c;Linux 中的大多数进程都有 stdin、stdout 和 stderr) 和至少一个线程。我们称其为实例&am…

基于FPGA的ASIC prototype验证

在当今快速发展的电子设计自动化&#xff08;EDA&#xff09;领域&#xff0c;专用集成电路&#xff08;ASIC&#xff09;的开发因其高性能、低功耗和定制化的特点而备受青睐。然而&#xff0c;ASIC的设计和制造过程不仅成本高昂&#xff0c;而且周期漫长&#xff0c;一旦进入生…

物联网(IoT)详解

物联网&#xff08;IoT&#xff09;详解 1. IoT定义简介2. IoT工作原理3. IoT关键技术4. 物联网与互联网区别5. IoT使用场景6. 开源物联网平台7. 参考资料 1. IoT定义简介 首先第一个问题&#xff0c;什么是物联网&#xff08;IoT&#xff09;? 物联网&#xff08;英文&#…

文件长度超出芯片容量, 超出部份将被忽略!ch341a编程器报错解决方法

出现这个错误提示&#xff0c;说明你正在刷的是华硕主板的cap格式BIOS文件。 编程器不支持这种文件&#xff0c;需要转换成编程器专用版本BIOS文件。 华硕cap格式BIOS转编程器bios文件&#xff0c;转换工具下载地址&#xff1a;https://download.csdn.net/download/baiseled/88…

【Git】克隆并push远程指定分支

克隆并push远程指定分支 可通过 git branch --list查询分支 克隆指定分支git clone -b <指定分支名> <远程仓库地址> 切换分支git checkout <指定分支名> 上传文件: git add .git commit -m "提交信息"git push -u origin <指定分支名&…

斯坦福UE4 C++课学习补充22:AI行为树-寻路入门

文章目录 一、创建敌对小兵二、寻路行为树三、会与角色保持距离的小兵四、更智能的小兵 一、创建敌对小兵 创建SAICharacter&#xff08;角色&#xff09;和SAIController两个类&#xff08;行为树&#xff09;&#xff0c;然后在UE中创建蓝图类。寻路系统&#xff1a;用于为人…

Linux时间日期指令

目录 date指令-显示当前日期 基本语法 应用实例 date指令- 设置日期 基本语法 应用实例 cal指令 基本语法 应用实例 date指令-显示当前日期 基本语法 中间的减号是分隔符。 应用实例 也可以不写减号&#xff0c;显示的时候就不会显示减号 。 date指令- 设置日期 基…