关于this关键字的问题
老师,虽然编程练习我能做出来,但是对该关键字的概念好模糊;有几点麻烦老师解答一下
为啥在同类中的主方法体无法直接用this.XX=xx;来进行设定值以及this.XX来进行调用方法。
在编程练习中虽然new了两个不同的内存地址,但是使用的对象都是该类,为啥在无参构造方法中用this.name直接赋值,然后在有参构造方法中用this.name=name;在测试类中给该属性值赋值,为啥输出的值是不同的(PS:无参返回体中已经用了this.name进行赋值),this关键字不是指定了属性的全局关键字吗?那不应该都输出无尾猴吗.
关于public class test和class Test,这两个当中为啥前者已经设定了访问修饰符,后者还创建个不能访问的类,编写那么多不能访问的类的作用是什么,编写方法不是更好吗?
正在回答 回答被采纳积分+1
同学你好,1、根据同学代码所描述的代码内容,这些类是内部类,关于内部类的内容在后面多态的章节有具体的讲解。https://class.imooc.com/course/106
2、关于new了两个不同地址的对象这个问题还是有点没懂。
这里同学可以这样理解一下:一个实体类:汽车类,每一个汽车都应该有它的颜色,大小,发动机,速度等基本的参数。现在生产汽车有两个构造方法,一个是通过默认的参数(无参)构造方法直接生产,另一种是通过私人定制,直接传入对应颜色、大小、发动机型号等参数,通过传入参数(有参)的构造方法来生产。
所以每次new就是通过调用构造方法来创建一辆新的汽车,
,但是每一个汽车都应该有它的颜色,大小,速度这些基本的参数,我们可以根据传入参数来给这些属性赋值,有参构造就是让调用者能够根据参数为类的属性赋值。无参构造就是直接创建无参构造方法(也可以说是默认属性值)的对象。
在Java里可以new很多辆汽车。每次new就是创建一辆新的汽车。实例化带参数的构造方法时对象的创建会跳过无参方法。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
同学你好,1、为啥在同类中的主方法体无法直接用this.XX=xx;来进行设定值以及this.XX来进行调用方法。
因为主方法(main方法)是static修饰的静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象。所以在静态方法中并不能直接使用this。
关于static静态属性,同学可以在后面封装的课程中学习。https://class.imooc.com/course/100
2、在编程练习中new了两个对象,就是创建了两个对象,指向不同的内存地址。
比如,一个实体类:汽车,但是每一个汽车都应该有它的颜色,大小,速度这些基本的参数,我们可以根据传入参数来给这些属性赋值,有参构造就是让调用者能够根据参数为类的属性赋值。无参构造就是直接创建无参构造方法(也可以说是默认属性值)的对象。
在Java里可以new很多辆汽车。每次new就是创建一辆新的汽车。
3、还创建个不能访问的类,这里还麻烦同学具体描述一下-->不能访问的类。建议同学能将使用代码描述一下。
继续加油~祝学习愉快!
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星