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

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

作者: 消失的七月 | 来源:发表于2018-09-23 10:08 被阅读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。

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/unyfoftx.html