实例化

abstract关键字

只谈情不闲聊 提交于 2019-12-04 18:17:29
可以修饰类 方法 abstract修饰类:抽象类   此类不能实例化     抽象类中一定有构造器,便于子类实例化时调用 修饰方法:   抽象方法   没有方法体 abstract不能用来修饰私有方法、静态方法、final的方法、final的类    来源: https://www.cnblogs.com/ergePython/p/11877035.html

Spring源码解析之@Configuration

北城余情 提交于 2019-12-04 18:16:43
@Configuration简介 用于标识一个类为配置类,与xml配置效果类似 用法简介 public class TestApplication { public static void main(String args[]) { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); } } @Configuration public class AppConfig { @Bean public A a(){ return new A(); } @Bean public B b(){ return new B(); } } public class A { public A(){ System.out.println("Call A constructor"); } } public class B { public B(){ System.out.println("Call B constructor"); } } 上面的例子应该是@Configuration最普遍一种使用场景了,在@Configuration class下面配置@Bean method,用于想Spring Ioc容器注入bean.但其实我们把AppConfig的

JAVA知识总结(二):封装

家住魔仙堡 提交于 2019-12-04 15:22:06
时隔近一年,我突然想起来这个文章还没有发完,所以就继续开始写。也不知道自己上次写到哪里了,不管了这里从面向对象的三个特性说起。 类和对象 在这之前,我们先了解什么是对象,已经什么是面向对象?对象:万物皆对象,现实中实际存在的事物都可以看成一个对象。而面向对象就是人在关注对象, 关注事物的信息。那什么是类?类就是模子,通常用于确定对象将会拥有的特征(属性)和行为(方法)。也就是说对象是类的具体存在,而类则是对象的抽象化。苹果是一个类,你手里拿的苹果就是一个实例化的对象。 刚才说了对象具有属性和方法,那么属性和方法又是什么呢?属性就是对象具有的各种静态特征,通常用来说明对象有什么;而方法就是说明对象具有的各种动态行为,也即对象能做什么。 假如我有一辆吉普车,它的颜色,价格,型号就是属性;而它能加速,减速,停止就是具有各种方法。 创建类的一般步骤为:创建类==》实例化对象==》书写具体的逻辑。 通常我们在书写类的时候,都需要遵循单一职责原则(单一功能原则),也就是说 一个类应该有且只有一个引起功能变化的原因。如果在一个类当中承担的功能越多,那么它的交融,耦合性就越高,被复用的可能性就越低。特别是因为耦合度高,可能会因为一个职责的变化,引起其他职责的变化,进而影响整个程序的运行,这一点是我们所不想看到的。 实例化对象的过程可以分为三步:声明对象,实例化对象,将两者进行绑定

Python面向对象 | 抽象类和接口类

ぐ巨炮叔叔 提交于 2019-12-04 15:10:57
一 、抽象类 ( 规范的编程模式 ) 什么是抽象类   抽象类是一个特殊的类,它的特殊之处在于 只能被继承,不能被实例化 。抽象类的本质还是类,指的是一组类的相似性,而接口只强调函数属性的相似性。 为什么要有抽象类   如果说类是从一堆对象中抽取相同的内容而来的,那么抽象类就是从一堆类中抽取相同的内容而来的,内容包括数据属性和函数属性。 抽象类是介于类和接口之间的一个概念,同时具备类和接口的部分特性, 可以用来实现归一化设计。 在python中,并没有接口类这种东西,即便不通过专门的模块定义接口,我们也应该有一些基本的概念 从设计角度去看,如果类是从现实对象抽象而来的,那么抽象类就是基于类抽象而来的。 从实现角度来看,抽象类与普通类的不同之处在于:抽象类中有抽象方法,该类不能被实例化,只能被继承, 且子类必须实现抽象方法 。这一点与接口有点类似,但其实是不同的,即将揭晓答案 抽象类 就是制定一个规则,让其他人按照我的规则写程序。 约定俗称规范,但是有人不按照这个执行。 归一化设计 强制指定规范. 写一个抽象类: from abc import ABCMeta,abstractmethod 需要用到abc模块,在这个类创建的时候指定 metaclass = ABCMeta 在你希望子类实现的方法上加上 @abstramethod 装饰器 举例,支付宝和qq支付,统一支付方式

类的初始化和实例化

别等时光非礼了梦想. 提交于 2019-12-04 13:32:08
转:java面试题之类的初始化和实例化 2019-06-13 17:03:12 codegeekgao 阅读数 120 更多 分类专栏: 面试 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/javaee_gao/article/details/91875562 写在前面的话 之前有个认识的朋友出去面试,遇到了一个类初始化和实例初始化的问题,本人也试着做,但是做错了。一时茫然,好歹有几年的开发经验了,确连根本的基础题都不会做了真是万分羞愧,特地记录一下,巩固一下基础。 面试题 首先有一个Father类: public class Father { private int i = test(); private static int j = method(); static { System.out.println("(1)"); } Father() { System.out.println("(2)"); } { System.out.println("(3)"); } public int test() { System.out.println("(4)"); return 1; } public static int method() { System.out

面向对象(基础)

无人久伴 提交于 2019-12-04 09:37:18
# 定义一个类 class Person: mind = '思想' # 静态变量,静态字段 animal = '高级动物' def __init__(self,name,age): # 构造方法 self.name = name self.age = age def work(self): #方法 动态变量 print('都会工作') # 1, 查询类中的全部内容 print(Person.__dict__) # 可以使用del来删除类中的比字段 del Person.mind # 实例化对象 obj1 = Person('TOM',15) # 实例化的对象可以调用类或父类中的方法以及字段 print(obj1.animal) obj1.work() # 比如我们有一个需求 # (1) # 创建一个 # Game_role的类. # (2) # 构造方法中给对象封装name, ad(攻击力), hp(血量).三个属性. # (3) # 创建一个attack方法, 此方法是实例化两个对象, 互相攻击的功能: # 例: 实例化一个对象 # 盖伦, ad为10, hp为100 # 实例化另个一个对象 # 剑豪 # ad为20, hp为80 # 盖伦通过attack方法攻击剑豪, 此方法要完成 # '谁攻击谁,谁掉了多少血, 还剩多少血' # 的提示功能. class Game_role:

thinkphp 文件上传

﹥>﹥吖頭↗ 提交于 2019-12-04 08:47:48
上传表单 在ThinkPHP中使用上传功能无需进行特别处理。例如,下面是一个带有附件上传的表单提交: <form action = "__URL__/upload" enctype = "multipart/form-data" method = "post" > <input type = "text" name = "name" /> <input type = "file" name = "photo" /> <input type = "submit" value = "提交" > </form> 注意,要使用上传功能 你的表单需要设置 enctype="multipart/form-data" 多文件上传支持 如果需要使用多个文件上传,只需要修改表单,把 <input type = 'file' name = 'photo' > 改为 <input type = 'file' name = 'photo1' > <input type = 'file' name = 'photo2' > <input type = 'file' name = 'photo3' > 或者 <input type = 'file' name = 'photo[]' > <input type = 'file' name = 'photo[]' > <input type = 'file'

Spring Boot启动流程分析

北慕城南 提交于 2019-12-04 08:29:29
引言 早在15年的时候就开始用spring boot进行开发了,然而一直就只是用用,并没有深入去了解spring boot是以什么原理怎样工作的,说来也惭愧。今天让我们从spring boot启动开始,深入了解一下spring boot的工作原理。 为什么用spring boot 在使用一个东西或者一个工具之前,我们总是会问自己,我为什么要用?用他能给我带来什么好处? * 最大的好处就是spring boot遵从了java**约定大于配置**不用面对一大堆的配置文件,spring boot是根据你用的包来决定提供什么配置。 * 服务器以jar包的形式内嵌于项目中,对于微服务满天飞的情况,spring boot天生适合微服务架构,方便部署。 * 提供devtools从此改代码就需重启成为历史。 有优点就一定有缺点,缺点来源于优点优点来源于缺点(感觉在说哲学问题了哈哈哈) * 正因为配置对开发者不透明,不看源码会不清楚spring boot如何进行诸如JDBC加载、事务管理等,出现错误也很难调错。 * 自动配置之后要自定义配置需编码javaConfig,需要了解这些配置类api。 * 版本迭代太快,新版本对老版本改动太多导致不兼容,比如1.3.5之前的springBootTest和1.4.0之后的springBootTest。 只有合适的架构才是最好的架构如果能接受spring

单例设计模式

别等时光非礼了梦想. 提交于 2019-12-04 07:18:45
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类 只能存在一个对象实例 ,并且该类只提供一个取得其对象实例的方法(静态方法)。 比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactory就够,这是就会使用到单例模式。 单例模式有八种方式: 1、饿汉式(静态常量) 2、饿汉式(静态代码块) 3、懒汉式(线程不安全) 4、懒汉式(线程安全,同步方法) 5、懒汉式(线程安全,同步代码块) 6、双重检查 7、静态内部类 8、枚举 饿汉式(静态常量) 饿汉式(静态常量)实例对象构建步骤如下: 1、构造器私有化(防止new ); 2、类的内部创建对象; 3、向外暴露一个静态的公共方法。 代码实现: /** * <h1>饿汉式-静态常量</h1> */ public class HungryStaticVar { public static void main(String[] args) { Singleton instance1 = Singleton.getInstance(); Singleton instance2 = Singleton.getInstance(); System.out.println

循环依赖的三种方式

青春壹個敷衍的年華 提交于 2019-12-04 04:46:39
循环依赖就是N个类中循环嵌套引用,如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错。下面说一下Spring是如果解决循环依赖的。 第一种:构造器参数循环依赖 Spring容器会将每一个正在创建的Bean 标识符放在一个“当前创建Bean池”中,Bean标识符在创建过程中将一直保持在这个池中。 因此如果在创建Bean过程中发现自己已经在“当前创建Bean池”里时将抛出BeanCurrentlyInCreationException异常表示循环依赖;而对于创建完毕的Bean将从“当前创建Bean池”中清除掉。 首先我们先初始化三个Bean。 public class StudentA { private StudentB studentB ; public void setStudentB(StudentB studentB) { this.studentB = studentB; } public StudentA() { } public StudentA(StudentB studentB) { this.studentB = studentB; } } public class StudentB { private StudentC studentC ; public void setStudentC(StudentC