构造器

Java构造器

↘锁芯ラ 提交于 2020-02-29 15:59:26
Java的构造器并不是函数,所以他并不能被继承,这在我们extends的时候写子类的构造器是比较的常见,即使子类构造器参数和父类的完全一样,我们也要写super就是因为这个原因。 构造器的修饰符比较的有限,仅仅只有public private protected这三个,其他的例如任何修饰符都不能对其使用,也就是说构造器不允许被成名成抽象、同步、静态等等访问限制以外的形式。 因为构造器不是函数,所以它是没有返回值的,也不允许有返回值。但是这里要说明一下,构造器中允许存在return语句,但是return什么都不返回,如果你指定了返回值,虽然编译器不会报出任何错误,但是JVM会认为他是一个与构造器同名的函数罢了,这样就会出现一些莫名其妙的无法找到构造器的错误,这里是要加倍注意的。 Java在构造实例时的顺序 1、分配对象空间,并将对象中成员初始化为0或者空,Java不允许用户操纵一个不定值的对象。 2、执行属性值的显式初始化 3、执行构造器 4、将变量关联到堆中的对象上。 this() super()是你如果想用传入当前构造器中的参数或者构造器中的数据调用其他构造器或者控制父类构造器时使用的,在一个构造器中你只能使用this()或者super()之中的一个,而且调用的位置只能在构造器的第一行, 在子类中如果你希望调用父类的构造器来初始化父类的部分,那就用合适的参数来调用super()

Java基础Note——面向对象01

早过忘川 提交于 2020-02-29 14:18:46
面向对象01 软件设计 原则: 可重用性,可拓展性,可维护性 面向对象的最小单位是类。 面向对象四大特征:封装,继承,多态,抽象 类和对象 特征:封装,继承,多态,抽象 关系:类是多个对象抽象出来的共性 对象是类的实例,类是对象的模板 类的定义 在面先过程中,专门为描述对象定义一个类,不需要main。 另外再创建测试类 内存分析 不同类型的成员变量的初始值就是各个类型的默认值。 对象的创建实质上类似于栈中有个指针,指向了堆空间中创建的一组数据。 对象打印和比较-生命周期-匿名对象 打印对象:对象名@hashcode.(哈希表中的值) 比较:对象直接 == 比较的是地址值 生命周期:new关键字在heap中开辟新空间创建,当堆中对象未被任何变量引用,且被GC回收时结束。 匿名对象:没有名称的对象,new Object();匿名对象在堆中开辟一块没有名称的对象, 只能使用一次 。 构造器 编译器在编译源文件时会默认创建一个缺省构造器,即默认的一个构造器。所以类中一定会有构造器 作用:1)构建对象,但是必须和new一起使用。2)完成对象初始化 特点 :构造器名称和当前类的名称相同;禁止使用返回类型,返回类型默认当前类的类型;不需要return; 构造器返回值是当前类的地址 new xxx(); 其实是调用类中的构造器创建对象。 编译器创建的默认构造器特点: 1)符合构造器特点。 2)无参

Spring面试题部分总结【慨念】

眉间皱痕 提交于 2020-02-29 11:25:54
什么是Spring? spring是一个企业级应用的开源开发框架,主要用来开发java应用,spring框架目标就是简化企业级应用开发。 Spring用到了那些设计模式? spring里面用到了大量的设计模式,这里举例比较有代表性的: 代理模式:在aop中使用比较多 单例模式:在spring配置文件定义的bean默认为单例模式 模板模式:用来解决代码重复问题 工厂模式:BeanFactory用来创建对象的实例。 使用Spring框架有什么好处? 1.轻量:spring是轻量的,基本版本大约2MB 2.控制反转;spring通过这个实现了松散耦合,对象给他们依赖,而不是创建对象 3.spring支持面向切面的编程,并且把业务逻辑和系统服务分开 4.spring容器包含管理应用中对象的声生命周期和配置 什么是Spring IOC容器? spring IOC 负责创建对象,管理对象(通过依赖注入),装配对象,配置对象,并管理对象的生命周期 IOC的优点是什么? IOC 或 依赖注入把应用的代码量降到最低。它使应用容易测试,最小的代价和最小的侵入性使松散耦合得以实现 ApplicationContext通常实现的是什么? ClassPathXmlApplicationContext :此容器从一个xml文件中加载beans的定义。xml bean 配置文件的全路径名必须提供给他的构造函数。

14--swift之派生类构造方法

拟墨画扇 提交于 2020-02-29 02:33:24
1. 指定构造和便利构造方法解析 这些是类类型的概念,在值类型里没有 class Ab { var a: Int var b: Int // 以 init 开头就是指定构造 init(a: Int,b: Int){ self.a = a self.b = b// 注意:类的指定构造方法里不能像值类型那样调用其他构造器 print("Class ab init") } // 类似值类型的构造方法,加上关键字 convenience ,搭配 self.init 就是便利构造方法,他通过调用其他的构造方法来实现初始化,当然既可以通过指定构造方法也可以是其他便利构造方法 convenience init(a: Int){ // self.a = a // b = 0 self.init(a: a,b: 0) } } 2. 派生类的构造方法 class Ab { var a: Int var b: Int // 以 init 开头就是指定构造 init(a: Int,b: Int){ self.a = a self.b = b// 注意:类的指定构造方法里不能像值类型那样调用其他构造器 print("Class ab init") } // 类似值类型的构造方法,加上关键字 convenience ,搭配 self.init 就是便利构造方法,他通过调用其他的构造方法来实现初始化

小程序运行逻辑说明

时光怂恿深爱的人放手 提交于 2020-02-29 02:05:09
小程序环境说明 小程序运行环境分为 逻辑层、渲染层 ;同样这两个层面分别由两个线程进行管理; 逻辑层: js脚本;jsCore线程管理 渲染层: wxml、wxss运行层;webview线程管理; 一个小程序存在多个界面,所以渲染层存在多个WebView线程,这两个线程的通信会经由微信客户端做中转,逻辑层发送网络请求也经由客户端转发。 小程序运行流程 打开小程序之前会把小程序的代码包下载到本地; 通过app.json的pages页面配置获取所有的页面路径; 读取pages中的第一个配置的页面进行装载运行,渲染页面; 小程序启动之后,在 app.js 定义的 App 实例的 onLaunch 回调会被执行(该APP实例是小程序唯一的,是全部页面共享的,更多说明:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/app.html ); 页面开始装载时会先会先根据 json 配置生成一个界面,顶部的颜色和文字你都可以在这个 json 文件里边定义好 紧接着客户端就会装载这个页面的 WXML 结构和 WXSS 样式; 最后客户端会装载 js文件; 在js文件内部会存在一个构造器,该构造器内部会有data数据以及function方法等,框架会把data 数据和 index.wxml

spring学习——Ioc基础三(Ioc配置使用)

纵饮孤独 提交于 2020-02-28 22:51:13
一、XML配置的结构 一般配置文件结构如下: <beans> <import resource=”resource1.xml”/> <bean id=”bean1”class=””></bean> <bean id=”bean2”class=””></bean> <bean name=”bean2”class=””></bean> <alias alias="bean3" name="bean2"/> <import resource=”resource2.xml”/> </beans> 1、<bean>标签主要用来进行Bean定义; 2、alias用于定义Bean别名的; 3、import用于导入其他配置文件的Bean定义,这是为了加载多个配置文件,当然也可以把这些配置文件构造为一个数组(new String[] {“config1.xml”, config2.xml})传给ApplicationContext实现进行加载多个配置文件,那一个更适合由用户决定;这两种方式都是通过调用Bean Definition Reader 读取Bean定义,内部实现没有任何区别。<import>标签可以放在<beans>下的任何位置,没有顺序关系。 二、Bean的配置 Spring IoC容器目的就是管理Bean,这些Bean将根据配置文件中的Bean定义进行创建

第 4 章 对象与类

安稳与你 提交于 2020-02-28 22:25:49
目录 4.1 面向对象程序设计概述 4.1.2 对象,93 4.1.4 类之间的关系,94 4.2 使用预定义类 4.2.2 Java 类库中的 LocalDate 类,98 4.3 用户自定义类 4.3.1 Employee 类,103 4.3.2 多个源文件使用,105 4.3.4 构造器,106 4.3.5 隐式参数与显式参数,108 4.3.8 私有方法,111 4.4 静态域与静态方法 4.4.1 静态域,112 4.4.2 静态常量,113 4.4.3 静态方法,114 4.4.4 工厂方法,115 4.4.5 main 方法,115 4.5 方法参数,118 4.6 对象构造 4.6.2 默认域初始化,123 4.6.3 无参数的构造器,124 4.6.4 显式域初始化,125 4.6.5 参数名,125 4.6.6 调用另一个构造器,126 4.6.7 初始化块,127 4.7 包,131 4.10 类设计技巧,144 4.1 面向对象程序设计概述 4.1.2 对象,93 对象的行为(behavior)—— 方法 对象的状态(state)—— 域 对象标识(identity)—— 实例 4.1.4 类之间的关系,94 依赖(“uses-a”) 组合(“has-a”) 继承(“is-a”) 4.2 使用预定义类 4.2.2 Java 类库中的 LocalDate 类

【Java】内部类

巧了我就是萌 提交于 2020-02-28 06:16:52
前言 将一个类的定义放在另外一个类定义的内部,里面的就叫做内部类 。内部类是一种非常有用的特性,它允许你把一些逻辑相关的类组织在一起,并控制内部的类的可视性。 内部类看起来像是一种代码隐藏机制:将类的实现定义在了其他类中。但是,内部类的优点远不止于此,它可以访问外围类的任何成员并与之通信、让一个类实现多继承等 。本篇博客先介绍内部类的基础语法,然后介绍内部类的一些特性。 内部类的创建及使用 public class Parcel { //内部类 class Contents{ private int i = 1; public int value() {return i;} } //内部类 class Destination{ private String label; Destination(String whereTo){ label = whereTo; } String readLabel() {return label;} } public void ship(String dest) { Contents c = new Contents(); Destination d = new Destination(dest); System.out.println(d.readLabel()); } //获取内部类对象 public Contents contents()

Java编程思想学习(八) 内部类

雨燕双飞 提交于 2020-02-28 05:35:33
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类的定义是简单的,但是它的语法确实很是复杂,让人不是很好理解.下面就内部类做一个小结. 一.内部类的分类 总的来讲内部类分为普通内部类,匿名内部类,局部内部类,嵌套类(静态内部类)等.下面简要的介绍以下这些内部类定义的语法. (1).对于普通的内部类,就是在外围类中插入另一个类的定义.如下面的代码: 1 package lkl1; 2 3 ///封装一个包裹类 4 public class Parcel { 5 6 ///在一个类的内部定义的另一个类,称之为内部类 7 ///它的定义形式并没有什么不同 8 public class Destination{ 9 private String label; 10 Destination(String whereto){ 11 label=whereto; 12 } 13 public String getLabel(){ 14 return label; 15 } 16 } 17 18 public class Contents{ 19 private int i=11; 20 public int value(){ 21 return i; 22 } 23 } 24 ///提供一个统一的创建内部类的接口 25 public Destination destination

Java 浅析内部类

断了今生、忘了曾经 提交于 2020-02-28 05:33:23
这篇文章主要讲述Java 内部类的相关知识,主要讲解下面的知识点。 内部类的概念 内部类的特点与使用 多种形式内部类 为什么要使用内部类 内部类的概念 内部类是指在一个类的内部定义了另一个类。例如下面的代码中例子,就是一个简单的内部类。 public class A { private int a; public class B{ private int b; } } 在这个类中,我们可以看出内部类B就像A的成员一样。所以我们对内部类的修饰也可以用很多种修饰符,比如我们是不可能对一个非内部类用private修饰符和protected修饰符,但是如果这个类是内部类,我们可以对他用private和protected访问修饰符以及static和final修饰符等等,就像对一个成员添加修饰符一样。当我们对B类添加多种修饰符以后,我们就可以把B类看成隐藏在A类中,像是一种代码隐藏机制。这样的内部类有什么特点以及我们如何去使用他呢? 内部类的特点与使用 在上面的例子中,我们把B类看成是A类的一个成员,那么这个成员与普通的成员变量和成员方法有什么区别呢? 我们可以很容易的在B类访问到A类中任何成员。但是如果我们想在A类中去访问B类的成员就不这么轻松了。如果B类是一个非静态类,那我们就要在外部类中声明一个B类的引用去调用B类中的成员。如下例子所示: public class A { private