Java编程:成员变量与局部变量详解及this、private关键字

需积分: 0 1 下载量 21 浏览量 更新于2024-08-04 收藏 16KB DOCX 举报
"继承练习题带答案1" 本资源主要涵盖Java编程语言中的几个核心概念,包括成员变量与局部变量的区别、this关键字的使用、private关键字的作用、匿名对象的定义以及方法的重载和重写。以下是详细解释: 1. this关键字: - 在创建对象并初始化成员变量时,this可以用来引用当前对象的成员变量,避免与局部变量混淆。 - 当成员变量和局部变量同名时,this用于区分两者,例如`this.varName`表示引用类的成员变量。 2. private关键字: - private是Java的访问控制修饰符,用于保护类的内部成员不被外部直接访问,实现数据封装。 - 被private修饰的成员只能在定义它们的类内部访问,提供了一种信息隐藏的方式。 3. 成员变量与局部变量的区别: - 位置:成员变量位于类中方法之外,局部变量位于方法内部或声明上。 - 内存位置:成员变量存储在堆内存中,局部变量存储在栈内存中。 - 生命周期:成员变量随着对象的创建而存在,随着对象的销毁而消失;局部变量随着方法的调用开始,方法结束时消失。 - 初始化值:成员变量有默认初始化值,局部变量无默认值,必须先定义并赋值后才能使用。 4. 匿名对象: - 匿名对象是指没有被赋予一个变量名的对象,通常只在创建时使用一次。 - 适用场景:当只需要调用一次对象的方法,或者作为方法参数传递时。 5. 方法的重载(Overload)与重写(Override): - 重载:在同一类中,方法名相同但参数列表不同的方法称为重载方法。 - 重写:发生在子类与父类之间,子类可以重新定义父类的非私有方法,保持方法名和参数列表相同,但实现可能不同。重写遵循访问权限、抛出异常及返回类型的规定。 示例代码: ```java class Test { int num = 3; // 成员变量 public static void main(String[] args) { Test t = new Test(); // 创建对象 t.method(); // 使用this关键字调用成员变量或方法 } void method() { int num = 5; // 局部变量 System.out.println(this.num); // 访问成员变量 } } ``` 这段代码展示了成员变量和局部变量的使用,以及this关键字在方法中的应用。在`method()`方法中,`this.num`用于访问类的成员变量`num`,而非方法内的局部变量`num`。