面向对象_成员变量和局部变量的区别

作用范围:

  局部变量作用于函数中或者语句中(定义在函数或语句中(比如for语句),必须初始化)

  成员变量作用于整个类中(定义在类中,有默认初始化值,可以定义显示初始化值)

在内存中的位置:

  成员变量在堆内存中.因为对象的存在,才在内存中存在.

   局部变量在栈内存中.

如果成员变量没有定义显示初始化,那么系统默认会初始化(在堆内存中的变量都会有默认初始化值)
byte 0
short 0
int 0
long 0L
double 0.0D
float 0.0f
boolean false
引用数据类型默认初始化值都为null

 1 public class VariableDemo {
 2     public static void main(String[] args) {
 3         Car c=new Car();
 4         c.color="blue";
 5         c.run();
 6     }
 7 }
 8 class Car{
 9     //成员变量,在类中定义,作用于整个类中,有默认初始化值。(可以定义显示初始化)
10     String color="red";
11     int num=4;
12     //成员函数
13     void run(){
14         System.out.println(color+"...."+num);
15     }
16 }
1 class Car{
2     String color="red";
3     int num=4;
4
5     void run(){
6         int num = 9;//如果局部定义了与成员变量一样的(同名)的变量,则访问时,访问的是局部num,如果没有就访问成员中的变量
7         System.out.println(color+"...."+num);
8     }
9 }

一个类访问另一个类中的非静态成员,必须创建该类对象

1 class Person{
2     int age;
3     public void shurt(){
4         int age = 89;//局部变量必须初始化
5         System.out.println(age);//因为在该函数中有了一个age变量所以访问的时候访问的是shurt函数内部的age,外部的那么成员变量age被隐藏起来了
6     }
7 }
8 //java回收机制的方法:finalize();
9 //唤醒java回收机制的方法System.gc();(调用该方法java虚拟机不一定立刻执行垃圾回收机制)
 1 public class VariableTest2 {
 2     public static void main(String[] args) {
 3         int x = 5;
 4         change(x);
 5         System.out.println(x);
 6     }
 7     public static int change(int x){
 8         return x = 4;
 9     }
10 }
11 //结果还是5,因为x是局部变量,当执行完change方法后,change方法中的x被释放,跟main方法中的x没关系
时间: 2024-07-30 20:31:32

面向对象_成员变量和局部变量的区别的相关文章

数组 面向对象 成员变量和局部变量额区别

一.数组 1.数组中常见的错误: 1.NullPointerExcepation : 空指针异常 原因:引用的类型变量没有指向任何的对象,在这种情况下还访问了它的属性和方法. 一个对象如果使用完了不会立马释放,只是将这个对象变为一个垃圾对象,由垃圾回收机制自己来释放.,我们没办法操作它释放. 2.ArrayIndexOutOfBoundsExcepation :数组下表越界. 二.面向对象 1.java也属于面向对象编程 : 2.面向对象的三大特征 : 封装,继承,多态.类,对象. 3.对象 :

6_面向对象基础、成员变量和局部变量的区别

一.面向对象的思想 面向对象特点:(1)更符合我们思想习惯的思想:        (2)可以将复杂的事情简单化:        (3)将我们从执行者变成了指挥者,角色发生了转换. 二.类与对象及其应用 1.事物和类的对应关系   事物      类   属性  ----------成员变量   行为  ----------成员方法 2.成员变量和成员方法   成员变量:和以前定义变量一样,存储位置放生了改变,在类中方法外   成员方法:和以前定义方法一样,只不过去掉了static. 3.类与对象

面向对象之成员变量和局部变量

成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 D:初始化值不同 成员变量:有默认初始化值 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用. 注意事项: 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则. c

4.5 成员变量和局部变量的区别

/* 成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 D:初始化值不同 成员变量:有默认初始化值 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用. 注意事项: 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则

成员变量和局部变量的区别(个人心得体会)

1:成员变量和局部变量的区别? 1.源代码中定义的位置不同     成员变量定义在类中.     局部变量定义在方法中(类的下一级大括号都是局部的),也可以定义局部变量. 2.内存中存储的位置不同     成员变量存储在堆内存的对象中.     局部变量存储在栈内存的方法中. 3.生命周期的不同     成员变量随着对象的调用而楚翔.     局部变量所属区间的运行而出现,随着所属区间的结束而结束.      2:     class car{       int num;       Stri

静态变量和成员变量的区别 && 成员变量和局部变量的区别

============================================================================= 1)静态变量和成员变量的区别: (1):所属不同: 静态变量:属于类,也称为类变量. 成员变量:属于对象,也称为对象变量或实例变量. (2):在内存中的位置不同: 静态变量:存储于方法区的静态区. 成员变量:存储于堆内存. (3):生命周期不同: 静态变量:静态变量是随着类的加载而加载,随着类的消失而消失. 成员变量:成员变量是随着对象的创建

java类与对象_成员变量和局部变量区别

成员变量和局部变量:1.成员变量:再类中定义,用来描述对象将要有什么.2.局部变量:在类的方法中定义,在方法中临时保存数据.区别:1.作用域不同:  局部:仅限于定义它的方法  成员:整个类中都是可见的2.初始值不同的  局部:Java不会给局部变量赋予初始值  成员:Java给成员变量赋予初始值,03在同一个方法中不允许有同名的局部变量:不同的方法中可以有同名的局部变量4.两类变量同名时,局部变量有更高的优先级(就近原则)

Java中成员变量和局部变量的区别

java面向对象过程中,最基本的两类变量就是成员变量和局部变量 成员变量是写在类中并且写在方法外部,一般写在每个类的头部,用于初始化或者方法操作,作用域是整个类被实例化到被销毁,中间变量都可以被外部方法(权限为public时)或者内部方法所共享使用,并且可以保持变量的值,就是多个方法可以复用该变量,成员变量一般要加权限修饰符,并且定义成员变量的时候系统会给初始值0 而局部变量作用域只在方法内部,当方法调用完毕,该变量也自动消失,并且只有方法本身可以使用,其他方法或类都不能使用该变量,也就是方法本

面向对象(成员变量和局部变量)

/* 成员变量和局部变量. 作用范围. 成员变量作用于整个类中. 局部变量变量作用于函数中,或者语句中.//例如在for循环中 在内存中的位置: 成员变量:在堆内存中,因为对象的存在,才在内存中存在. 局部变量:存在栈内存中. */ //c.color = "blue";改变的不是类中的值,而是改变的对象中的值.就相当于给一个车图上颜色,而不是改变图纸的颜色值.