构造器

Kotlin学习笔记(四):Kotlin中的类与对象

拥有回忆 提交于 2020-02-05 16:57:02
一、简介 Kotlin 中使用关键字 class 声明类,后面紧跟类名 。 Kotlin 中的类默认是 public final 的,所以如果不需要类为 final 的时候,需要使用 open 关键字修饰类,如果没有声明父类。则父类默认为 Any 类。 //定义一个空类 open class Animal interface Run //继承类或接口时,使用 : 隔开,父类和接口间使用 , 隔开 class Dog : Animal ( ) , Run 二、构造函数 1. 主构造器 主构造器放在类名后,不能包含任何代码,初始化代码可以放在初始化代码段中,初始化代码段使用 init 关键字作为前缀。 注意: 主构造器的参数可以在初始化代码段中使用,可以通过主构造器来定义属性并初始化属性值(可以是 var 或 val )。 class Dog constructor ( val age : Int , val name : String ) { init { println ( "Dog $name is $age years old." ) } } 如果构造器有注解,或者有可见度修饰符,则 constructor 关键字是必须的,注解和修饰符放在它之前,否则 constructor 可以省略不写。 2. 创建实例 fun main ( args : Array < String >

1. Java8新特性_简介

被刻印的时光 ゝ 提交于 2020-02-05 12:38:36
hashmap默认16,超过后提供加载因子0.75 超过75%自动扩容,不能小于75%(浪费空间),扩容后链表内容重新排序,碰撞概率降低 数组——链表——红黑树 每个链表长度大于8并且总容量大于64,链表会转变成红黑树(除了添加外,都比链表快) hashmap hashset concurrenthashmap 1、速度更快 2、代码更少(增加了新的语法Lambda表达式) 一、类:用Class修饰符修饰的就是类 二、方法的声明(定义) 修饰符 返回值类型 方法名([参数类型 参数名1, 参数类型 参数名2, ...]){ 执行语句 ... [return 返回值;] } // []中的数据可以没有 我们可以看到方法的基本组成包括:名称、参数、返回值和方法体。 修饰符:方法的修饰符较多,有对访问权限进行限定的,有静态修饰符static,还有最终修饰符final等。 返回值类型:用于限定方法返回值的数据类型。 参数类型:用于限定调用方法时参数参数的类型。 参数名:是一个变量,用于接收调用方法时传入的数据。 return关键字:用于结束方法以及返回方法指定类型的值。 当方法以void关键字声明,那么此方法没有返回值;但可以使用return来结束调用。 三、构造器 用于创建对象并初始化对象属性的方法,叫“构造方法”,也叫“构造器”;构造器在类中定义。 构造器的名称必须与类名同名

小白学Java:RandomAccessFile

杀马特。学长 韩版系。学妹 提交于 2020-02-05 12:17:09
目录 小白学Java:RandomAccessFile 概述 继承与实现 构造器 模式设置 文件指针 操作数据 读取数据 read(byte b[])与read() 追加数据 插入数据 前文传送门: 小白学Java:I/O流 小白学Java:RandomAccessFile 之前我们所学习的所有的流在对数据操作的时候,都是只读或者只写的,使用这些流打开的文件很难进行更新。Java提供了 RandomAccessFile 类, 允许在文件的任意位置上进行读写 。 概述 官方文档的解释是这样的: Instances of this class support both reading and writing to a random access file. 支持对文件进行读写 ,可以认为这是一个双向流。 A random access file behaves like a large array of bytes stored in the file system. 在操作文件的时候,将文件看作一个 大型的字节数组 。 There is a kind of cursor, or index into the implied array, called the file pointer ; input operations read bytes starting at the file

injection

大城市里の小女人 提交于 2020-02-05 00:32:58
Java依赖注入设计原则允许我们移除硬编码依赖和让我们的应用低耦合,可扩展和可维护。我们可以通过在Java中实现依赖注入将依赖关系从编译时移到运行时来解析。 Java依赖注入似乎很难通过理论来掌握。所以我将通过一些简单的例子,然后我们将会看到如何在应用里使用依赖注入模式来实现低耦合和可扩展性。 一个最好的setter依赖注入的例子是 Struts2 Servlet API Aware interfaces 到底是使用基于构造器依赖注入还是基于setter方法依赖注入取决于你的需求。举个例子,如果没有服务类我的应用完全不能运行,那么我会偏向基于构造器的DI,否则我会选择基于setter方法的DI,只有在真正需要才会使用它。 Java中的依赖注入是一种通过使对象从编译时绑定移到运行时绑定来实现控制反转(Inversion of control IoC)的一种方式。我们可以通过工厂模式(Factory Pattern), 模板方法设计模式(Template Method Design Pattern), 策略模式(Strategy Pattern)还有服务定位模式(Service Locator pattern)来实现IoC。 Spring依赖注入,Google Guice还有Java EE CDI框架通过使用Java Reflection API和Java注解来促进依赖注入的过程

JAVASE(十七) 多线程:程序、进程、线程与线程的生命周期、死锁、单例、同步锁

余生长醉 提交于 2020-02-04 16:02:29
1、程序、进程、线程的理解 1.1 概念 程序(program) 是为完成特定任务、用某种语言编写的一组指令的集合。即指 一段静态的代码,静态对象。 进程(process) 是程序的一次执行过程,或是 正在运行的一个程序。动态过程:有它自身的产生、存在和消亡的过程。 如:运行中的QQ,运行中的MP3播放器 程序是静态的,进程是动态的 线程(thread), 进程可进一步细化为线程,是一个程序内部的一条执行路径。 若一个程序可同一时间执行多个线程,就是支持多线程的 1.2 进程与多线程 ​ 每个Java程序都有一个隐含的主线程: main 方法 程序需要同时执行两个或多个任务。 程序需要实现一些需要等待的任务时,如用户输入、文件读写操作、网络操作、搜索等。 需要一些后台运行的程序时。 2、多线程的创建和启动 2.1 Thread 线程概念: ​ 2.2 源码流程解析: (1) Thread 类 与 Runnable 接口 ​ 并且在Thread中有一个构造器的参数是Runnable的实现子类,所以当一个自定义类实现了Runnable接口后,可以通过newThread()作为构造参数传入来实现Thread多线程的创建。 如图: ​ (2)Thread 与 Runnable 、Callable 及Future Task 的关系 首先分析: Future Task 的底层实现了

java 类的基本概念、继承、Object类、数组列表、对象包装器、可变数量参数

雨燕双飞 提交于 2020-02-04 09:09:50
目录 1. 类 2. 包 2.1 静态导入 3. 继承 3.1 禁止类扩展 3.2 抽象类 4. Object类 5. 数组列表 6. 对象包装器 7. 可变数量参数 1. 类 依赖、聚合、继承; 依赖:如果一个类的方法操纵了另一个类的对象,则该类依赖于另一个类。应该尽可能减少这种依赖,降低耦合度。 聚合:一个类的对象包含着另一个类的对象,这种关系为聚合。 继承:继承关系后文再介绍,需要详细说明。 final 关键字,声明一个可变类的时候,只是表示这个引用指向的地址不变,即指向一个对象,之后不会再指向其他对象,但是对象的内容可以变。 构造器 如果类中提供了至少一个构造器,但是没有提供无参构造器,则在构造对象时,如果没有提供参数就会被视为不合法。仅当类没有提供任何构造器的时候,系统才会提供一个默认的构造器。 一个构造器调用另一个构造器:在一个构造器的第一个句开始就是this()这种形式,this就代表当前类的构造器。 比如: public Hello(int a, int b){} public Hello(int h){ this(9, 4); } 初始化块 初始化的方式处理构造器、声明中赋值,还有初始化块的方式。{ }包含的部分就是初始化块。 在一个类中,可以包含多个代码块,无论使用哪个构造器构造对象,首先运行块代码,然后才运行构造器。 类实例化的过程:1.

java需要深入学习的知识列表

柔情痞子 提交于 2020-02-04 05:26:21
Java新手入门的30个基本概念 在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念。 Java概述: 目前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合pc应用程序的开发,其发展逐渐变成在开发手持设备,互联网信息站,及车载计算机的开发.Java于其他语言所不同的是程序运行时提供了平台的独立性,称许可以在windows,solaris,linux其他操作系统上使用完全相同的代码.Java的语法与C++语法类似,C++/C程序员很容易掌握,而且Java是完全的彻底的面向对象的,其中提出了很好的GC(Garbage Collector)垃圾处理机制,防止内存溢出。 Java的白皮书为我们提出了Java语言的11个关键特质。 (1)Easy:Java的语法比C++的相对简单,另一个方面就是Java能使软件在很小的机器上运行,基础解释其和类库的支持的大小约为40kb,增加基本的标准库和线程支持的内存需要增加125kb。 (2)分布式:Java带有很强大的TCP/IP协议族的例程库

Java新手入门的30个基本概念

旧时模样 提交于 2020-02-04 05:25:47
Java 新手入门的 30 个基本概念 在我们学习 Java 的过程中 , 掌握其中的基本概念对我们的学习无论是 J2SE,J2EE,J2ME 都是很重要的 ,J2SE 是 Java 的基础 , 所以有必要对其中的基本概念做以归纳 , 以便大家在以后的学习过程中更好的理解 java 的精髓 , 在此我总结了 30 条基本的概念。 Java 概述 : 目前 Java 主要应用于中间件的开发 (middleware)--- 处理客户机与服务器之间的通信技术 , 早期的实践证明 ,Java 不适合 pc 应用程序的开发 , 其发展逐渐变成在开发手持设备 , 互联网信息站 , 及车载计算机的开发 .Java 于其他语言所不同的是程序运行时提供了平台的独立性 , 称许可以在 windows,solaris,linux 其他操作系统上使用完全相同的代码 .Java 的语法与 C++ 语法类似 ,C++/C 程序员很容易掌握 , 而且 Java 是完全的彻底的面向对象的 , 其中提出了很好的 GC(Garbage Collector) 垃圾处理机制 , 防止内存溢出。 Java 的白皮书为我们提出了 Java 语言的 11 个关键特性。 (1)Easy:Java 的语法比 C++ 的相对简单 , 另一个方面就是 Java 能使软件在很小的机器上运行 , 基础解释其和类库的支持的大小约为 40kb

Java中入门需要掌握的30个基本概念

孤者浪人 提交于 2020-02-04 04:33:46
1.OOP中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大限度上提高复用率。 2.OOP中最重要的思想是类,类是模板是蓝图,从类中构造一个对象,即创建了这个类的一个实例(instance)。 3.封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance field)。 4.通过扩展一个类来获得一个新类叫继承(inheritance),而所有的类都是由Object根超类扩展而得,根超类下文会做介绍。 5.对象的3个主要特性 behavior---说明这个对象能做什么. state---当对象施加方法时对象的反映. identity---与其他相似行为对象的区分标志. 每个对象有唯一的indentity 而这3者之间相互影响. 6.类之间的关系: use-a :依赖关系 has-a :聚合关系 is-a :继承关系--例:A类继承了B类,此时A类不仅有了B类的方法,还有其自己的方法.(个性存在于共性中) 7.构造对象使用构造器:构造器的提出,构造器是一种特殊的方法

【Java基础05】组合和聚合、初始化块

邮差的信 提交于 2020-02-04 00:43:15
1 组合和聚合 1.1继承与组合 继承是实现类复用的重要手段,但继承带来了一个最大的坏处:破坏封装。相比之下,组合也是实现类复用的重要方式,而采用组合方式来实现类复用则能提供更好的封装性。 在继承中,为了保证父类有良好的封装性,不会被子类随意改变,设计父类通常应该遵循如下规则: 1.尽量隐藏父类的内部数据。把父类所有成员都设置为 private 访问类型。 2.不要让子类可以随意访问、修改父类的方法。父类中仅为辅助其他的工具方法,应使用 private 访问控制符修饰,子类无法访问;父类中需要被外部类调用的方法用 public 访问控制符修饰,如不希望子类重写该方法,使用 final 修饰符修饰;如果希望父类的某个方法被子类重写,但不希望被其它类自由访问,应该使用 protected 修饰。 总之,继承要表达的是一种“是(is—a)”的关系,而组合表达的是“有(has—a)”的关系。 1.1组合: 如果需要复用一个类,除了把这个类当成基类(父类)来继承外,还可以把该类当作另一个类的组合成分,从而允许新类直接复用该类的public方法,不管是继承还是组合,都允许在新类中直接复用旧类的方法。组合是直接把旧类对象作为新类的属性嵌入,用于实现新类的功能,通常需要在新类里使用private修饰符嵌入该类对象。 1.2聚合: 在聚合关系中,代表部分事物的可以属于多个聚合对象