javaSE_day07_访问权限
访问修饰符
本类 同包 子类 不同包
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 类的方法; 随机种子