2018-09-23静态初始化块、参数值传递、包、继承使用要点

2018-09-23  本文已影响0人  消失的七月

1.静态初始化块:

    记住执行顺序 :有继承的时候也是一样--->想想java SA  JVM构建虚拟机的时候。栈、堆和方法区。在构建

            方法区的类信息(静态变量、静态方法、常量(字符串常量) ),new的时候堆(构建对象的信息(普通变量、

            普通方法)),当调用方法的时候会创建一个栈帧(是连续的新进的后出)。

2.参数值传递:

Java中,方法中所有参数都是“值传递”,也就是“传递的是值的副本”。 也就是说,我们得到的是“原参数的复印件,而不是原件”。因此,复印件改变不会影响原件。

· 基本数据类型参数的传值

  传递的是值的副本。 副本改变不会影响原件。

· 引用类型参数的传值

  传递的是传值的副本。但是引用类型指的是“对象的地址”。因此,副本和原参数都指向了同一个“地址”,改变“副本指向地址对象的值,也意味着原参数指向对象的值也发生了改变”。

    代码示列以及图解:

public class User4 {

    int id;        //id

    String name;   //账户名

    String pwd;   //密码

    public User4(int id, String name) {

        this.id = id;

        this.name = name;

    }

    public   void   testParameterTransfer01(User4  u){

        u.name="高小八";

    }

    public   void   testParameterTransfer02(User4  u){

        u  =  new  User4(200,"高三");

    }

    public static void main(String[] args) {

        User4   u1  =  new User4(100, "高小七");

        u1.testParameterTransfer01(u1); 

        System.out.println(u1.name);

        u1.testParameterTransfer02(u1);

        System.out.println(u1.name);

    /*out下面的图片说明了---->值传递的原因

       高小八 

        高小八

    */

    }

}

清晰图片

3.包

我们通过package实现对类的管理,package的使用有两个要点:

  1. 通常是类的第一句非注释性语句。

  2. 包名:域名倒着写即可,再加上模块名,便于内部管理类。

4.继承使用要点

1.父类也称作超类、基类、派生类等。

2.Java中只有单继承,没有像C++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难于维护。

3.Java中类没有多继承,接口有多继承。

4.子类继承父类,可以得到父类的全部属性和方法 (除了父类的构造方法),但不见得可以直接访问(比如,父类私有的属性和方法)。

5.如果定义一个类时,没有调用extends,则它的父类是:java.lang.Object。

上一篇 下一篇

猜你喜欢

热点阅读