属性
又称为成员变量,也叫域、字段(field)
方法
方法=成员方法=函数=method
如果创建了一个类的多个对象,每个对象都独立拥有一套这个类的属性(非static的)。即,如果我们修改一个对象的属性,不影响另外一个对象属性的值。
Person p3=p1;//p1是基于Person类的对象
以上代码表明将p1对象的地址值赋给了p3,即p3和p1指向同一个对象实体。修改p1也就是修改p3,修改p3也就是修改p1。
JAVA内存解析:
虚拟机栈(VM stack):用于存放局部变量。
堆(heap):用于存放对象实例。
方法区(method area):类信息、常量、静态变量等。
方法中定义的变量都是局部变量。
类中属性(成员变量)VS局部变量
1.不同点
1.1在类中声明的位置不同
属性:直接定义在类的一对{}中
局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内的变量
1.2关于权限修饰符的不同
属性:可以在声明属性时,指明其权限,使用权限修饰符。
常用的权限修饰符:private public 缺省 protected
1.3默认初始化值不同
属性:整形:0 浮点型:0.0 布尔型:false 字符型:0 引用数据类型:null
局部变量:没有初始化值。这意味着在调用局部变量之前,一定要显示赋值。特别地,形参在调用时赋值就行。
1.4二者在内存中加载的位置不一样
属性加载到堆空间中(static加载到方法区),局部变量加载到栈中
2相同点
2.1定义变量的格式:数据类型 变量名=变量值
2.2先声明,后使用
2.3都有作用域
方法的声明
权限修饰符 返回值 方法名(形参列表)
{
方法体
}
其中,形参列表可以没有,形参可以有0~多个
方法的使用中,可以调用当前类的属性和方法
不能在方法里再定义方法。