`

对象作用域代码分析

    博客分类:
  • J2SE
阅读更多

 

 

java 代码
  1. /***********************************************************************
  2.  * Module:  Test.java  
  3.  * Author:  danlley * Modified: 2006年7月27日 13:11:21
  4.  * Purpose: Defines the class Test
  5.  ***********************************************************************/  
  6. class value{       
  7. public int i = 15;   
  8. }   
  9. public class Test{    
  10.    public static void main(String argv[]){    
  11.        Test t = new Test();    
  12.        t.first();    
  13.    }   
  14.     public void first(){   
  15.         int i = 5;    
  16.        value v = new value();    
  17.        v.i = 25;    
  18.        second(v, i);    
  19.        System.out.println(v.i);    
  20.    }    
  21.    public void second(value v, int i){   
  22.         i = 0;   
  23.         v.i = 20;    
  24.        v = new value();    
  25.        v = val;    
  26.        System.out.println(v.i + " " + i);    
  27.    }   
  28. }  


+++++++++++++++++++++++++++++++++++++++++++++++++++++
可供选择的答案如下:
A.15 0 20
B.15 0 15
C.20 0 20
D.0 15 20
++++++++++++++++++++++++++++++++++++++++++++++++++++++
正确答案:A

 
 
 
从这个例子知道Java对对象和基本的数据类型的处理是不一样的。和C语言一样,当把Java的基本数据类型(如int,char,double等)作为入口参数传给函数体的时候,传入的参数在函数体内部变成了局部变量,这个局部变量是输入参数的一个拷贝,所有的函数体内部的操作都是针对这个拷贝的操作,函数执行结束后,这个局部变量也就完成了它的使命,它影响不到作为输入参数的变量。这种方式的参数传递被称为"值传递"。而在Java中用对象的作为入口参数的传递则缺省为"引用传递",也就是说仅仅传递了对象的一个"引用",这个"引用"的概念同C语言中的指针引用是一样的。当函数体内部对输入变量改变时,实质上就是在对这个对象的直接操作。
 
分享到:
评论

相关推荐

    第四章示例代码__对象的作用域

    本章示例代码将深入探讨对象作用域的概念,帮助开发者更好地理解和运用这一核心原则。 对象的作用域决定了一个对象在何处可以被访问,以及它何时被创建和销毁。在大多数编程语言中,对象的作用域主要有以下几种类型...

    深入理解JavaScript作用域和作用域链

    全局作用域是指在代码的任何位置都可以访问的变量或函数,这通常包括在最外层函数之外定义的变量、未声明直接赋值的变量(它们会自动声明为全局)以及window对象的属性。全局作用域的变量在整个脚本或模块中都是可...

    深入理解变量作用域

    作用域链是一个对象列表,用于存储变量和函数声明。 - 当JavaScript引擎需要查找变量时,它会从当前作用域开始,沿着作用域链向上查找,直到找到相应的变量为止。 - 如果在当前作用域找不到变量,则继续在上一层...

    js变量作用域

    通过对JavaScript中变量作用域的深入分析,我们可以更好地理解面向对象编程的概念以及如何有效地管理变量的作用域。这对于编写高效、可维护的JavaScript代码至关重要。理解这些概念不仅能帮助我们避免常见的错误,还...

    作用域初理解1

    在JavaScript中,作用域引擎负责整个程序的执行,而编译器则负责语法分析和代码生成。 首先,我们需要理解作用域的基础概念。作用域是代码中变量、函数和其他标识符的可见范围。它定义了变量在何处可以被访问以及...

    浅析JSP的9大内置对象和4大作用域对象

    下面将详细分析这些JSP的9大内置对象和4大作用域对象。 JSP的9大内置对象包括: 1. request:代表客户端的请求,是客户端发送给服务器的信息,可以通过它获取请求参数。 2. response:代表服务器对客户端的响应,...

    预解析&作用域1

    预解析&作用域1 预解析是 JavaScript 中的一个重要概念,它指的是在 JavaScript 文件或 script 标签中的代码在正式开始执行之前,进行的一些解析工作。这个工作很简单,就是在全局中寻找 var 关键字声明的变量和...

    JS的作用域与闭包

    ### JS的作用域与闭包 #### 一、作用域的基础概念 作用域是JavaScript中一个非常核心的概念,它定义了变量的可见性和生命...在实际开发过程中,正确地使用作用域和闭包可以帮助避免常见的错误,并提高代码的质量。

    深入理解JavaScript作用域共12页.pdf.zip

    JavaScript作用域是编程中至关重要的概念,它定义了变量、函数和对象的可见性和生命周期。在深入理解JavaScript作用域时,我们需要关注以下几个关键知识点: 1. **全局作用域**:这是程序中默认的作用域,任何在...

    深入了解JavaScript,从作用域链开始(1).pdf

    这个活动对象与当前作用域链的顶部连接,形成了作用域链。作用域链允许函数访问其自身作用域内的变量,以及包含它的所有外部作用域的变量,直到全局作用域。 JavaScript引擎在解析代码时,会先进行预解析阶段,将...

    JavaScript — 原型链与作用域链1

    3. **解析时机**:作用域内的变量和函数只有在作用域执行期间才会被解析和求值。这遵循了JavaScript的动态绑定特性,即变量的值在运行时才能确定。 **原型链** 原型链是JavaScript实现对象继承的基础,它连接了一...

    matlab开发-实时作用域显示简单脚本

    在MATLAB中,实时作用域显示(Real-Time Scope)是一个非常实用的功能,它允许我们实时地观察和分析信号数据,这对于系统调试、算法验证以及数据分析等任务尤其有用。本篇文章将详细探讨如何利用MATLAB编写一个简单...

    javascript作用域链(Scope Chain)初探.docx

    该作用域链包括当前函数的变量对象、当前函数的外部函数的作用域链以及全局执行上下文的作用域链。 在上面的例子中,`funcTest()`被调用时,它的执行上下文的作用域链包含了全局执行上下文中`arg`的值(即`10`),...

    JavaScript作用域与作用域链深入解析

    当代码执行遇到变量时,JavaScript引擎会通过作用域链来进行标识符解析,从作用域链的头部即活动对象开始搜索变量名,并且按照定义函数时的顺序将变量、命名参数、参数集合以及this推入作用域链的前端。 在...

    原型、作用域、闭包的完整解释(一)

    在JavaScript编程语言中,原型(Prototype)、作用域(Scope)和闭包(Closure)是三个核心概念,对于理解和编写高效、可维护的代码至关重要。本文将深入探讨这三个概念,并通过实例解析它们的工作原理。 首先,...

    掌握全局代码执行和作用域的提升.doc

    JavaScript的全局代码执行和作用域提升是编程中至关重要的概念,它们直接影响到代码的执行顺序和变量的可访问性。让我们深入探讨一下这些概念。 首先,JavaScript引擎在执行任何代码之前,会进行预处理,也被称为...

    JavaScript 作用域链解析

    以上就是对JavaScript作用域链解析的详细说明,通过理解作用域、作用域链、执行上下文、活动对象、动态作用域和闭包的概念,我们可以更加深入地掌握JavaScript中的变量查找机制,这对于编写高效且可维护的代码是至关...

Global site tag (gtag.js) - Google Analytics