类与对象的补充(构造器等)

  首先,要说一下this关键字,这是前半节课,我记忆最深的一个单词。当我们在初始化name的属性值时,我们可以这样写:

  public class student(String name){

       name=na;

}

  那可不可以这样写?name=name;都知道不可以,原因就是当属性值和参数相同时,优先使用参数。

  其实,这个this和它本身在英语中的作用是一样的,就是指代作用。比如说:

   //创建一个学生对象:一个参数的构造器

      String name="NetJava";

      Student st2=new Student(name);

   //构造时,传入名字参数,初始化name属性值

      public Student(String name){

          this.name=name;

}

那么这里的this就指的是st2所代表的对象。

   那么,在说this的时候,又说到了构造器。其实,我觉得这些东西刚听到这些奇怪的名字时就会郁闷,到底是什么意思啊,真心觉得好麻烦。但事实上,把它说成构造方法就会明白很多,那构造方法,构造什么啊,这到底是什么方法。第一,构造方法可以给属性设置初始化值,格式就是刚才那几行代码,直接用public+类名(数据类型 参数,,,);第二,可以实例化对象,我们的实例化

类名 对象名=new 类名();这后面的类名 ()其实就是一个构造方法,那我们可以在这个括号里加参数,几个参数就是几个参数的构造器。

   Java会给每一个类都提供一个默认无参数的构造方法。那我们想自己重新定义一个构造方法,这就叫做方法的重载。要求就是方法名必须完全相同,其次方法所带的参数个数、参数类型和参数顺序,这三个中必须要有一个不同。至于调用,就要根据参数的不同来区分调用。

   最后一项,值传递和引用传递。

   值传递是要求数据类型的:也就是java中的8中基本数据类型还有String。

   基本要求说完了,那值传递究竟是什么,从字面理解,就是传递值。比如说,我在测试类里赋予i=10,在study方法中加上i这个参数,那么在Student类里输出值的时候,就会把i当成初值,在这个基础上的值。也就是说,值传递过去了。

   引用传递当然适用于引用数据类型。

   引用传递一开始我觉得和C语言中的赋值没有区别,但关键问题在后面。引用传递其实是地址传递,什么意思,比如说我们每个人的名字可以代表我们每个人,可以将我们进行区分,也就是说当我们叫谁谁谁的名字时,并不是名字就是我们本身这个实体,而是这个名字指向我们,就像是地址一样,那么引用传递就是传递的这个东西。就是比如说stu1指向的是栈内存的第一个空间,stu2指向的是栈内存的第二个空间,那么stu2=stu1;这行代码的意思就是让stu2也指向了栈内存的第一个空间,也就是说不管中间再加几个变量,比如说stu2=stu1;stu3=stu2;stu1=stu3;最后都会指向第一个栈内存空间,最后都会相等。

   那么空出来的那些空间怎么办,GC(垃圾回收机制)负责回收,来释放空间。

   以上就是昨天课堂的总结。。。哈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值