构造器

构造器

流过昼夜 提交于 2020-01-31 14:55:24
构造器 和类名相同 没哟返回值 作用 1、new 本质在调用构造方法。2、初始化对象的值 注意点 定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造 ackage com . xia . scanner . duixiang ; public class Person { String name ; //无参构造器 //实例化初始值 //核心作用 1、使用new关键字,本质是调用构造器.2、用来初始化值 public Person ( ) { this . name = "xiaoming" ; } //有参构造:一旦定义了有参构造,无参就必须显示定义 public Person ( String name ) { this . name = name ; } } package com . xia . scanner . duixiang ; public class Application { public static void main ( String [ ] args ) { //new 实例化了一个对象 Person person = new Person ( ) ; Person pep = new Person ( "xiaoxiao" ) ; System . out . println ( person . name ) ; System .

2020.1.30 假期java巩固学习

…衆ロ難τιáo~ 提交于 2020-01-31 05:31:46
面对对象特征之一:封装和隐藏 Java中通过数据声明为私有的(private),再提供公共的(public)方法:getXxx()和setXxx()实现对属性的操作。 四种访问权限修饰符 在同一个java文件中可以写多个的class,但是只有一个public,其他的只能是缺省的。 public class Test { . . . . . . } class T0 { //缺省 } 类的构造方法 new对象实际上就是调用类的构造方法。 构造器重载,就是为了方便调用方可以灵活的创建出不同需要的对象。 关键字—— this this在方法内使用,即这个方法所属对象的引用。 this在构造器内部使用,表示该构造器正在初始化的对象。 this表示当前对象,可以调用类的属性、方法和构造器;当在方法内需要用到调用该方法的对象时,用this。 public class Person { public Person ( ) { } public Person ( int age ) { this . age = age ; } public Person ( String name ) { this ( ) ; //调用public Person() this . name = name ; } public Person ( int age , String name ) { this ( 1

scala快速入门系列【特质】

风格不统一 提交于 2020-01-29 06:43:07
本篇作为scala快速入门系列的第二十六篇博客,为大家带来的是关于 特质(trait) 的内容。 文章目录 特质(trait) trait作为接口使用 示例 | 继承单个trait 示例 | 继承多个trait 示例 | object继承trait 特质 | 定义具体的方法 trait中定义具体的字段和抽象的字段 使用trait实现模板模式 对象混入trait trait实现调用链模式 责任链模式 trait调用链 trait的构造机制 trait继承class 特质(trait) scala中没有Java中的接口(interface),替代的概念是——特质。 定义 特质是scala中代码复用的基础单元 它可以将方法和字段定义封装起来,然后添加到类中 与类继承不一样的是,类继承要求每个类都只能继承 一个 超类,而一个类可以添加 任意数量 的特质。 特质的定义和抽象类的定义很像,但它是使用 trait 关键字 语法 定义特质 继承特质 使用extends来继承trait( scala不论是类还是特质,都是使用 extends 关键字 ) 如果要继承多个trait,则使用 with 关键字 trait作为接口使用 trait作为接口使用,与java的接口使用方法一样。 示例 | 继承单个trait 创建一个Logger特质,添加一个接受一个String类型参数的log抽象方法

24. java面向对象 - 方法重写

心已入冬 提交于 2020-01-28 14:04:12
一、方法的重写 1. 定义 ​ 在子类中可以根据需要对从父类中继承来的方法进行改造,也称为方法的重置、覆盖。在程序执行时,子类的方法将覆盖父类的方法。 2. 要求 ​ (1) 子类重写的方法必须和父类被重写的方法具有相同的方法名称、参数列表 ​ (2) 子类重写的方法的返回值类型不能大于父类被重写的方法返回值类型 ​ (3) 子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限 子类不能重写父类中声明为private权限的方法 ​ (4) 子类方法抛出的异常不能大于父类被重写方法的异常 3. 注意 ​ 子类与父类中同名同参的方法必须同时声明为非static的,或者同时声明为static(不是重写)。因为static方法是属于类的,子类无法覆盖子类的方法。 二、super关键字 1.super关键字使用 (1)super理解为父类的 (2)super可以用来调用:属性、方法、构造器 2.super使用 (1)在子类的方法或构造器中,通过"super.属性"或"super.方法"的方式,显示的调用父类中声明的属性或方法。但通常情况下省略super (2)特殊情况,当子类和父类中定义了同名属性,子类要调用父类的属性,则必须使用super.属性 (3)特殊情况,重写方法,要调用父类中定义的方法,使用super.方法() (4)super在构造器中使用:super(形参列表)

【javascript基础】之【理解JavaScript函数(函数和对象的区别和联系)】

社会主义新天地 提交于 2020-01-28 11:59:27
原文:http://harrison2010.javaeye.com/blog/173446 函数对象和其他内部对象的关系   除了函数对象,还有很多内部对象,比如:Object、Array、Date、RegExp、Math、Error。这些名称实际上表示一个类型,可以通过new操作符返回一个对象。然而函数对象和其他对象不同,当用typeof得到一个函数对象的类型时,它仍然会返回字符串“function”,而typeof一个数组对象或其他的对象时,它会返回字符串“object”。下面的代码示例了typeof不同类型的情况: 以下是引用片段: view source print ? 1 alert( typeof (Function))); 2 alert( typeof ( new Function())); 3 alert( typeof (Array)); 4 alert( typeof (Object)); 5 alert( typeof ( new Array())); 6 alert( typeof ( new Date())); 7 alert( typeof ( new Object()));   运行这段代码可以发现:前面4条语句都会显示“function”,而后面3条语句则显示“object”,可见new一个function实际上是返回一个函数

设计模式--单例模式

ぃ、小莉子 提交于 2020-01-28 04:09:14
文章目录 基本概念 1. 懒汉式 2. 懒汉式改进--类锁 写法一: 写法二: 3. double check 4. 静态内部类 5. 饿汉式 6. Enum枚举类单例模式 7. 单例模式的破坏:反序列化之后的实例和原来的实例相同吗 8. 单例模式反射攻击 原理:可以通过反射调用构造器** 解决办法 9. 容器单例 10. ThreadLocal线程单例模式 11. 单例模式的一些应用 基本概念 定义 保证一个类仅有一个实例,并提供一个全局的访问点 类型 创建型 适用场景 确保任何情况下都绝对只有一个实例 比如: 单服务情况下的计数器可以用单例,但是集群就需要用共享 线程池、连接池 配置 优点 内存中只有一个实例,减少了内存开销 避免对资源的多重占用(比如说文件需要避免重复打开导致同时写) 设置全局的访问点,严格控制访问 缺点 没有接口,扩展困难,如果要修改,肯定要修改代码 需要注意的事情 私有化构造器 线程安全(非常重要) 延迟加载(非常重要) 序列化和反序列化安全的问题 反射(防止反射攻击) 相关的设计模式 单例模式和工厂模式 单例模式和享元模式 1. 懒汉式 /** * @Classname LazySingleton * @Description 线程不安全的懒汉式 * @Date 2019/12/22 15:58 * @Author Cheng */ public

第一条:用静态工厂方法代替构造器

夙愿已清 提交于 2020-01-27 22:55:38
一:简述 让外部调用者获取类的一个实例(创建该类的对象),可以不提供一个公有的构造器,转而提供一个公有的静态工厂方法,该方法返回类的实例。 二:优点: 1.创建对象时,有名称,不再是通过重载构造方法从而实现不同的对象创建,更加清晰,比构造器命名方式更灵活。 2.再某些情况下,不需要每次new都出现一个新对象,如:Boolean.valueOf("true"),从来不创建对象。如果程序经常创建代价很高的相同对象,则可以考虑。 3.方法返回对象所属的类,在编写该静态方法所属的类时可以不存在: service provider framework (服务提供者框架) 三:缺点: 如果类不提供公有的或者受保护的构造器,就不能被子类化。 来源: https://www.cnblogs.com/shuzi0806/p/12237044.html

JAVA修饰符类型(public,protected,private,friendly)

天大地大妈咪最大 提交于 2020-01-27 14:10:18
JAVA修饰符类型(public,protected,private,friendly) public的类、类属变量及方法,包内及包外的不论什么类均能够訪问; protected的类、类属变量及方法,包内的不论什么类,及包外的那些继承了此类的子类才干訪问; private的类、类属变量及方法,包内包外的不论什么类均不能訪问; 假设一个类、类属变量及方法不以这三种修饰符来修饰,它就是friendly类型的,那么包内的不论什么类都能够訪问它,而包外的不论什么类都不能訪问它(包含包外继承了此类的子类),因此,这样的类、类属变量及方法对包内的其它类是友好的,开放的,而对包外的其它类是关闭的。 类: 訪问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (訪问修饰符与修饰符的位置能够互换) 訪问修饰符 名称 说明 备注 public 能够被全部类訪问(使用) public 类必须定义在和类名同样的同名文件里 package 能够被同一个包中的类訪问(使用) 默认的訪问权限,能够省略此keyword,能够定义在和 public 类的同一个文件里 修饰符 名称 说明 备注 final 使用此修饰符的类不可以被继承 abstract 假设要使用 abstract 类,之前必须首先建一个继承 abstract 类的新类,新类中实现 abstract

JAVA修饰符类型(public,protected,private,friendly)

非 Y 不嫁゛ 提交于 2020-01-27 01:06:14
JAVA修饰符类型(public,protected,private,friendly) public的类、类属变量及方法,包内及包外的不论什么类均能够訪问; protected的类、类属变量及方法,包内的不论什么类,及包外的那些继承了此类的子类才干訪问; private的类、类属变量及方法,包内包外的不论什么类均不能訪问; 假设一个类、类属变量及方法不以这三种修饰符来修饰,它就是friendly类型的,那么包内的不论什么类都能够訪问它,而包外的不论什么类都不能訪问它(包含包外继承了此类的子类),因此,这样的类、类属变量及方法对包内的其它类是友好的,开放的,而对包外的其它类是关闭的。 类: 訪问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (訪问修饰符与修饰符的位置能够互换) 訪问修饰符 名称 说明 备注 public 能够被全部类訪问(使用) public 类必须定义在和类名同样的同名文件里 package 能够被同一个包中的类訪问(使用) 默认的訪问权限,能够省略此keyword,能够定义在和 public 类的同一个文件里 修饰符 名称 说明 备注 final 使用此修饰符的类不可以被继承 abstract 假设要使用 abstract 类,之前必须首先建一个继承 abstract 类的新类,新类中实现 abstract

【C#进阶系列】12 泛型

冷暖自知 提交于 2020-01-27 00:03:26
泛型是CLR和编程语言提供的一种特殊机制,它用于满足“算法重用” 。 可以想象一下一个只有操作的参数的数据类型不同的策略模式,完全可以用泛型来化为一个函数。 以下是它的优势: 类型安全 给泛型算法应用一个具体的数据类型时,如果不兼容这种类型,就会编译错误或者报异常。 更清晰的代码 减少了强制转换,让代码更简洁 更佳的性能 用泛型可以有效避免装箱拆箱的操作,且无需在进行强制转换时验证是否类型安全,这两点都有效提高了代码的性能。 这就是为什么List<T>淘汰了ArrayList的原因,特别是在进行值类型操作时,因为装箱拆箱过多而差距很大。 约定:泛型参数要么为T要么以大写T开头,例如List<T>。 FCL中的泛型 System.Collections.Generic和System.Collections.ObjectModel命名空间中提供了多个泛型集合类和接口。 System.Collections.Concurrent命名空间则提供线程安全的泛型集合类。 System.Array类则提供了大量的静态泛型方法。 泛型的基础结构 .net 2.0才有泛型。 开放类型和封闭类型 之前我们讲到CLR会为各种类型创建类型对象,同样一个新的泛型类TroyList<T>也会创建一个类型对象,我们将具有泛型参数的类型称为 开放类型。 不能构造开放类型的实例 而指定了泛型类型实参的泛型类型称为