- 静态
- 关键字修饰:static
- 可以修饰属性、类、方法、内部类、代码块
- 静态属性与非静态方法(实例变量)
实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性。当修改其中一
个对象中的
非静态属性时,不会导致其他对象中同样的属性值的修改。
静态变量:我们创建了类的多个对象,多个对象共享同一个静态变量。当通过某一个对象修改静态变
量时,会导致其他对象调用此静态变量时,是修改过了的。 - static修饰属性的其他说明:
① 静态变量随着类的加载而加载。可以通过"类.静态变量"的方式进行调用
② 静态变量的加载要早于对象的创建。
③ 由于类只会加载一次,则静态变量在内存中也只会存在一份:存在方法区的静态域中。
④ 类变量 实例变量 - 如:System.out、Math.PI、Math.random()
- 静态方法里面不能有super、this关键字
- 工具类中的方法,习惯上声明为static的。 比如:Math、Arrays、Collections
- 代码块
- 代码块的作用:用来初始化类、对象
- 代码块如果有修饰的话,只能使用static.
- 静态代码块:
- 内部可以有输出语句
- 随着类的加载执行,只执行一次
- 用于初始化类的信息
- 有多个,就按照声明的顺序执行
- 静态执行大于非静态
- 静态代码快只能调用静态属性、静态方法不能调用非静态的属性、方法
- 非静态代码块
- 随着对象的创建而执行
- 没创建一个对象,就执行一遍
- 作用:在创建对象时,对属性等进行初始化
- 多个,按照声明顺序依次执行
- 非静态可以调用非静态方法、属性,也可以调用静态方法、属性
- Object类
- 所有类的父类、顶级类
- == 与 equal区别
- ==在用于基本数据类型,是值得对比,在引用数据类型,是地址的比对
- equal在是比较的是内容,可以在类中重写equal方法,equal()返回的是boolean值
- clone()方法:
- Person p = new Person(23, “zhang”); Person p1 = (Person) p.clone();
- 可以在类中重写clone()方法
第十天的知识(Object类,静态,代码块)
最新推荐文章于 2024-07-25 16:58:56 发布