instanceof

Java多态

拟墨画扇 提交于 2020-02-04 17:43:12
多态        意义:同一个事物,由于条件不同,执行的结果不同。在Java中实质上指的同一引用类型,使用不同的实例而执行结果不同的。    注意:【1】同一个类型,一般指父类       【2】不同:不同的子类实例,同一个方法执行的父类或者子类方法;     实现多态规则:       【1】必须有继承关系,子类有一定要重写/实现父类的方法       【2】本质是 运行时 父类引用之类重写的方法        Super s = new Sub()          多态的实现形式        【1】父类型引用子类对象(本质) //父类作为一引用类型 Super s = null; //父类引用子类sub1的重新方法 s= new sub1(); s.showInfo(); //输出子类sub1的方法 //父类引用子类sub2的重新方法 s=new sub2(); s.showInfo(); //输出子类sub2的方法          【2】父类作为方法形参实现多态   public void feed(Pet pet) {    pet.getName()    }        【3】父类作为方法的返回值实现多态   public Pet adoptPet(int type) {    Pet pet = null;    if(1 == type) {    pet

封装.继承.多态

只愿长相守 提交于 2020-02-04 17:42:24
封装 1. 封装 :隐藏类内部细节 2. 封装 步骤 :   第一步:将属性私有化.(private)   第二步:提供getter/setter方法(getXxxx(),setXxxx()).   第三步:在getter/setter中加入控制语句. 3. this关键词   this:表示当前对象.   调用属性:this.属性名   调用方法:this.方法名();   this():表示调用构造函数. 注意 :this(),必需写在构造函数的第一行. 继承(extends) 1. 继承 :遗传 2. 语法   public class 子类 extends 父类{     //代码块   } 例:public class Dog extends Pet {     //代码块 } 3. 继承的特点   a.子类可以继承父类的非私有的属性和方法   b.不能继承构造方法   c.继承默认权限修饰符的方法和属性,子类和父类必需在同一包中 4. super(父类)   super.属性名; //表示访问父类的属性   super.方法名(参数); //表示访问父类的方法   super(参数);//表示访问父类的构造函数; 注意 :super()访问父类构造函数时,必需写在第一行; 多态 1. 多态含义 :一个事物的多种形态 2. 多态的表现   行为(方法)多态:重写和重载.

总结一些前端的知识点

南楼画角 提交于 2020-02-01 01:55:43
一、W3C 标准盒模型和 IE 盒模型区别: 1. W3C 标准盒模型: 盒子的高宽是由盒子的内容区仅由 width, height 决定的,不包含边框,内外边距。 2. IE 盒模型: 在 IE 盒模型中,盒子宽高不仅包含了元素的宽高,而且包含了元素的边框以及内边距。 所以在同样的设置下,IE 下的元素会看起来相对于标准盒子来的小,如果你想要标准盒子变为像 IE 盒模型,可以对元素样式进行设置: .item { box-sizing: border-box; //IE 盒模型效果 box-sizing: content-box; //默认值,标准盒模型效果 } 二、querySelectorAll 与 getElementsBy 系列的区别: 根据该问题下的答案 querySelectorAll 方法相比 getElementsBy 系列方法有什么区别? ,我简单地总结一下: querySelectorAll 属于 W3C 中 Selectors API 规范, 而 getElementsBy 系列则属于 W3C DOM 规范。 querySelectorAll 方法接受参数是 CSS 选择符,当传入的是不符合 CSS 选择符规范时会抛出异常,而 getElementsBy 系列则接受的参数是单一的 className,tagName 等等。 从返回值角度来看

javascript: 数据类型深入理解

寵の児 提交于 2020-02-01 01:52:35
1.基本类型(值类型或者原始类型): Number、Boolean、String、NULL、Undefined以及ES6的Symbol 2.引用类型:Object、Array、Function、Date等 1 、在内存中的位置不同 基本类型: 占用空间固定,保存在 栈中 ; 引用类型:占用空间不固定,保存在 堆中 ; 栈(stack)为自动分配的内存空间,它由系统自动释放;使用一级缓存,被调用时通常处于存储空间中,调用后被立即释放。 堆(heap)则是动态分配的内存,大小不定也不会自动释放。使用二级缓存,生命周期与虚拟机的GC算法有关 当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将会逐个放入这块栈内存里,随着方法的执行结束,这个方法的内存栈也将自然销毁了。因此,所有在方法中定义的变量都是放在栈内存中的;栈中存储的是基础变量以及一些对象的引用变量,基础变量的值是存储在栈中,而引用变量存储在栈中的是指向堆中的数组或者对象的地址,这就是为何修改引用类型总会影响到其他指向这个地址的引用变量。 当我们在程序中创建一个对象时,这个对象将被保存到运行时数据区中,以便反复利用(因为对象的创建成本通常较大),这个运行时数据区就是堆内存。堆内存中的对象不会随方法的结束而销毁,即使方法结束后,这个对象还可能被另一个引用变量所引用(方法的参数传递时很常见)

276 探索instanceof

落花浮王杯 提交于 2020-01-30 21:52:04
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>05_探索instanceof</title> </head> <body> <!-- 1. instanceof是如何判断的? * 表达式: A instanceof B 【A是实例对象,B是构造函数。】 * 如果B函数的显式原型对象在A对象的原型链上, 返回true, 否则返回false 2. Function是通过new自己产生的实例 --> <script type="text/javascript"> /* 案例1 */ function Foo() {} var f1 = new Foo() console.log(f1 instanceof Foo) // true console.log(f1 instanceof Object) // true /* 案例2 */ console.log(Object instanceof Function) // true 【Object是个函数类型,这很明显嘛】【这里Object是实例对象,Function是构造函数,Object/Object()是new Function产生的,Object作为一个函数来说,是new Function产生的】 【因为Object也是构造函数

Using instanceof with a class Object [duplicate]

流过昼夜 提交于 2020-01-30 13:08:27
问题 This question already has answers here : Is there something like instanceOf(Class<?> c) in Java? (7 answers) Closed 4 years ago . What's the correct syntax to make this work? public boolean isTypeOf(Class type) { return this instanceof type; } I intend to call it with: foo.isTypeOf(MyClass.class); The method will be overriden, otherwise I would just use instanceof inplace. 回答1: Use Class.isInstance(obj): public boolean isTypeOf(Class type) { return type.isInstance(this); } This method

Using instanceof with a class Object [duplicate]

久未见 提交于 2020-01-30 13:08:07
问题 This question already has answers here : Is there something like instanceOf(Class<?> c) in Java? (7 answers) Closed 4 years ago . What's the correct syntax to make this work? public boolean isTypeOf(Class type) { return this instanceof type; } I intend to call it with: foo.isTypeOf(MyClass.class); The method will be overriden, otherwise I would just use instanceof inplace. 回答1: Use Class.isInstance(obj): public boolean isTypeOf(Class type) { return type.isInstance(this); } This method

判断对象类型 typeof instanceof Object.prototype.tostring()

半世苍凉 提交于 2020-01-30 06:25:00
常见的有三种方法 1, typeof 2, instance of 3, object.prototype.toString.apply(); 1,typeof typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串。如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在)。 但 typeof 的能力有限,其对于Date、RegExp类型返回的都是"object"。如: typeof {}; // "object" typeof []; // "object" typeof new Date(); // "object" 2,instanceof instanceof 运算符。 instanceof 运算符要求其左边的运算数是一个对象,右边的运算数是对象类的名字或构造函数。如果 object 是 class 或构造函数的实例,则 instanceof 运算符返回 true。如果 object 不是指定类或函数的实例,或者 object 为 null,则返回 false。如 [] instanceof Array; // true [] instanceof Object; // true [] instanceof RegExp; // false new

es6-symbol之知名符号

半腔热情 提交于 2020-01-29 11:17:45
知名符号(公共、具名)是一些具有特殊含义的共享符号,通过Symbol的静态属性得到 ES6延续了ES5的思想:减少魔法,暴露内部实现! 因此ES6用知名符号暴露了某些场景的内部实现。 Symbol.hasInstance 该符号用于定义构造函数的静态成员,它将影响instanceof的判定 obj instanceof A //等效于 A[Symbol.hasInstance](obj) //Function.prototype[Symbol.hasInstance] 例: function A() { } const obj = new A(); console.log(obj instanceof A); //true console.log(A[Symbol.hasInstance](obj));//true 这里有了Symbol.hasInstance这个静态属性,我们便可以参与instanceof的判定的内部实现,这次为了让它判断的时候返回false。 function A() { } Object.defineProperty(A, Symbol.hasInstance, { //这里甚至可以写一些打印的语句,在执行instanceof判断的时候也是会打印到控制台的。 value: function(obj) { return false; } }) const obj

[译]JavaScript:typeof的用途

╄→尐↘猪︶ㄣ 提交于 2020-01-25 05:26:43
/*--> */ /*--> */ 原文: http://www.2ality.com/2012/01/typeof-use-cases.html JavaScript中的 typeof其实非常复杂,它可以用来做很多事情 ,但同时也有很多怪异的表现.本文列举出了它的多个用法,而且还指出了存在的问题以及解决办法. 阅读本文的前提是,你现在应该已经知道原始值和对象值的区别了. 1.检查一个变量是否存在,是否有值. typeof在两种情况下会返回 "undefined" :一个变量没有被声明的时候,和一个变量的值是 undefined的时候 .例如: > typeof undeclaredVariable === "undefined" true > var declaredVariable; > typeof declaredVariable 'undefined' > typeof undefined 'undefined' 还有其他办法检测某个值是否是 undefined : > var value = undefined; > value === undefined true 但这种方法如果使用在一个未声明的变量上的时候,就会抛出异常,因为只有 typeof才可以正常检测未声明的变量的同时还不报错 : > undeclaredVariable === undefined