成员变量 和 局部变量的异同

一、面向对象思想的体现一 : 类和对象的构建
1.创建类 也就是创建类的成员 属性(成员变量) 和 方法(成员方法或成员函数)
2.创建类的对象 (类的实例化 )(这个类的对象通常放在一个有main方法的测试类中 比如 Person p = new Person() 和Scanner 类似)
3.通过:“对象.属性”或者 “对象.方法”调用相关的功能
注:特殊的可以直接调用类 如 Math.sqrt() / Math.random()
二、如果创建了一个类的多个对象,那么多个对象之间是彼此独立的。即为每个对象,都拥有一套自己的属性,当通过其中一个对象修改其属性值时,不会影响到其他对象相同属性的值
三、对象的内存解析


成员变量(属性) VS 局部变量 异同
1 相同点 (1)声明的格式是相同的 : 数据类型 变量名 = 初始化值
(2)先声明,后使用
(3)变量都有作用域
2 不同点 (1)类中声明的位置不同 : 成员变量:在类中的一对大{}之内直接声明的变量
局部变量:方法内声明的 ,方法的形参位置声明的,构造器内声明的 ,代码块内声明的都是局部变量
(2)成员变量可以在数据类型前声明权限修饰符 而局部变量不可以声明权限修饰符
补充 : 权限修饰符 : public private protected 缺省(也就是不写没有声明)
(3)成员变量 声明时有默认初始化值也就是说在定义成员变量时可以不显示的赋值 如 int num; int age;默认num =0
局部变量 声明时没有初始化变量 必须显示赋值
补充 :局部变量特例: 方法中的形参,此局部变量在方法内调用前不需要赋值,它的赋值是在方法调用是进行的
(4) 二者在内存中存放的位置是不同的 成员变量存放在堆内存中 , 局部变量存放在栈内存中

// 方法的声明格式 权限修饰符 返回值类型 方法名(形参名){
方法体
}
具体说明 1.权限修饰符 可以理解为所被修饰的结构能被调用的范围大小 权限修饰符有: public protected private 缺省 目前大家用到的都可以是 public
2 关于返回值类型 : 1没有返回值 void (在void 中也可以用 return,表示跳出 )
2.有返回值:具体的返回值类型 返回具体满足相应类型的变量或常量 (一定要有return)
举例: 1 public void eat(String food){} ------> 无返回值
2 public void show (){} ------------>无返回值
3 public int returnAge (){} ------------>有返回值
3 方法名属于标识符 ,命名时要满足标识符命名规则和规范 见名之意
4 形参列表 可以省声明0个 1个 或者多个如果声明多个 用“,”隔开
5 方法体 我们调用方法时 要执行的逻辑 方法的功能主要体现在方法体上

1方法中调用当前类的属性或方法 (如果A中调用A方法 :递归方法)
2 在方法体中可以使用关键字 return return后面不能紧跟执行语句了 和break类似
3 在方法内,不能再定义 方法 (但是可以调用方法)

在同一包下 不同java文件下的 方法可以相互调用


注意的是 public static void main (String[] args){
method(); //这是错误的 虽然说方法中可以调用方法,但前提是方法中没有 static 关键字
}

posted @ 2017-07-21 00:24  舞动键盘的小虾米  阅读(292)  评论(0编辑  收藏  举报