- 浏览: 73980 次
- 性别:
- 来自: 天津
文章分类
最新评论
第一:向下转型
1.向下转型:
Animal a=new Dog(); Dog d=(Dog)a;这就是向下转型,注意Dog d=(Dog)a中必须是Dog类型的a才行。向下转型以后就不是多肽了
2.instanceof 关键字的引出:
向下转型以后将失去多肽的效果,向下转型指向转变成具体的子类,因此不能统一写的能力了(不能统一写成animal类了,只能把animal分别写成dog,cat,pig)。但是此对象到底是dog、cat、pig中的哪个呢?为了解决这个问题,我们引入了instanceof 关键字,用instanceof 做出判断
3.instanceof 关键字的使用:
if(ani instanceof Dog),这是向下转型的时候用到的。判断ani这个变量是不是dog类型,如果是dog的话,就可以向下转型成dog:Dog d=(Dog)ani
第二:object类:
1.object类的定义
object类是所有类的父类,所有类都实现这个类的方法。一个类间接或者直接的继承了object类。
2.object类的声明
Object obj=new 任何对象。
注意:object类可以声明成任何类型的对象,因为object类是根类,此时就相当于发生了向上转型了。因为任何类默认情况下就继承了object类
3.object类的常用方法:
1).==:比较的是栈内存的地址
2).equals:默认(object类)比较的也是栈内存的地址,我们可以重写object(父类)中的equals方法,让他比较堆内存的属性值(数据).
3).tostring是输出对象的地址,我们可以重写,重写获得对象属性值(具体值)
4).finalize:垃圾回收器,释放系统资源:当对象的引用消失了就把该对象回收了。也就是栈内存没有了,相应的堆内存数据就是垃圾了。堆内存数据不会立马回收
5).System.gc(),这是启动垃圾回收器,立马回收。如果不写这个方法的话,就由java虚拟机来回收,但是不是立马回收。
当程序结束的时候,该程序在内存中对应的.class文件将消失,当垃圾回收器确定不存在该对象的引用的时候,由垃圾回收器调用object类的finalize方法将此对象回收。释放资源
4.==是比较的地址,那么equals为什么也是比较地址呢?
因为object类中的equals方法是这样写的:
public boolean equals(Object obj){return (this==obj)},其中this就是调用equals方法的那个对象,所以虽然用了equals,但是最后还是用==进行比较的。
5.obejct类的equals默认比较的是地址,那么子类继承object类之后需要重写equals方法来比较两个对象的具体数据。
//重写父类中的equals方法,比较两个对象的属性值或者内容
public boolean equals(Object obj)
{
if(this==obj)
return true;
if(!(obj instanceof Student))
return false;
Student s =(Student)obj;
if(this.sno==s.sno&&this.age==s.age)
{
return true;
}
return false;
}
6.toString()方法在object类中默认比较的也是栈内存的地址,为了让tostring方法比较具体数据,就需要对tostring进行重写(当打印一个对象的时候,会默认调用toString(),默认获得对象的地址:system.out.print("s="+s)相当于system.out.print("s="+s.toString()))
//重写toString ,返回对象的内容
public String toString()
{
return "学号:"+sno+" 年龄:"+age;
}
7.finalize方法在object类中是这样定义的:
protected void finalize throws Throwable(){},
该方法不是抽象方法,但是方法体中没东西。
1.向下转型:
Animal a=new Dog(); Dog d=(Dog)a;这就是向下转型,注意Dog d=(Dog)a中必须是Dog类型的a才行。向下转型以后就不是多肽了
2.instanceof 关键字的引出:
向下转型以后将失去多肽的效果,向下转型指向转变成具体的子类,因此不能统一写的能力了(不能统一写成animal类了,只能把animal分别写成dog,cat,pig)。但是此对象到底是dog、cat、pig中的哪个呢?为了解决这个问题,我们引入了instanceof 关键字,用instanceof 做出判断
3.instanceof 关键字的使用:
if(ani instanceof Dog),这是向下转型的时候用到的。判断ani这个变量是不是dog类型,如果是dog的话,就可以向下转型成dog:Dog d=(Dog)ani
第二:object类:
1.object类的定义
object类是所有类的父类,所有类都实现这个类的方法。一个类间接或者直接的继承了object类。
2.object类的声明
Object obj=new 任何对象。
注意:object类可以声明成任何类型的对象,因为object类是根类,此时就相当于发生了向上转型了。因为任何类默认情况下就继承了object类
3.object类的常用方法:
1).==:比较的是栈内存的地址
2).equals:默认(object类)比较的也是栈内存的地址,我们可以重写object(父类)中的equals方法,让他比较堆内存的属性值(数据).
3).tostring是输出对象的地址,我们可以重写,重写获得对象属性值(具体值)
4).finalize:垃圾回收器,释放系统资源:当对象的引用消失了就把该对象回收了。也就是栈内存没有了,相应的堆内存数据就是垃圾了。堆内存数据不会立马回收
5).System.gc(),这是启动垃圾回收器,立马回收。如果不写这个方法的话,就由java虚拟机来回收,但是不是立马回收。
当程序结束的时候,该程序在内存中对应的.class文件将消失,当垃圾回收器确定不存在该对象的引用的时候,由垃圾回收器调用object类的finalize方法将此对象回收。释放资源
4.==是比较的地址,那么equals为什么也是比较地址呢?
因为object类中的equals方法是这样写的:
public boolean equals(Object obj){return (this==obj)},其中this就是调用equals方法的那个对象,所以虽然用了equals,但是最后还是用==进行比较的。
5.obejct类的equals默认比较的是地址,那么子类继承object类之后需要重写equals方法来比较两个对象的具体数据。
//重写父类中的equals方法,比较两个对象的属性值或者内容
public boolean equals(Object obj)
{
if(this==obj)
return true;
if(!(obj instanceof Student))
return false;
Student s =(Student)obj;
if(this.sno==s.sno&&this.age==s.age)
{
return true;
}
return false;
}
6.toString()方法在object类中默认比较的也是栈内存的地址,为了让tostring方法比较具体数据,就需要对tostring进行重写(当打印一个对象的时候,会默认调用toString(),默认获得对象的地址:system.out.print("s="+s)相当于system.out.print("s="+s.toString()))
//重写toString ,返回对象的内容
public String toString()
{
return "学号:"+sno+" 年龄:"+age;
}
7.finalize方法在object类中是这样定义的:
protected void finalize throws Throwable(){},
该方法不是抽象方法,但是方法体中没东西。
发表评论
-
二分法、冒泡排序
2017-03-03 10:31 359import java.util.Scanner;/** ... -
for、while循环,打印三角形、菱形
2017-03-03 09:54 545import java.util.Scanner;publi ... -
单线程与多线程
2016-01-16 12:10 616单线程:按照程序 ... -
字节流,字符流,对象流,序列化,持久化
2016-01-15 11:25 675第一:读写字符串 input(读文件里的内容) 的步骤: ... -
深入反射、IO文件、字节流
2016-01-15 11:11 465第一:反射相关的概念 1.反射中调用构造函数默认都是调用 ... -
百度字符串
2016-01-07 17:41 5491、length() 字符串的长度 例:char char ... -
map集合转化成list集合
2015-12-28 15:52 1669package emp; public class Emp ... -
反射
2015-12-28 15:47 421第一:反射的概念 1.(1).java程序源文件(属性和 ... -
泛型
2015-12-28 15:24 397第一:泛型:问题:1.在运算时候必须要向下转型。向下转型存 ... -
map集合和他的实现类hasHmap(不安全)和hashTable(安全)
2015-12-28 15:15 607第一:初步认识map 1.键值对(key与value是一一 ... -
set接口和它的实现类treeset和hashset
2015-12-01 22:50 538第一:set接口:set接口里面的元素不能重复,因此nul ... -
Collection集合根接口、两个子接口list和set
2015-11-30 22:29 618第一:由数组的 ... -
String与StringBuffer、Date日期与SimpleDateFormat 简单的日期格式化
2015-11-29 22:31 643第一:String类:字符串常量1.String是一个类, ... -
异常与异常类
2015-11-25 22:58 391第一.异常的概念:异常就是程序在运行中的错误,程序中的异常用异 ... -
快捷键
2015-11-24 23:06 2891.导包:ctrl+shift+O 2.找类:ctrl+shi ... -
接口,抽象类与接口的关系。多肽、向上转型与动态绑定的引出
2015-11-23 22:04 456第一:在引入接口之前 ... -
关键字:extends继承、abstract 抽象,继承与抽象类之间的关系、final最终的
2015-11-22 17:02 854----继承 1.extends的是继承或者扩展的意思。父类写 ... -
由static引出单例模式
2015-11-22 16:20 309单例模式的特点:保证在整个应用程序中只存在一个对象 单例模式的 ... -
this和static关键字,javadoc文档的产生
2015-11-22 15:51 336----this和static关键字 public class ... -
java内存分析
2015-11-22 15:16 2571.局部变量中的引用类型是把地址存到栈内存中,由栈内存中的地址 ...
相关推荐
在Java编程语言中,`instanceof`是一个十分重要的关键字,用于判断一个对象是否属于特定的类或接口。本文将详细解释`instanceof`的关键特性和使用场景,并通过示例代码加深理解。 #### 一、基本概念 `instanceof`...
面向对象编程是Java语言的核心特性之一,而`instanceof`关键字在Java中扮演着...通过视频课程"第05章 面向对象(下) 09 Instanceof关键字.mp4",你可以深入学习这一主题,并掌握`instanceof`在实际编程中的正确用法。
java学习-java中的继承extents和instanceof关键字
在面向对象编程中,向下转型和`instanceof`运算符是两种重要的概念,尤其是在多态性的实现中扮演关键角色。本文将深入探讨这两个主题,并结合Delphi编程语言的背景进行阐述,尽管`instanceof`运算符在Java中更为常见...
instanceof 关键字的使用格式为:result = object instanceof class,其中 result 为布尔类型,object 为任意对象表达式,class 为任意已定义的对象类。如果 object 是 class 的一个实例,则 instanceof 运算符返回 ...
在Java编程语言中,`instanceof`关键字是一个非常重要的工具,它用于判断对象是否属于某个类、接口或者其子类。这个关键字可以帮助开发者在运行时检查一个对象的类型,从而进行更加灵活的代码控制。本篇文章将深入...
day10_22_用instanceof关键字进行类型判断
`instanceof`是PHP中的一个关键字,用于检测一个对象是否属于特定的类、类的子类,或是否实现了特定的接口。它在PHP5中引入,增强了类型检查的能力,使得开发者能够更加灵活地处理不同类型的对象。理解`instanceof`...
`instanceof` 是Java语言中一个非常重要的关键字,它用于判断对象是否属于某个类或其子类(或实现了某个接口)。在Java的世界里,`instanceof` 关键字扮演着类型检查的角色,帮助开发者在运行时确定对象的实际类型。...
在Java编程语言中,`instanceof`关键字是一个非常重要的概念,它主要用于判断对象是否属于某个类、接口或者其子类。这个关键字可以帮助开发者确定对象的实际类型,从而在运行时进行类型检查,执行条件操作或者执行多...
在Java编程语言中,`instanceof`关键字是一个非常重要的概念,尤其对于理解面向对象编程的精髓至关重要。这个关键字主要用于检查一个对象是否属于某个类、其子类或实现了某个接口。在"288.286.JAVA基础教程_面向对象...
第21天,super,instanceof关键字的使用以及多态的认识
Java中的`final`和`instanceof`关键字在编程中扮演着不同的角色,它们各有各的用途和限制。这里我们将深入探讨这两个关键字的区别及其在Java编程中的应用。 首先,`final`关键字是一个非常重要的限定符,它可以在三...
计算机后端-Java-Java核心基础-第14章 面向对象06 05. instanceof关键字的使用.avi
instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例。 instanceof是Java的一个二元操作符,和==,>,<是同一类东东。由于它是由字母组成的,所以也是Java的保留...
instanceof 马克-to-win java视频的详细的描述介绍
NULL 博文链接:https://chaoyi.iteye.com/blog/2079574
Java中的`instanceof`关键字是程序在运行时检查对象类型的强大工具。它是Java语言中用于类型判断的关键字,能够帮助开发者确定对象是否属于特定类或其子类(或实现的接口)的实例。`instanceof`操作符返回的是一个...