package 面向对象;
public class 局部变量与成员变量 {
/**
* @属性的定义
* 在类中定义的属性有常量属性和成员属性之分
* 常量属性 就是用final修饰的属性.它的值只能赋值一次.以后就不能再更改了
* 并且在类中定义的常量属性一般用大写名字
*
public class Demo1{
final String ABC = "-8";
final double PI = 3.14;//常量属性.圆周率
}
**
* 非常量属性就是成员属性,它直接定义在类的主体中
**
public class Demo2{
private String name ;
private int age;//成员属性
}
**
* 变量
* 变量是用来代表内存中的某个区域,这个内存区域可以在程序的执行过程中,发生变化
* 变量根据他定义的位置可以分为成员变量和局部变量.
* 直接定义在类的主体中的变量叫成员变量,定义在方法中的变量叫局部变量
* 上边说的类的属性其实就是叫成员变量
* Java变量在使用前必须先声明和初始化(赋初始化值),特别是局部变量,如果它没有被显示初始化并赋值,那么它的值是不可预见的,程序中使用这个变量时就有可能
* 出现异常情况.
* 定义局部变量的语法格式为 数据类型 变量名 = 值;
**
public class Amethod {
public void Amethod(){//定义一个方法
int i ;
//int j = i+5; //这里报错了,变量i还没有被初始化赋值就被使用了
double d = 3.14;
}
}
**
* 变量是有作用域的,所谓变量作用域,是制定变量使用的范围.也就是活动的范围
* 变量的作用域和现实生活实例类比:鱼要在水中游,鸟要在天空中飞,每一个事物都有它的作用范围.在java中通过{}来表示变量的作用范围
* *
public class Company{
//整个公司
String 总经理的权利 = "我命令全体员工休假两天";
//总经理的权利
public void say(){
//方法1:讲话
System.out.println("总经理发言 :"+总经理的权利);
}
public void beijingsay(){
//方法2:输出类的描述信息
String 地方经理的权利 = "我命令所有北京的员工休假两天";
System.out.println("北京地区经理发言:"+地方经理的权利);
}
public void tianjingsay(){
System.out.println("老总说"+总经理的权利);
//System.out.println("北京地区经理说:"+地方经理的权利);//编译出错了.地方经理的权利已经超出了变量作用范围!
}
}
**
* 在上面的demo中,全局变量"总经理的权利"可以在方法北京和天津中得到实施
* 但是局部变量 地方经理的权利,只可以在北京实施,而不能在天津实施.变量声明的位置,决定了变量的作用域,变量作用域确定了可以在程序中用变量名和访问变量值的区域
* public class Demo{
* //成员变量,Demo类的方法,别的类的方法 变量1,2,3可以在方法1,方法2中使用也可以在方法1和方法2的外面使用只要是在类的主体也就是类的{}中都可以使用.
* 变量1类型 变量1;
* 变量2类型 变量2;
* //方法1和方法2中的变量是局部变量.变量5只能在方法2中使用,超过了这个范围就不能使用了.
* public 返回值类型 方法1(){
* 变量4类型 变量4;
* }
* public 返回值类型 方法2(){
* 变量5类型 变量5;
* }
* }
*
* */
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("成员变量和局部变量的总结");
}
}