javaSE 成员变量与局部变量

java中的内存空间:栈、堆、全局数据区、全局 代码区

栈:基本数据类型的值、引用类型的地址

堆:引用类型的值

全局数据区:类属性 加了static的属性

全局代码区:所有方法的代码

java语言中 根据变量的位置不同 讲变量分为 成员变量和局部变量

成员变量

在类的范围里面定义的变量 也叫成员属性

成员变量又被分为两种:类属性和实例(对象)属性。定义一个属性时不使用static修饰的就是实例属性;使用static修饰的就是类属性。

类属性的作用域与这个类的生存范围相同,它作为类的一个成员,与类共存亡。只要类存在,程序就可以访问该类的类属性。

实例属性则从这个类的实例(对象)被创建开始存在,直到系统完全销毁这个实例,它作为实例(对象)的一个成员,与实例(对象)共存亡。只要实例存在,程序就可以访问该实例的实例属性。

eg:使用类属性

public class Student{

public String naame;

public int no;

public static String school;

public String className;

public void say(){

System.out.println("学号:"+no+"姓名:"+name+"学校:"+school+"班级:"+className);

}

public Student(String name,int no, String className){

this.name=name;

this.no=no;

this.className=className

}

public static void main(String[] args){

Student s1=new Student("虞姬",1,"12级1班");

Student s2=new Student("安琪拉",2,"12级1班");

Student s3=new Student("小乔",3,"12级2班");

Student.school="王者荣耀学院";

s1.say();

s2.say();

s3.say();

Student.school="王者荣耀大学";

System.out.println("改成后");

s1.say();

s2.say();

s3.say();

}

局部变量

在方法的范围里面定义的变量

局部变量根据定义形式的不同 又可以分为 形参、方法局部变量、代码块局部变量

eg:

public class Test {

//在方法中的变量叫局部变量

public void fun1(int param){//param形参   也是局部变量

int a=10;//方法局部变量

for(int i=0;i<10;i++){//i是代码块 的局部变量

int b=0;//b代码块的局部变量

}

}

}

说明:

与成员变量不同,局部变量除了形参外,都必须初始化(必须赋值)后才可以使用,否则会报错。形参不需要显示初始化,其实在调用方法时实参的值就传给了形参。

public class Test {

public int t;

//在方法中的变量叫局部变量

public void fun1(int param){//param形参   也是局部变量

int a;//方法局部变量

System.out.println(t);//属性可以不用赋值就直接使用,属性有初始值

System.out.println(a);//局部变量除了形参必需初始化后(或赋值)才能使用

for(int i=0;i<10;i++){//i是代码块 的局部变量

int b=0;//b代码块的局部变量

}

}

}

成员变量可以不用初始化,系统会给他们分配默认值。

系统初始值:

byte、short、int、long ----》  0

float、double ----》  0.0

char ----》  空 ‘\u0000’

boolean ----》  false

引用类型 -----》  null

  .局部变量使用前,除了形参外都需要显示的初始化。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值