Java中的Liu、继承、组合
- -- - - - - - - - - - - -- - - -- - - -- - - - - -- - -- -- - - - - - - - - -- -- -- - - - - - -- -- - - - - - - -
- -- - - - - - - - - - - -- - - -- - - -- - - - - -- - -- -- - - - - - - - - -- -- -- - - - - - -- -- - - - - - - -
Alt +Shift +s 快捷键
- -- - - - - - - - - - - -- - - -- - - -- - - - - -- - -- -- - - - - - - - - -- -- -- - - - - - -- -- - - - - - - -
程序包:
管理类和接口的工具。
//声明一个程序包,package 包名[.子包…..];
规范:
①字母都消协;
②包名都是唯一的;
③包具有层次结构;
④域名反转,部门名.项目名;
程序包使用:
不同包:
①不同包下的类互相访问,需要导入包;
import 包名.类型名;
import 包名.*;
或者 使用 完全限定名称:包名,类名;
②有子包。需要导入具体包的类;直接导入父类的包,不能导入子类。
③两个包下的类同名,需要用完全限定名称访问。 包的好处:
③提供了更好的封装,保护了类和类中的成员;
|
- -- - - - - - - - - - - -- - - -- - - -- - - - - -- - -- -- - - - - - - - - -- -- -- - - - - - -- -- - - - - - - -、
常见的包:
Java.lang :核心类库
Java.util:工具类 集合类
Java.text:格式化
Java.math:数学
Java.io: 流
Java.sql:数据库
Java.net;网络编程
记住!记住!记住!
|
本类 |
同包 |
子类 |
不同包 |
Private私有 |
√ |
|
|
|
默认 |
√ |
√ |
|
|
Protected保护 |
√ |
√ |
√ |
|
Public公有 |
√ |
√ |
√ |
√ |
- -- - - - - - - - - - - -- - - -- - - -- - - - - -- - -- -- - - - - - - - - -- -- -- - - - - - -- -- - - - - - - -
修饰类 :public,默认
修饰类中的成员:属性,方法,构造器,
- -- - - - - - - - - - - -- - - -- - - -- - - - - -- - -- -- - - - - - - - - -- -- -- - - - - - -- -- - - - - - - -
Static
修饰符
静态
修饰:属性,方法,代码块,类(内部类)
修饰属性:
Class Demo{
Int n;//实现成员变量;
Static int x;//静态成员变量,类变量
}
静态变量:
- 属于类的
- 类加载的时候初始化
- 不属于对象,但是可以被所有对象共享;
使用方式:
对象名。类变量
类名.静态变量(使用)
作用:共享。
静态变量 和 实例变量区别:
- 静态 属于类;实例 属于对象;
- 静态类加载的时候初始化;
实例 在new创建对象时 初始化。
- 静态 类 卸载时释放。(应用程序结束,生命周期长)
实例 对象释放了就销毁了。
Staitic修饰方法:静态方法,类方法。
作用:
- 使用简单;2.不能创建对象
注意:1.静态方法中只能直接使用静态成员;非静态的,需要用对象调用;
2.静态方法中不能使用this,和super.
静态方法和实例方法的区别:
- 静态方法只能直接使用家庭成员;实例方法 可以使用静态的也可以使用非静态的。
- 静态方法中不能使用this 和super。实例方法可以使用this,super.
- -- - - - - - - - - - - -- - - -- - - -- - - - - -- - -- -- - - - - - - - - -- -- -- - - - - - -- -- - - - - - - -
- 代码块:
-
-
- -- - - - - - - - - - - -- - - -- - - -- - - - - -- - -- -- - - - - - - - - -- -- -- - - - - - -- -- - - - - - - -
3.局部代码块
- Public void 方法(){
- {
- 局部代码块:
- 作用:控制局部变量的使用范围
- }
- }
- 执行顺序:
- Static:类加载自动执行:
- 构造块:new对象,自动执行
- 构造块():new 对象时调用
- 局部块: 只有调用方法是执行;
- Static块>构造块>构造器
- -- - - - - - - - - - - -- - - -- - - -- - - - - -- - -- -- - - - - - - - - -- -- -- - - - - - -- -- - - - - - - -
静态导入:导入不同包下的静态成员
Import staitic 包名,类名,静态变量
- -- - - - - - - - - - - -- - - -- - - -- - - - - -- - -- -- - - - - - - - - -- -- -- - - - - - -- -- - - - - - - -
单例设计模式:只有一个对象。
饿汉式 和 懒汉式:
- 饿汉式 类加载 值就有了;懒汉式 只有在使用的时候才会赋值
- 线程:
多线程:饿汉式 安全;
懒汉式 不安全;
- -- - - - - - - - - - - -- - - -- - - -- - - - - -- - -- -- - - - - - - - - -- -- -- - - - - - -- -- - - - - - - -
- -- - - - - - - - - - - -- - - -- - - -- - - - - -- - -- -- - - - - - - - - -- -- -- - - - - - -- -- - - - - - - -
- -- - - - - - - - - - - -- - - -- - - -- - - - - -- - -- -- - - - - - - - - -- -- -- - - - - - -- -- - - - - - - -
Math类
随机数
产生随机数
(int)(Math.random()*(最大值 - 最小值 + 1)+最小值)
Random类:
Random r1 = new Random(11);
Random r2 = new Random(11);
System.out.println(r1.nextDouble());
System.out.println(r2.nextDouble());
相同的种子 在相同的时间 和次数产生的随机数是一样的。
nextInt()
nextDouble()