javaSE_day07_访问权限

2018-05-18  本文已影响0人  智慧之门

访问修饰符

                                  本类    同包    子类    不同包

private      私有的       可以

default       默认         可以    可以

protected  保护          可以    可以    可以

public        公共的      可以    可以    可以  可以

-----------------------------------------------------

:public,默认。

类中的成员:public,protected,默认,private

-----------------------------------------------------

static  静态

修饰:属性,方法,代码块,类。

--------------------------------------------

修饰属性:静态成员变量(类变量)

实例成员变量:属于 对象,存在堆中。

静态成员变量:属于 类,存在 方法区中 。被所有对象所共享 ,优先于对象存在。

使用语法

  类名.类变量

  对象名.类变量//尽量不使用此方式

场合

  当数据 需要共享时使用。

************************************************************************************************************************************

实例成员变量  和  静态成员变量的区别:

1.静态成员变量 属于类; 实例成员变量 属于 对象;

2.加载类 时 加载静态变量;创建对象时  创建 实例变量;

3.类销毁时(应用程序结束时) ,静态变量销毁; 所以 静态 变量的生命周期长。 对象销毁了 , 实例变量 会 销毁。

***************************************************************************************************************************************

-------------------------------------------------

修饰方法:静态方法

注意

1.静态方法只能直接访问 静态成员。

2.不能使用 this,super.

场合

  1.不用创建对象使用;

  2.共享的方法,使用简单。

********************************************************************************************

静态方法 和  普通实例方法区别:

1. 静态方法只能直接访问 静态成员。 实例方法 都可以访问;

2.静态方法 不能使用 this,super;实例方法可以 使用 this,super.

3.静态方法 不用对象 ,用类名 就可以调用。实例方法 必须 用对象调用。

*******************************************************************************************

--------------------------------------------

修饰代码块

1.静态块

class 类{

  static{

    初始化类;

  }

}

执行:类加载的时候自动执行;静态块 优先 构造块;

2.构造块

class 类{

  {

  初始化 对象

  }

}

3.局部代码块

定义:

public void 方法中(){

  {

    作用:限制 局部变量的 使用范围 和 生命周期。

  }

}

-------------------------------------------

静态导入

import static 包名.类型名.静态成员;

import static 包名.类型名.*;

--------------------------------------------

单例模式

饿汉式 懒汉式 区别:

1.饿汉式 静态变量 在类加载时 就已经 创建对象赋值了;懒汉式 只有在调用方法使用时 才 创建对象赋值。

2.多线程使用时 ,饿汉式更安全;懒汉式 数据不安全。(线程非安全)

----------------------------------------------------

随机数

方式一

Math类的方法:

//任意范围  [最小值,最大值]

// int 随机整数  =  (int)(Math.random()*(最大值 - 最小值 + 1)+最小值);

方式二

Random 类的方法;      随机种子

上一篇下一篇

猜你喜欢

热点阅读