4.7-全栈Java笔记:静态初始模块与参数传值机制



静态初始化块

构造方法用于对象的初始化!

静态初始化块,用于类的初始化操作!在静态初始化块中不能访问非static成员。

静态初始化块执行顺序(学完继承再看这里):

上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到我们的类的静态初始化块为止。

构造方法执行顺序和上面顺序一样!! 

【示例1static初始化块

public class   User {

    int id;           //id

    String name;  //账户名

    String pwd;   //密码

    static   String company//公司名称

 

    static {

       System.out.println("执行类的初始化工作");

       company = "北京尚学堂";

       printCompay();

    }

   

    public static void   printCompay(){

       System.out.println(company);

    }

   

    public static void   main(String[] args) {

       User  u3 = new   User();

    }

}

   示例1 运行结果图 

参数传值机制

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

1)基本数据类型参数的传值

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

2)引用类型参数的传值

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

【示例 2】 多个变量指向同一个对象

 public class   User {

    int id;           //id

    String name;  //账户名

    String pwd;   //密码

   

    public   User(int id, String name) {

       this.id =   id;

       this.name = name;

    }

   

    public static void   main(String[] args) {

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

       User u3 = u1;

       System.out.println(u1.name);

       u3.name="张三";

       System.out.println(u1.name);

    }

}

   示例2 运行结果图 

3)this隐式参数

对象的所有方法(包含构造方法)都被编译器默认增加了一个隐式参数this




「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G,10年Java研发经验,曾在神州数码、航天院某所研发中心从事软件设计及研发工作,从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发,精通JAVAEE,熟悉各种流行开发框架。


笔记包含从浅入深的六大部分:

A-Java入门阶段

B-数据库从入门到精通  

C-手刃移动前端和Web前端

D-J2EE从了解到实战

E-Java高级框架精解

F-Linux和Hadoop 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值