`
醒111
  • 浏览: 4412 次
最近访客 更多访客>>
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(第四课 方法、值传递、this关键字)

    JavaScript函数的调用以及参数传递

    Note 注意 this 是保留关键字,你不能修改 this 的值。 调用 JavaScript 函数 函数中的代码在函数被调用后执行。 作为一个函数调用 实例 function myFunction(a, b) { return a * b; } myFunction(10, 2); // ...

    JavaScript调用模式与this关键字绑定的关系

    this的值取决于调用的模式,调用模式:方法,函数,构造器和apply调用模式 this被赋值发生在被调用的时刻。不同的调用模式可以用call方法实现 var myObject = { value: 0, increment: function (inc) { this.value...

    C#中this的使用实例分析

    1.代表当前类,在当前类中可使用this访问当前类成员变量和方法(需要注意的是 静态方法中不能使用this),也可用于参数传递,传递当前对象的引用。 示例代码如下: class Program { static void Main(string[] args...

    Script56.rar

    通过构造函数将一个参数作为特定的 this 关键字的值传递给新创建的空对象。然后构造函数负责为新对象执行适应的初始化(创建属性并给出其初始值)。完成后,构造函数返回它所构造的对象的一个参数。

    3.尚硅谷_佟刚_java基础_面向对象

    类和对象 信息的封装和隐藏 构造方法 方法的重载 this 关键字 函数的参数传递 package语句/import语句

    JavaSE_1_面向对象_1

    面对对象,封装性,构造方法,匿名对象,类设计题目,String类,String类相关操作方法,引用传递深入,this关键字,接受本类引用,信息的隐藏封装,java源文件的基本结构,常用的包,面向对象编程术语

    java基础语法

    java开发的基本语法 1 注释、分隔符、标识符和关键字 2 数据类型 3 方法、变量 4 值传递和关键字this 5 标准输入输出 6 编码惯例

    Visual C# 2010程序设计教程(教程PPT+源代码)

    5.2.7 this关键字 5.3 构造函数与析构函数 5.3.1 构造函数 5.3.2 析构函数 5.4 本章小结 5.5 上机练习 5.6 习题 第6章 域、属性与事件 6.1 域 6.1.1 域的初始化 6.1.2 只读域与readonly关键字 6.2 属性 6.2.1 属性...

    matlab导入excel代码-WithBeingIT:Java,注意事项

    3)String,Integer,Double等immutable类型的特殊处理,可以理解为值传递,形参操作不会影响实参对象。 this关键字加与不加到底有什么区别? 虽然this调用方法可以省略this关键字,但是JAVA编译器会自己添加上 简言之...

    基于JavaScript自定义构造函数的详解说明

    运算符new首先创建一个新的没有任何属性的对象,然后调用该函数,把新的对象作为this关键字的值传递。var date = new Date()的伪代码的实现就是 var obj = {}; var date = Date.call(obj); 构造函数的

    JS中改变this指向的方法(call和apply、bind)

    this是javascript的一个关键字,随着函数使用场合不同,this的值会发生变化。但是总有一个原则,那就是this指的是调用函数的那个对象。 this一般指向的是当前被调用者,但也可以通过其它方式来改变它的指向,下面将...

    在一小时内学会 C#(txt版本)

    使用例程,简单却完整的探索 C# 语言的构造和特点。本文特别适合有 C++ 基础却没有太多精力学习 C# 的读者。 关于作者 Aisha Ikram 我现在在英国一家软件公司任技术带头人。我是计算机科学的硕士。我主要使用 ...

    Keo:用于创建无状态 React 组件的功能性更强的 Deku 方法的普通函数,以及诸如 compose、memoize 等功能性好东西...免费

    npm: npm install keo --save目录Keo 哲学的核心是你不应该处理this关键字的概念——虽然在 ES2015 中this关键字变得更容易管理,但它在 React 组件中似乎完全没有必要。 因此,Keo 采取了更加方法,将props 、 ...

    零起点学通C++多媒体范例教学代码

    9.4.2 引用一个按值返回的堆中对象 9.4 -3引用一个按别名返回的堆中对象 9.4.4 在哪里创建,就在哪里释放 9.5 总结 第10章 深入函数 10.1 函数重载 10.1.1 普通函数的重载 10.1.2 成员函数的重载 10.2 函数的默认...

    零起点学通C++学习_多媒体范例教学代码

    9.4.2 引用一个按值返回的堆中对象 9.4 -3引用一个按别名返回的堆中对象 9.4.4 在哪里创建,就在哪里释放 9.5 总结 第10章 深入函数 10.1 函数重载 10.1.1 普通函数的重载 10.1.2 成员函数的重载 10.2 函数...

    C++中this指针用法详解及实例

    本文简单介绍this指针的基本概念,并通过一个实际例子介绍this指针用于防止变量命名冲突和用于类中层叠式调用的两个用法。 this指针概览 C++中,每个类 对应了一个对象,每个对象指向自己所在内存地址的方式即为...

    深入浅析c/c++ 中的static关键字

    原因:非static 成员方法里是没有this指针的,所以在里面调用非static 成员方法时,无法传递this指针。static 成员方法不需要this指针。 重点:初始化static成员变量,要在类的外面。 #include using namespac

    java培训机构内部预习文档

    面向对象 类和对象、实例变量、构造方法、方法重载、引用的概念、this关键字 chp7.面向对象三大特性 封装、继承、多态、对象创建过程、访问修饰符、super关键字、方法重写、instanceof chp8.三个修饰符 static、...

    JavaScript中的this妙用实例分析

    JavaScript关键字this始JS脚本能够根据使用这个关键字的上下文将值传递给函数。 我们先来看如下一个网页,在用户单击链接之后,弹出一个alert框,然后再转到href属性所指的网页 HTML: <!DOCTYPE html> <...

Global site tag (gtag.js) - Google Analytics