类和对象

是一类事物的模板,所有的类都是引用类型

对象  是一个具体存在的个体/实例

1.方法的参数传递机制:----->永远都是值的传递

    1..1基本数据类型传的是那个值,引用类型传的是引用

    1.2可变形参:可变形参实际上是一个数组.

                a.可变形参在参数列表中只能存在一个;

                 b.可变形参只能在参数列表的最后;

                 c.在两个重载方法中,传入0个或多个参数,调用的是可变形参的方法;

2.方法的重载overload

    方法名一样,但是参数列表不一样;因为java在调用这个方法时,只关注方法名和参数列表,不关注修饰符和返回值

3.成员变量和局部变量

    成员变量: 成员变量无需显式的初始化.类变量的初始化是在类的准备阶段,成员变量初始化是在调用构造器之前

                    1.类变量:static修饰  作为类本身的成员,与类本身共存亡

                   2.实例变量:作为实例成员,与实例共存亡;

boolean        false

char              '/u0000'(null)

byte              (byte)0

short             (short)0

int                  0

long               0L

float               0.0f

double           0.0d

引用类型:null

    局部变量:1.形参

                   2.方法局部变量                 ------------->除形参不需要显式初始化,都需要在调用之前显式初始化

                   3.代码块局部变量

    局部变量可以和成员变量同名,局部变量会覆盖成员变量,需要用this调用被覆盖的成员变量.

    局部变量不属于任何类和实例,它总是保存在其方法是栈内存中,栈中的变量无需回收,随着方法或者代码块的结束而消亡

结论:   需要缩小变量的生存时间,减少内存开销;

            缩小变量的作用域,提高程序的内聚性;

4.构造器

    4.1在调用构造器之前,为实例变量进行初始化,并

    4.2在调用构造器时,系统在之前就已经创建了这个对象,但是程序还无法引用到.  构造器把这个对象作为返回值返回;

    4.3构造器的重载:

        tips:在一个构造器里利用this(参)调用另一个构造器;



5.初始化代码块

    1.普通代码块

        ----->负责对对象的初始化,在调用构造器之前执行;

    2.静态代码块

    -------->系统在类的初始化阶段执行静态代码块,属于类的静态成员,不能访问非静态成员; 静态代码块总是会比普通代码块先执行;

            1.装载:jvm将class文件装载入内存的过程(方法区)
 * 2.连接:
 *   1)校验:检查载入class文件数据的正确性
 *   2)准备:给类的静态变量分配存储空间(设置默认值)
 *   3)解析:将符号引用转化为直接引用
 * 3.初始化
 * 以上过程都不针对非静态成员

 * 实例变量是在创建对象的时候 加载并初始化(在调用构造方法之前):重点



类的初始化阶段总是先调用顶层父类的静态代码块,再调用子类的静态代码块;

对象的初始化阶段,先执行顶层父类的普通代码块和构造器,再一直往下;




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值