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的也被改变。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值