网站首页 > java教程 正文
声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。
简单工厂:隐藏子类创建
1.我们不想依赖子类
2.需要面向父类编程
优点:
1.可以随意更改子类实现
2.升级和扩展
3.如果需要延伸特殊功能,我们可以申请接口
例题:图表:
1.柱状图
2.饼形图
3.折线图
它的整个图形用的是工厂模式去做的,不管什么图它只是制作方法而已,把饼形图、柱状图、折线图看做产品,然后申请一个图表类。
先把图表的功能申请好,至于这个接口下面有多少个产品无所谓。
然后创建一个图表工厂,申请一个创建图标方法。通过创建图表方法把不同的图表创建出来。好处:今后不同的图表发生升级,扩展时,通过工厂模式来解决不更改原有的代码的问题。
从设计角度:万事万物皆接口。(在生活中任何东西我们依赖的只是它们的功能,就是在生活中没有依赖实现只是依赖功能,因为我们依赖它们的功能今后便于更换、升级。万事万物皆接口,就是不管做什么编程,都形成接口,面向于接口编程。面向接口编程就是面向父类编程,让实现类去实现接口里面的方法)
注意:申请了接口一定要面向接口编程。(申请了接口要用接口来做类型,不能拿子类来做类型,不然申请了接口就没有意义了。就是要面向父类编程)
包:包就是文件夹。
类存放在包下,需要在类的前面写上package书写所属包下。
包+类名是类的全名。
如何访问其他包操作类:
1.全名(包+类名)
2.引包(import com.kaige123.Student)
引同一个包很多类的话,可以使用(import com.kaige123.*;)但是优先级比较低。
优先级:
1.先看(import com.kaige123.Student)
2.本包中搜索( Student )
3.找不到再去(import com.kaige123.;)
每个类都一个自动引入的包,import.java.lang.;所以优先级很低。
每个包都有跟系统重名的,可以使用两种方式避免这种问题:
1.写上全名 包+类名是类的全名
2.写上import 优先级比较高
以后声明类名的时候别使用系统类名,这样会出很多问题。
包的命名(全小写):
1.com开头 表示公司
2.org 开头 表示协会
公司或者协会(模块命名)
包的创建:
例题:跨包访问其他类。
1.把全名写全。
2.在类的前面,包的后面引入包(import)
3.import com.kaige123.*; 把包下面的类全部引入进来。
优先级例题1.:应用的是B包中的Student类
因为import com.kaige123.b.Student 优先级高
例题2:应用的是a包下的Student,它的优先级很低。
它先去搜索直接的引用,然后去所搜其他的引用,再去搜索(*)的引用,找不着说明没有此类。或者接口。
例题3:申请一个String类,没有运行的标志。
问题出现在String类上,在java中String类有一个自动引入的包,它的优先级很低。它引用的是Test1下面的String类,所以导致没有办法运行main方法。
解决方法:1.声明(重新引入系统String类)
解决方法:2.写上全名
静态方法引用:import static com.kkk.*;(没什么用)
系统包:
java.lang 系统类的包(String Integer Byte System)
Java.util 集合 时间
Java.aet 图形化
Javax.swing 最新的图形化
Java.spl 数据库
Java.net 网络
java.sql 数据源
Java.io 流
猜你喜欢
- 2024-10-20 使用idea将Java项目打成Jar包,之后生成exe可执行文件
- 2024-10-20 Java并发包,你需要掌握的atomic(java并发实现原理)
- 2024-10-20 一款易于使用的Java验证码软件包(javaee验证码)
- 2024-10-20 Java 覆盖 jar 包内的方法(java覆盖第三方jar中类文件)
- 2024-10-20 都说Java程序占内存多,那么Java对象究竟占多少内存?
- 2024-10-20 JAVA学习笔记之导包(java中的导包命令是哪个)
- 2024-10-20 简单介绍Java 的JAR包、EAR包、WAR包区别
- 2024-10-20 Java juc包学习笔记(java的juc包)
- 2024-10-20 Java带包结构调用命令行运行编译(java怎么使用包)
- 2024-10-20 Java并发包-atomic包-让您彻底掌握AtomicInteger源码
你 发表评论:
欢迎- 07-21如何将 iPhone 中的联系人导出到 Excel/CSV?
- 07-21sql查询的字段数据中有逗号。放到csv文件会分开,如何解决?
- 07-21在 WebAPI 里生成 csv zip 文件(webapi怎么发布在iis上)
- 07-21如何把csv格式转换成Excel格式(csv格式怎么转换)
- 07-21如何将高程导出为XYZ或CSV高程点(如何将高程数据导入cad)
- 07-21使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)
- 07-21解决PHP导出CSV文件中文乱码问题(php导出excel文件)
- 07-21使用vba将Excel 文件转成 CSV 文件
- 最近发表
-
- 如何将 iPhone 中的联系人导出到 Excel/CSV?
- sql查询的字段数据中有逗号。放到csv文件会分开,如何解决?
- 在 WebAPI 里生成 csv zip 文件(webapi怎么发布在iis上)
- 如何把csv格式转换成Excel格式(csv格式怎么转换)
- 如何将高程导出为XYZ或CSV高程点(如何将高程数据导入cad)
- 使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)
- 解决PHP导出CSV文件中文乱码问题(php导出excel文件)
- 使用vba将Excel 文件转成 CSV 文件
- python爬虫25 | 爬取的数据怎么保存?CSV了解一下
- MySQL 导出数据(mysql 导出数据 判断成功)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)