面向对象一

来源:互联网 发布:罂粟壳在淘宝上叫什么 编辑:程序博客网 时间:2024/06/06 10:54

类的初始化过程:

     Student s = new Student();在内存中做了哪些事情?


      •加载Student.class文件进内存
      •在栈内存为s开辟空间
      •在堆内存为学生对象开辟空间
      •对学生对象的成员变量进行默认初始化
      •对学生对象的成员变量进行显示初始化
      •通过构造方法对学生对象的成员变量赋值
      •学生对象初始化完毕,把对象地址赋值给s变量

static关键字


     static关键字特点
       •随着类的加载而加载
       •优先于对象存在
       •被类的所有对象共享
              •这也是我们判断是否使用静态关键字的条件
       •可以通过类名调用
     static关键字注意事项
       •在静态方法中是没有this关键字的
       •静态方法只能访问静态的成员变量和静态的成员方法
         静态的内容存在于方法区的静态区

代码块

          •Java中,使用{}括起来的代码被称为代码块,根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)
         
          •局部代码块
                •在方法中出现;限定变量生命周期,及早释放,提高内存利用率
         •构造代码块
                •在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
         •静态代码块 在类中方法外出现,加了static修饰
                在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且值执行一次
继承
      
      特点 : Java只支持单继承,不支持多继承。
                  Java
支持多层继承(继承体系)

       super 和 this

                       super的用法和this很像
                             •this代表本类对应的引用。
                             •super代表父类存储空间的标识(可以理解为父类引用)
                      用法(thissuper均可如下使用)
                              访问成员变量
                                                this.成员变量 super.成员变量
                              访问构造方法(子父类的构造方法问题讲)
                                               this(…) super(…)
                              访问成员方法(子父类的成员方法问题讲)
                                              this.成员方法() super.成员方法()




代码一

class X {Y b = new Y("wcb");X() {System.out.print("X");}}class Y {Y() {System.out.print(" Y() ");}Y(String s) {System.out.print(" Y(String) ");}}class Z {Z() {System.out.print("Z");}}public class Main extends X {Z z = new Z();Main() {System.out.print("Z");}public static void main(String args[]) {new Main();System.out.println();}}//-----------OUTPUT-----------//Y(String) XZZ

          

0 0
原创粉丝点击