🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # 定义 创建java文件, 与类名相同 ~~~ public class 类名 { //可编写0至n个属性 数据类型 变量名1; 数据类型 变量名2; //可编写0至n个方法 修饰符 返回值类型 方法名(参数){ 执行语句; } } ~~~ # 使用 导包:我们将所有的类放到同一个文件夹下,可以避免导包。 创建对象:`数据类型 变量名 = new 数据类型();` 访问属性:变量名.属性 # 局部变量和成员变量区别 区别一:定义的位置不同 定义在类中的变量是成员变量 定义在方法中或者{}语句里面的变量是局部变量 区别二:在内存中的位置不同 成员变量存储在堆内存的对象中 局部变量存储在栈内存的方法中 区别三:声明周期不同 成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失 局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失 区别四:初始化不同 成员变量因为在堆内存中,所有默认的初始化值 局部变量没有默认的初始化值,必须手动的给其赋值才可以使用。 # 构造方法 构造方法的体现: * 构造方法**没有返回值类型**。也不需要写返回值。因为它是为构建对象的,对象创建完,方法就执行结束。 * 构造方法名称必须和类型保持一致。 * 构造方法没有具体的返回值。 构造方法的代码体现: ~~~ class Person { // Person的成员属性age和name private int age; private String name; // Person的构造方法,拥有参数列表 Person(int a, String nm) { // 接受到创建对象时传递进来的值,将值赋给成员属性 age = a; name = nm; } } ~~~ 构造方法的细节: 1. 一个类中可以有多个构造方法,多个构造方法是以重载的形式存在的 2. 构造方法是可以被private修饰的,作用:其他程序无法创建该类的对象 # finalize方法 对象产生一定会调用构造方法,但是某一个对象如果要被销毁连一个首尾的机会都没有 如果要给对象一个收尾的机会,那么可以考虑覆写Object类中finalize() ~~~ protected void finalize() throws Throwable ~~~ 1. finalize()方法不能保证执行 2. finalize()方法在性能上增加负担 # this调用构造方法 构造方法之间的调用,可以通过this关键字来完成。 构造方法调用格式: `this(参数列表);` # 匿名对象 匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。 如:已经存在的类: ~~~ public class Person{ public void eat(){ System.out.println(); } } 创建一个普通对象 Person p = new Person(); 创建一个匿名对象 new Person(); ~~~ * 创建匿名对象直接使用,没有变量名。 ~~~ new Person().eat() //eat方法被一个没有名字的Person对象调用了。 ~~~ * 匿名对象在没有指定其引用变量时,只能使用一次。 ~~~ new Person().eat(); 创建一个匿名对象,调用eat方法 new Person().eat(); 想再次调用eat方法,重新创建了一个匿名对象 ~~~