Java面向对象——详解成员变量和局部变量的区别

简介: Java面向对象——详解成员变量和局部变量的区别

成员变量和局部变量



1. 定义的位置不一样【重点】


局部变量:在方法的内部


成员变量:在方法的外边,直接写在类当中


2. 作用范围不一样【重点】


局部变量:只有方法当中才可以使用,出了方法就不能使用


成员变量:整个类都可以使用


3. 默认值不一样【重点】


局部变量:没有默认值,如果想使用,必须手动进行赋值


成员变量:如果没有赋值,会有默认值,规则和数组一样


4. 内存的位置不一样(了解)


局部变量:位置栈内存


成员变量:位于堆内存


5. 生命周期不一样(了解)


局部变量:随着方法进栈而诞生,随着方法出栈而消失


成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失


创建一个demo02的类:

package demo02;
public class demo001 {
    String name; //成员变量
    public void methodA(){
        int num = 20; //局部变量
        System.out.println(num); //20
        System.out.println(name); //因未赋值,为默认值 num
    }
    public void methodB(int param) { //方法参数就是局部变量
        System.out.println(param);
        int age; //局部变量
//      System.out.println(age); //没有赋值不能用
//      System.out.println(num); //错误写法
        System.out.println(name); //因未赋值,为默认值 num
    }
}


使用demo02这个类:

package demo02;
public class demo02 {
    public static void main(String[] args) {
        demo001 one = new demo001();
        System.out.println("成员变量name未赋值");
        one.methodA();
        one.methodB(40);
        System.out.println("===============================");
        System.out.println("将成员变量name赋值为'修仙者'");
        one.name = "修仙者";
        one.methodA();
        one.methodB(40);
    }
}


运行结果:

成员变量name未赋值
20
null
40
null
===============================
将成员变量name赋值为'修仙者'
20
修仙者
40
修仙者
目录
相关文章
|
6月前
|
Java
Java基础语法与面向对象
重载(Overload)指同一类中方法名相同、参数列表不同,与返回值无关;重写(Override)指子类重新实现父类方法,方法名和参数列表必须相同,返回类型兼容。重载发生在同类,重写发生在继承关系中。
192 1
|
6月前
|
存储 Java 关系型数据库
Java 项目实战基于面向对象思想的汽车租赁系统开发实例 汽车租赁系统 Java 面向对象项目实战
本文介绍基于Java面向对象编程的汽车租赁系统技术方案与应用实例,涵盖系统功能需求分析、类设计、数据库设计及具体代码实现,帮助开发者掌握Java在实际项目中的应用。
261 0
|
7月前
|
安全 Java 编译器
Java面向对象
本文深入讲解了Java面向对象编程(OOP)的四大特性:封装、继承、多态与抽象,以及方法的设计与使用。通过示例展示了如何用类和对象组织代码,提升程序的可维护性与扩展性。
|
8月前
|
存储 Java 测试技术
Java基础 - 面向对象
面向对象编程是Java的核心,包含封装、继承、多态三大特性。封装隐藏实现细节,提升代码可维护性与安全性;继承实现类间IS-A关系,支持代码复用;多态通过继承、重写与向上转型,实现运行时方法动态绑定,提升系统扩展性与灵活性。
139 0
|
10月前
|
人工智能 Java 编译器
Java:面向对象
本文介绍了Java编程中的核心概念,包括包的命名规范与自动导入机制、构造方法的特点与使用、`this`和`super`关键字的作用、继承的基本规则、访问权限的设置、封装的意义、多态的实现原理以及`static`关键字的用法。通过详细解析每个知识点,并结合代码示例,帮助读者深入理解Java面向对象编程的核心思想与实践技巧。内容适合初学者及进阶开发者学习参考。
227 0
|
存储 Java
【面试题精讲】Java成员变量与局部变量的区别?
【面试题精讲】Java成员变量与局部变量的区别?
【零基础学Java】—成员变量和局部变量(九)
【零基础学Java】—成员变量和局部变量(九)
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。
|
安全 Java
Java多线程对于成员变量和局部变量的影响
Java多线程对于成员变量和局部变量的影响
|
存储 Java 编译器
Java面向对象编程:成员变量与局部变量
Java面向对象编程:成员变量与局部变量
229 0