![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面向对象
文章平均质量分 81
王小小鸭
愿世间再无bug!
展开
-
简单工厂模式、工厂模式、抽象工厂模式和加入反射、配置优化后的抽象工厂模式之间的关系和区别
工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。简单工厂模式和改进版抽象工厂(简单+抽象)都存在不符合开闭原则的问题,而。多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。一个抽象产品类,可以派生出多个具体产品类。一个抽象工厂类,可以派生出多个具体工厂类。一个抽象工厂类,可以派生出多个具体工厂类。原创 2022-11-17 21:00:31 · 364 阅读 · 2 评论 -
代码运行出现了堆栈溢出错误及解决方法
将对象预先创建并初始化后放入对象池中,对象提供者就能利用已有的对象来处理请求,减少频繁创建对象所占用的内存空间和初始化时间。创建了一个对象池模式(Object Pool Pattern),是。使用时直接从对象池中调用即可,这样就不会出现堆栈溢出的错误啦!形成了一个完整的闭环,不停地循环,超出了堆栈空间,造成了溢出。原创 2022-08-22 08:56:23 · 3243 阅读 · 0 评论 -
优化方案及实现
测试人员在测试过后提出要求:当前代码无限制,注册会出现无限长的用户名和密码的问题,要添加限制条件使其合理化。改进方法:通过引入方法工具类TSUtility中的readKeyBoard方法,limit限制长度 成功!原因:While语句位置错误,放到if(s == '2' || s=='3')外面,导致输入匹配失败后(此时s=4)不会跳出该if语句进入下一个if语句匹配解决方法:将while语句放到该if语句里面,这样就能在匹配完if(s == '2' || s=='3')发现匹配失败退出该语句进入if( s原创 2022-07-11 08:58:43 · 97 阅读 · 0 评论 -
遇到的问题及解决方法
如图所示,在编写判断当前团队程序员数量时,判断语句!(team[i] instanceof Architect)内部报错,提示“Inconvertible types; cannot cast 'Project.team.domain.Programmer' to 'Project.team.domain.Architect'”,翻译过来就是 “不可转换类型;无法将“Project.team.domain.Programme原创 2022-07-11 08:47:17 · 4078 阅读 · 0 评论 -
实现一个项目开发团队分配管理软件思路及过程
做一个项目之前首先要知道做什么?实现什么功能?得到什么效果?然后再理思绪以及怎么做,慢慢来,一口吃不成个胖子,切忌一上来就动手做,简单的代码还好,一旦代码更多更复杂进行到后面就很容易乱成一锅粥,所以我们要清楚项目开发流程:1.初步了解需求有利于构建初步框架,然后用相关的工具软件列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块;2.系统分析深入了解和分析需求,根据自己的经验和需求用W再做出一份文档系统的功能需求文档,清楚列出系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界原创 2022-07-07 19:21:21 · 338 阅读 · 0 评论 -
时间戳的拓展及应用实例
近期学习遇到的一些应用实例可以用时间戳来解决,而获取时间戳有以下三种方式,推荐使用System类来获取时间戳,下面一起看一看三种方式:1.System.currentTimeMillis()System类中的currentTimeMilis()方法是三种方式中效率最好的,运行时间最短。开发中如果设计到效率问题,推荐使用此种方式获取。2.new Date().getTime()除了System类,使用量很大的应该就是Date类了,开发中如果涉及到日期的首先会想到Date,但date类中获取时间戳并不是最有原创 2022-07-01 11:15:18 · 831 阅读 · 0 评论 -
Date类中日期转成指定字符串出现的问题及解决方法
在学习Date内容时跟着做练习,结果老是报错,我寻思着代码也没错鸭,难道是我导的包不正确,反反复复查错找问题都确认代码没问题,那问题出在哪里?我陷入了沉默……好在在我火眼金睛的加持下终于找到,上面的11:20:00用的英文输入法的冒号,下面时分秒用的是中文输入法的冒号,自然匹配不了,日期和模式必须一一对照 改正成英文输入法后成功编译运行 sdf2.parse(ss); 快速补全 Ctrl+lt+v//ParseException 报错,解析异常 解决的快捷键 Alt+Enter,默认原创 2022-07-01 10:57:22 · 618 阅读 · 0 评论 -
常用API类及异常体系
应用程序接口(英语:Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。API主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提供API所定义的功能的软件称作此API的实现。API是一种接口,故而是一种抽象。1、Math类概述2、Math中方法的调用方式3、Math类的常用方法实例:1.2 System(应用)System中代表程序所在系统,提供了对应的一些系统属性原创 2022-06-30 17:24:48 · 265 阅读 · 0 评论 -
近期遇到的比较方法
做题遇到了一些比较的内容,来做一些总结例题是:定义一个接口用来实现两个对象的比较。interface CompareObject{public int compareTo(Object o); //若返回值是 0 , 代表相等; 若为正数,代表当前对象大;负数代表当前对象小}定义一个Circle类,声明redius属性,提供getter和setter方法定义一个ComparableCircle类,继承Circle类并且实现CompareObject接口。在ComparableCircle类中给原创 2022-06-28 15:24:41 · 513 阅读 · 1 评论 -
抽象类和接口
当我们在做子类共性功能抽取时,有些方法在父类中并没有具体的体现,这个时候就需要抽象类了!在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类!抽象类和抽象方法必须使用 abstract 关键字修饰 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类抽象类不能实例化抽象类如何实例化呢?参照多态的方式,通过子类对象实例化,这叫抽象类多态抽象类的子类要么重写抽象类中的所有抽象方法要么是抽象类成员的特点成员变量既可以是变量也可以是常量构造方法空参构造有参构造原创 2022-06-28 09:06:26 · 241 阅读 · 0 评论 -
重载和重写
简单来说就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者重载方法方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载。1)多个方法在同一个类中2)多个方法具有相同的方法名3)多个方法的参数不相同,类型不同或者数量不同下面的程序哪个和show()方法重载()?**A、C、D**方法重载特点:*重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式*重载仅针对同一个类中方法的名称与参数进行识原创 2022-06-25 22:50:32 · 622 阅读 · 0 评论 -
面向对象三大特征之多态
同一个对象,在不同时刻表现出来的不同形态 - 要有继承或实现关系 - 要有方法的重写 - 要有父类引用指向子类对象1.定义不同---重载是定义相同的方法名,参数不同;重写是子类重写父类的方法。2.范围不同---重载是在一个类中,重写是子类与父类之间的。3.多态不同---重载是编译时的多态性,重写是运行时的多态性。4.返回不同---重载对返回类型没有要求,而重写要求返回类型,有兼容的返回类型。5.参数不同---重载的参数个数、参数类型、参数顺序可以不同,而重写父子方法参数必须相同。6.修饰原创 2022-06-25 22:17:34 · 151 阅读 · 0 评论 -
面向对象三大特征之继承
实现继承的格式继承通过extends实现格式:class 子类 extends 父类 { }举例:class Dog extends Animal { }继承可以让类与类之间产生关系,子父类关系,产生子父类后,子类则可以使用父类中非私有的成员。提高了代码的维护性(如果方法的代码需要修改,修改一处即可)继承让类与类之间产生了关系,类的耦合性增强了,当父类发生变化时子类实现也不得不跟着变化,削弱了子类的独立性使用继承,需要考虑类与类之间是否存在is..a的关系,不能盲目使用继承is..a的关系:谁是谁的一种,例原创 2022-06-25 22:16:46 · 148 阅读 · 0 评论 -
String类学习
String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。String 类在 java.lang 包下,所以使用的时候不需要导包!字符串不可变,它们的值在创建后不能被更改虽然 String 的值是不可变的,但是它们可以被共享字符串效果上相当于字符数组( char[] ),但是底层原理是字节数组( byte[] )常用的构造方法通过构造方法创建通过 new 创建的字符串对象,每一次 ne原创 2022-06-24 16:28:35 · 486 阅读 · 1 评论 -
面向对象三大特征之封装
封装1. 封装概述 是面向对象三大特征之一(封装,继承,多态) 是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的2. 封装原则 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问 成员变量private,提供对应的getXxx()/setXxx()方法3. 封装好处 通过方法来控制成员变量的操作,提高了代码的安全性 把代码用方法进行封装,提高了代码的复用性2......原创 2022-06-24 11:03:00 · 385 阅读 · 0 评论 -
浅谈面向对象理解
本周学习了面向对象中的基础知识,一开始只是学习基础概念,对其中的理解并不深入,学习很吃力,后来在老师和同学的讲解下试着理解,现在将理解整理如下:万物实体皆可为对象,类则是具有具有共同属性和行为的事物的抽象。 类是抽象的对象,对象是实体化了的类 属性:在类中通过成员变量来体现(类中方法外的变量) 行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)类的定义步骤://定义类public class Phone { //编写类的成员变量 String b原创 2022-05-26 17:11:21 · 140 阅读 · 0 评论 -
面向对象进阶
对象内存图(单个):成员变量都具有默认值,同数组默认值规则栈内存(存储局部变量)定义在方法中的变量,例如:arr使用完毕,立即消失堆内存存储new出来的内容(实体,对象)数组在初始化时,会为存储空间添加默认值数组在初始化时,会为存储空间添加默认值整数:默认值0浮点数:默认值0.0布尔值:默认值false字符:默认值是空字符引用数据类型(String):默认值是null每一个new出来的东西都有一个地址值使用完毕,会在垃圾回收器空闲时被回收对象内存..原创 2022-05-24 20:55:03 · 90 阅读 · 0 评论 -
类和对象相关
什么是对象和类?万物皆对象,客观存在的事物皆为对象类:类是对现实生活中一类具有共同属性和行为的事物的抽象对象:是能够看得到摸的着的真实存在的实体类是对象的抽象对象是类的实体属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值行为:对象能够执行的操作类的特点:类是对象的数据类型 类是具有相同属性和行为的一组对象的集合比如手机这个概念是一个类,因为手机具有共同属性:内存多少、屏幕大小、价格高低、品牌……也有共同行为:可以接打电话、可以收发短信、可以听音乐……原创 2022-05-24 15:00:25 · 91 阅读 · 0 评论