Java Instanceof操作符和类型转换

一、Java Instanceof 操作符Java中用于检验某个对象是否是别外一个类的对象时,使用操作符instanceof语法格式:A instanceof B, 返回值是boolean型。A是对象,B是一个类A对象所对应引用变量,必须与B类在同一条关系线上(存在父子关系),否则编译不通过。如:// 关系网: // Object -> Person -> Teacher ->

认识Java中的多态

多态是方法的多态,属性没有多态。一、Java的多态分运行多态和编译多态编译多态:编译多态 通常指的是方法的重载,方法在编译时由程序根据参数列表的不同选择相应的方法。运行多态运行多态 指的程序编译时无法确定引用变量调用的是哪个实例的具体方法,最终调用状态只有在程序执行过程中才被会被决定,这种动态调用子父类方法的情况就是Java的多态 。注意:多态必须是继承关系,(父类和子类),没联系抛出类型转换异常

Java面向对象编程11 - 方法的重写

重写只与方法有关,与属性没有关系。一、 方法重写的概念方法的重写指的是在继承关系中,子类定义一个方法名,返回值(八大基本数据类型)和参数列表都和父类一样的方法,而这个方法内的方法体可以跟父类不一样,用以实现不一样的功能。可以这么理解,方法重写就是子类方法对父类原方法的覆盖。值得注意的是,方法重写,从jdk 1.5开始,返回值类型不再要求是相同类型,放宽了这个限制,被重写的方法的返回值类型可以是其父

Java面向对象编程10 - Super详解

Java中Super的用法详解Java中的super关键字,就如字面意思,代表的就是超类(父类)。与之相对应的关键字就是this,就就是当前类。应用到操作的对象来说,分别代表的就是父类对象和当前类对象。一、Super在方法和属性中的应用:当父类,子类同时出现相同属性名却带有不同修饰符的属性时,this,super 就能很好的区分对象要调用的是哪个对象的属性。如:父类,子类中都有属性name,thi

Java面向对象编程09 - 继承详解

继承继承同样是是Java的三大特性之一,其本质是对某一批类的抽象,是从已有的类中派生出来的类,具有原类的属性和方法,且能扩展新的数据属性及方法。继承关系的两个类,一个是子类(或派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示,extends,“扩展” 的意思。子类继承父类,子类就拥有父类的属性和方法。Java中,类只有单继承,没有多继承。单继承是指每个子类只有一个父类,然

Java面向对象编程08 - 封装详解

Java 封装概念:封装(Encapsulation)是Java的三大特性之一,顾名思义,封装就是把东西包起来,不允许用户直接操作被隐藏的信息,而是通过定义好的方法来访问和更新被包起来的信息。目的:封装的目的就是提供安全保障,封装代码实现细节,防止用户随意操作类属性让系统崩溃。同时方便后期维护,保护对象信息的完整性。封装原则:把成员变量(属性)和代码实现细节隐藏起来,不允许外部直接访问。提供相应的

Java面向对象编程06 - 创建对象内存分析

简单分析创建对象时的内存分配这节对Java中创建对象时的内存分配情况作个简单的分析。先敲出测试代码://Application.java package com.zctou.oop; import com.zctou.oop.demo02.Pet; public class Application { public static void main(String[] args) {

Java面向对象编程05 - 构造器详解

Java中的构造器一、构造器简述构造器也称为构造方法,是一种特殊方法。是创建对象时程序必须调用的一种方法,也就是其主要功能就是伴随关键字new一起创建对象。经常用于初始化对象的的属性(给成员员变量赋值)。二、构造器的语法:修饰符 类名 (参数列表...){ //逻辑代码 }1.1 无参构造:类中即便没定义任何构造器,Java程序也会默认创建一个无参构造器。自动无参构造示例://Applica

Java面向对象编程04 - 对象创建

一、类与对象的关系1.1 类:前面提过,类就是一种抽象的数据类型,并不是某一件事物的具体描述,可以解为目录结构中的目录(包括父目录,子目录 )如:动物、植物、飞机Java类统称为XX类,如汽车类,学生类,教师类等1.2 对象对就就是些具体的实例如上面提到的教师类,具体实例就是老王,老张这些个体。能体现出特点,展现出具体功能的实例就是对象。在Java中,用关键字new来创建对象使用new 关键字创建

Java面向对象编程02-03 - 方法调用回顾

1. 方法的调用方法分静态方法与动态方法静态方法:通过 类名.方法()调用,也可以用对象.方法()调用,非静态方法:通过new 类名().方法()调用,也就是实例化后调用。示例:package com.zctou.oop; public class Demo01 { public static void main(String[] args) { //方法的两种调用方法