`
醒111
  • 浏览: 4602 次
最近访客 更多访客>>
NX
社区版块
存档分类
最新评论

this关键字,值传递和引用传递

阅读更多
1.this关键字

this关键字的用途
1.用于区别属性和参数(加this表示属性,没有加表示参数)
2.this关键字可用来调用类中的构造方法(所带的参数必须与调用的构造方法一致)
代码实例:
//定义一个学生类
public class Student{
    //定义属性
    private String name;
    private int grade;
    private int score;
    //创建构造方法
    public Student(){
       System.out.println("调用了第一个构造方法");
    }
    public Student(String name,int grade,int score){
       this();//调用第一个构造方法
       this.name=name;/*this.name中的name表示学生类的属性name,name表示参数。若该处为name=name,则根据java的就近原则,将该方法中的局部变量即参数name赋值给了参数name,无意义*/
       this.grade=grade;
       this.score=score;
       System.out.println(name+"的"+grade+"分数是:"+score);
      
    }
}

this关键字表示当前调用方法的对象
代码实例:
Student stu=new Student("Tom",3,79);
创建该对象时,stu调用构造方法,故该构造方法中的this表示stu。


2.java数据类型分类

(1).基本数据类型(八大基本数据类型)
8bit       byte      字节型     -128~127
16bit      short     短整型
32bit      int       整型
64bit      long      长整型

32bit      float     浮点型单精度     //单精度与双精度的区别在于表示的范围不同
64bit      double    浮点型双精度

16bit      char      字符型
           boolean   布尔型   取值ture或false
(2).引用数据类型(对象类型,类类型)
a.说有由class.abstract class和interface定义的类,抽象类,接口。
b.数组   int []array=new array[10];

使用了new关键字的,就属于引用数据类型。
String是Java中的一个类,是引用数据类型。


3.值传递

   值传递适用于Java中的八大基本数据类型和String。
   值传递的方式是将变量i的值拷贝一份存入另一个变量score,此时在栈内存中就存在了两块独立的存储空间,分别存储了i和score的值,这是改变其中一个的值对另外一个的值无影响。若想要改变两者的值,需在改变后将值再重新赋值一次。
代码实例:
Student类中的方法:
public void study(int score){
      score++;
      System.out.println(name+"学习了一次学分加一,学分为"+score);//输出score为71
   }
TeachTest中调用该方法:
   { int i=70;
    stu.study(i);
    System.out.println("值传递后i的值:"+i);}//输出的i为70
i传值后并未改变自身的值

4.引用传递

    引用传递适用于引用数据类型
    引用传递是将对象名stu1中存储的地址拷贝一份存入stu2中,此时两者指向同一地址即指向同一对象,通过其中一个对象名对其属性进行修改,那么另外一个的也会被修改。(相当于1个人有2个名字)
代码实例:
    tea1=tea2;
    tea1.teach(stu);
    tea2.setName_Major("Jim","English");
    tea1.teach(stu);
通过对象名tea2改变对象的属性,对象名tea1的也被改变。
  • 大小: 19.9 KB
  • 大小: 11.8 KB
2
1
分享到:
评论
1 楼 LovingBaby 2013-03-24  
Java只有值传递

相关推荐

    一步一步学JAVA(第四课 方法、值传递、this关键字).docx

    在Java中,基本类型和引用类型的值传递有所不同。 基本类型的值传递: * 当将基本类型的变量作为参数传递给方法时,实际上是将变量的值复制了一份传递给方法。 * 在方法内部对参数的修改不会影响原始变量的值。 ...

    asp.net this关键字.txt

    ### ASP.NET中的this关键字 在ASP.NET开发过程中,`this`关键字是一个非常重要的概念,它在类的方法或构造函数中有着特殊的意义与用途。本文将详细介绍`this`关键字的用法及其背后的原理。 #### `this`关键字概述 ...

    java中带有this关键字的程序内存分析

    总结来说,`this`关键字在Java程序中用于明确地引用当前对象的实例变量或方法,帮助我们区分局部变量和实例变量。而Java的内存分配机制则确保了对象和其实例变量在堆内存中的正确存储和管理。理解`this`的关键字用法...

    Java中this关键字使用小结

    总的来说,`this` 关键字是 Java 中用于表示对象实例自身的一个关键字,它帮助我们访问成员变量、区分同名变量、在构造器间传递参数以及实现链式方法调用。理解并熟练运用 `this` 关键字对于编写清晰、高效的 Java ...

    this关键字共2页.pdf.zip

    综上所述,"this关键字共2页.pdf.zip"文档可能会涵盖这些核心概念,并可能通过例子和练习帮助读者理解和掌握"this"关键字的使用。不过,由于文件列表中还包含一个看似与编程无关的条目,具体学习内容可能需要解压...

    java this关键字的使用

    在Java编程语言中,`this`关键字是一个非常重要的概念,它代表了当前对象的引用。初学者在学习Java时,理解和掌握`this`关键字的使用是至关重要的,因为它可以帮助我们更好地编写和理解类与对象之间的关系。下面我们...

    this关键字的用法.pdf

    1. **this关键字的含义** `this`关键字在Delphi中代表了正在执行方法的那个对象实例。当在一个类的方法内,我们需要引用到当前对象的属性或方法时,`this`就起到了指针的作用,指向调用该方法的对象实例。通过`this...

    Java零基础-this关键字.md

    ### Java零基础-this关键字 #### 内容概要 本文主要介绍了Java编程语言中的`this`关键字及其在不同场景下的应用。通过本文的学习,初学者能够深入理解`this`关键字的作用,掌握其在实例方法、构造方法及内部类中的...

    第04章 面向对象(上) 07 This关键字

    7. this关键字的传递: 当一个对象作为参数传递给另一个方法时,"this"可以作为参数传递,这样接收方法就可以访问到调用方法的对象的属性和方法。 8. this与final关键字的结合: 如果一个方法声明为final,那么这...

    Java软件开发实战 Java基础与案例开发详解 5-7 this关键字 共5页.pdf

    - **传递当前对象**:当一个方法需要当前对象作为参数时,可以使用`this`关键字传递。 #### 四、总结 `this`关键字是Java编程中一个非常重要的概念,掌握其正确的使用方法对于编写高质量、高可读性的Java代码至关...

    java中的this关键字

    在Java编程语言中,`this`关键字是一个非常关键的概念,它代表了当前对象的引用。在不同的上下文中,`this`有不同的用法和含义,但始终指向调用该代码的对象。接下来,我们将深入探讨`this`关键字在Java中的应用。 ...

    this关键字的总结.doc

    ### Java中的this关键字详解 #### 一、概述 在Java编程语言中,`this`关键字是一种非常实用且灵活的关键字,它主要用于指代当前对象。`this`可以在类的内部被使用,帮助开发者清晰地表达代码逻辑,尤其是在解决...

    Java this 关键字的使用方法详解

    this 关键字的使用方法可以分为四种:构造方法中的 this、非构造方法中的 this、继承关系下的 this 和 static 方法中的 this。 一、构造方法中的 this 在构造方法中,this 关键字用于调用其他构造方法。例如: ```...

    【Java编程教程】详解Java this 关键字.pdf

    // 使用this关键字区分实例变量和构造函数参数 this.rollno = rollno; this.name = name; this.fee = fee; } void display() { System.out.println(rollno + " " + name + " " + fee); } } ``` 2. 调用...

    详解JavaScript中this关键字的用法_.docx

    - `call()`方法接受一个`this`值和一组参数,参数列表是直接传递的。 - `apply()`方法接受一个`this`值和一个参数数组。参数数组的第一个元素是`this`值,其余元素是传递给函数的参数。 示例: ```javascript ...

    关于js里的this关键字的理解

    由于JavaScript的函数是一等公民,可以作为变量传递、作为对象的属性,也可以被其它函数作为参数传递,因此`this`的指向是动态变化的,这也是它与许多其他面向对象编程语言中的`this`用法最显著的区别。 首先,`...

    this关键字

    `this`关键字还可以用于实现属性(Property)的get和set访问器,使我们可以直接通过`this`来设置或获取属性的值: ```csharp public class MyClass { private int _value; public int Value { get => this._...

    Java面向对象程序设计this关键字.pptx

    在农业信息系统的类结构中,"this"关键字可以帮助开发者更加清晰地组织和访问类的内部数据。 一、调用本类中的成员变量 在类的实例方法中,如果存在局部变量与成员变量同名的情况,"this"关键字可以用来明确指代...

    Java使用this关键字调用本类中的重载构造方法.pdf

    这是`this`关键字的一个典型应用,它将`d`和`m`的值传递给`this`所代表的对象(即当前正在创建的对象)的两个参数构造方法,从而避免了重复设置`day`和`month`的代码。然后,这个构造方法继续设置`year`的值。 这里...

Global site tag (gtag.js) - Google Analytics