疯狂Java笔记

第五章

  • 作为程序中最基本的单位:,类是一批对象的抽象,对象(实例)是类的具体。

  • 修饰类的修饰符:publicfinalabstract或者省略。

  • 类的构成   1:初始化块

20~N个变量

                       3:  0~N个方法

               4:  0~N个构造器

  • static java中一个特殊的关键字,可以用于修饰成员变量,修饰方法,有static修饰的方法和成员变量表明它们是属于类的,在没有生成对象时就已经存在,即类存在,静态的就存在;没有用static修饰的方法与变量属于单个实例,在对象创建的过程中存在。静态成员不能访问非静态成员,(但是非静态成员可以访问静态成员,虽然这是一种并不确切的说法,因为静态成员属于类,用对象访问时相当于用类访问)。

  • 一个对象被创建成功以后保存在对内存中,java程序不允许访问对内存中的对象,只能通过该对象的引用来操作该对象。

  • This关键字,根据出现的位置不同this作为关键字的默认引用有两种情形1 构造器中引用该构造器正在初始化的对象

            2 方法体中引用调用该方法的对象

  • 一个类在使用之前要经过 类加载,类验证,类准备,类解析,类初始化,等几个阶段

  • 所有的引用变量都保存在占、栈内存中这句话是错误的,反例,一个Person p=new person()实例,p保存在栈内存中,实例保存在堆内存中,加入实例中有一个String  name的实例变量,它是一个引用变量,但是放置在堆内存之中。

  • 如果定义了一个java类,并未显示这个类的直接父类,则这个类默认扩展java.lang.Object类,因此,java.lang.Object类是所有类的父类,直接父类或者间接父类。

  • Super用于限定该对象调用它从父类继承的来的实例变量或方法。

  • 多态:java引用变量有两个类型,一个是编译时类型,一个是运行时类型,编译时类型由声明该变量时使用的类型决定,运行时类型是由实际赋给给该变量的对象决定。当把一个子类对象赋给一个父类引用变量时,与实际的弗雷对象的引用相比,会出现相同类型的引用,调用同一个方法时呈现出多种不同的行为特征,这就是多态。

  • instanceof运算符的前一个操作数通常是一个引用类型变量,后一个操作数通常是一个类(也可以是接口),它用于判断前面的对象是否是后面的类的实例,如果是,返回true,如果不是,返回false;在此注意一点,instanceof前面的操作数的编译时类型要么与后面的类相同,要么与后面的类具有父子关系,否则会引起编译错误。

EgObject hello=hello”;

IfHello instanceof Object)字符串是Object的实例。

  • java程序的执行顺序:初始化:先执行java.lang.Object类中的静态初始化块,à执行父类中的讲台初始化快à执行该类的静态初始化块。à执行java.lang.Object类中的普通初始化块,构造器;à执行父类中普通初始化块,构造器à该类普通初始化块,构造器;   构造器的执行,总是向执行父类的构造器或者无参构造器。


你可能感兴趣的:(疯狂Java笔记)