1.类的方法必须包含几个部分?
2.成员变量和局部变量
- 类的方法必须包含哪几个部分?
- .方法名:用于标识方法的名称,遵循标识符命名规则,通常采用驼峰命名法。
- 返回值类型:指定方法返回的数据类型。如果方法不返回任何值,应使用void。
- 方法体:包含实现方法功能的代码块,用大括号{}包裹
- 参数列表:位于方法名后的括号内,指定方法接收的输入参数。参数可以是零个或多个,每个参数由类型或名称组成
- 访问修饰符:控制方法的可见性和访问权限,如public、protected等。
2、成员变量和局部变量
*定义与位置
成员变量:定义在类中,但在方法、构造函数或代码块之外,属于类的一部分。
局部变量:定义在方法、构造函数或代码块内部,仅在其所在的作用域内有效。
*作用域:
成员变量:作用域覆盖整个类,可以通过对象访问
局部变量:作用域仅限于定义它的方法、构造函数或代码块内。
*生命周期:
成员变量:生命周期与对象绑定。实例变量随对象的创建而存在,随对象的销毁而销毁。静态变量的生命周期与类的加载和卸载相同。
局部变量:生命周期从声明时开始,到所在方法、构造函数或代码块执行结束时终止。
*存储位置:
成员变量:存储在堆内存中
局部变量:存储在栈内存中
*默认值:
成员变量:编译器会自动赋予默认值。如数值型为0,布尔型为false,引用类型为null
局部变量:没有默认值,必须显式初始化后才能使用。
*修饰符:
成员变量:可以被public、protected、private等访问修饰符修饰,还可以用static、final等关键字。
局部变量:不能使用访问修饰符,只能用final修饰。
*线程安全:
成员变量:在多线程环境下,非final的成员变量需考虑同步问题。
局部变量:是线程安全的,因为它们会存储在每个线程的栈中,不会被其他线程共享。
*命名冲突:如果局部变量与成员变量同名,局部变量会覆盖成员变量。可以通过this关键字访问成员变量。