实例化

python 面向对象

跟風遠走 提交于 2020-01-18 02:43:48
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。 如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程。 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 类变量: 类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。 数据成员: 类变量或者实例变量用于处理类及其实例对象的相关的数据。 方法重写: 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。 实例变量: 定义在方法中的变量,只作用于当前实例的类。 继承: 即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。 实例化: 创建一个类的实例,类的具体对象。 方法: 类中定义的函数。 对象: 通过类定义的数据结构实例

单例设计模式

余生颓废 提交于 2020-01-18 02:28:38
什么是单例设计模式?  单例模式,是一种常见的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式的方法创建的类在当前进程中只有一个实例。  在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态,避免政出多头。 单例模式有以下特点: 单例类只能有一个实例 单例类必须自己创建自己的唯一实例 单例类必须给所有的其他对象提供这一实例 具体实现 需要: 将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象 在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型 定义一个静态方法返回这个唯一对象 实现一:立即加载/“饿汉模式” /** * 饿汉式:在类初始化的时候,已经创建自己的实例 */ public class Singleton { //1,私有化构造方法 private Singleton(){} //2,创建自己的单例对象 private final static Singleton

java类的初始化和实例化区别

百般思念 提交于 2020-01-17 17:07:43
结论: 参考https://blog.csdn.net/qq_43672627/article/details/86616624 类的初始化:是完成程序执行前的准备工作。在这个阶段,静态的(变量,方法,代码块)会被执行。同时在会开辟一块存储空间用来存放静态的数据。初始化只在类加载的时候执行一次。 类的实例化:是指创建一个对象的过程。这个过程中会在堆中开辟内存,将一些非静态的方法,变量存放在里面。在程序执行的过程中,可以创建多个对象,既多次实例化。每次实例化都会开辟一块新的内存。 1.类的生命周期 来源: https://www.cnblogs.com/pu20065226/p/12206463.html

java基本语法2

倾然丶 夕夏残阳落幕 提交于 2020-01-16 10:04:42
2. java类 2.1 创建类及其成员属性、方法 类的语法格式: 修饰符如public,这里的属性和方法都指的成员属性(变量)和方法 这里的public class Person是类名,该文件名也必须是Person.java。文件名和类名相同。一个java文件可以有很多类,但是只能有一个public class,因此文件名是和public class的名称相同。 2.2 实例化对象 上文中创建了一个Person的类(Person.java文件),现再重新创建一个Test4的类(Test4.java文件),实例化过程如下: 使用 Person person 中,Person类似于定义变量的类型,person为实例化的对象名称,使用new实例化对象。 person.name = "张三" 为对象的属性赋值 person.showname() 调用person对象的方法 来源: CSDN 作者: weixin_43178406 链接: https://blog.csdn.net/weixin_43178406/article/details/103998716

Spring bean的实例化

≡放荡痞女 提交于 2020-01-16 00:07:25
第一:如果你使用BeanFactory作为Spring Bean的工厂类,则所有的bean都是在第一次使用该Bean的时候实例化 第二:如果你使用ApplicationContext作为Spring Bean的工厂类,则又分为以下几种情况: (1):如果bean的scope是singleton的,并且lazy-init为false(默认是false,所以可以不用设置),则ApplicationContext启动的时候就实例化该Bean,并且将实例化的Bean放在一个map结构的缓存中,下次再使用该Bean的时候,直接从这个缓存中取 (2):如果bean的scope是singleton的,并且lazy-init为true,则该Bean的实例化是在第一次使用该Bean的时候进行实例化 (3):如果bean的scope是prototype的,则该Bean的实例化是在第一次使用该Bean的时候进行实例化 来源: https://www.cnblogs.com/jxxblogs/p/12199320.html

Java 类和对象

久未见 提交于 2020-01-15 04:59:32
1.类和对象初步认识 面向对象就是用代码(类)来描述客观世界的事物的一种方式. 一个类主要包含一个事物的属性和行为 2.类和类的实例化 类就是一类对象的统称。对象就是这一类具体化的一个实例。一个类可以产生无数个对象 基本语法 // 创建类 class < class_name > { field ; //成员属性 method ; //成员方法 } // 实例化对象 < class_name > < 对象名 > = new < class_name > ( ) ; 注: class为定义类的关键字,ClassName为类的名字,{}中为类的主体。 类中的元素称为:成员属性。类中的函数称为:成员方法。 示例: class Person { public int age ; //成员属性 实例变量 public String name; public String sex ; public void eat ( ) { //成员方法 System . out . println ( "吃饭!" ) ; } public void sleep ( ) { System . out . println ( "睡觉!" ) ; } } 类的实例化 用类类型创建对象的过程,称为类的实例化 1.类只是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没有分配实际的内存空间来存储它。 2

单例模式

我是研究僧i 提交于 2020-01-15 00:27:55
单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 介绍 意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 主要解决: 一个全局使用的类频繁地创建与销毁。 何时使用: 当您想控制实例数目,节省系统资源的时候。 如何解决: 判断系统是否已经有这个单例,如果有则返回,如果没有则创建。 关键代码: 构造函数是私有的。 应用实例: 1、一个班级只有一个班主任。 2、Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行。 3、一些设备管理器常常设计为单例模式,比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。 优点: 1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 2、避免对资源的多重占用(比如写文件操作)。 缺点:

Spring源码学习笔记

非 Y 不嫁゛ 提交于 2020-01-14 07:20:55
spring bean实例化简图 更改allowcircularReference为false可以关闭循环依赖,方式有三种。 1、更改spring源码 2、不要使用带参构造函数 改为 3、拓展spring(具体不知道怎么做,应该是通过BeanPostProcessor接口) 1、Spring IOC 笔记: 1、重要的区别,别搞混了 Instantiation 实例化 Initialization 初始化 1、在填充bean属性时,会调用一系列的BeanPostProcessor,其中CommonAnnotationBeanPostProcessor处理@Resource注解,AutowiredAnnotationBeanPostProcessor处理@Autowired注解,他们是解决循环依赖的关键。 2、代理是在 初始化后 调用postprocessor完成的。解决依赖过程中,从二级缓存工厂获取对象的时候,获取到的是 原对象的引用 ,再完成属性注入,再初始化。 3、初始化过程是先处理注解再处理类方法最后再处理注解。所以如果bean同时使用三种初始化方法,@PostConstruct注解的初始化方法先执行(先执行BeanPostProcessor接口,相关BeanPostProcessor接口实现类会处理注解)

java InputStream的使用

点点圈 提交于 2020-01-13 05:45:38
package cn.kongxh.io3; import java.io.File ; import java.io.InputStream ; import java.io.FileInputStream ; public class InputStreamDemo01{ public static void main(String args[]) throws Exception{ // 异常抛出,不处理 // 第1步、使用File类找到一个文件 File f= new File("d:" + File.separator + "test.txt") ; // 声明File对象 // 第2步、通过子类实例化父类对象 InputStream input = null ; // 准备好一个输入的对象 input = new FileInputStream(f) ; // 通过对象多态性,进行实例化 // 第3步、进行读操作 byte b[] = new byte[1024] ; // 所有的内容都读到此数组之中 input.read(b) ; // 读取内容 网络编程中 read 方法会阻塞 // 第4步、关闭输出流 input.close() ; // 关闭输出流 System.out.println("内容为:" + new String(b)) ; //

Java反射机制

 ̄綄美尐妖づ 提交于 2020-01-13 04:36:05
一切的操作都将使用Object完成,类,数组的引用都可以使用Object来接收 1,认识Class类 以前要是想知道一个类中的属性,成员变量,方法等等的信息的话,需要通过new这个类的对象才能得到这些信息,但是在Java中,也允许一个实例化对象找到一个类的完整的信息,这个类就是Class类,Class类是继承Object类的. 正常方式: 引入需要的"包.类"名称 -->通过new实例化-->取得实例化对象 反射方式: 实例化对象-->getClass()方法(从Object类中继承而来),这里是得到Class类对象-->得到完整的"包.类"名称 getClass()这个方法的返回值是Class类,实际上该类是Java反射的源头 在 Class类中没有定义构造方法 ,那么得到Class类对象的方法有3种: (1)使用forName()的静态方法实例化对象 (2) 类.class (3)对象.getClass() package cn.reflect; class Demo{ } public class RefDemo01 { public static void main(String[] args) throws ClassNotFoundException { Class c1 = Class.forName("cn.reflect.Demo"); Class c2 =