暂无权限

加入尚新途,才有权限看这些视频哦!

点击前往
×
问答
微信用户
1楼

image.png

为什么第一个要用this()来调而sing那个可以直接调用。

尚新途

sing()是普通方法,this()调用的无参构造方法,方法的调用格式是不一样的

学不懂一点儿
2楼

image.pngimage.png在.java文件中构造器调用了,显示1usages,但是.class文件里构造器显示no usages是为什么呢

尚新途

请把问题再描述细致些,来微信提问

留给明天的答卷
3楼

图片.png

这块(划红线的这一行)sing()前面不加this和加this的区别是什么呢

尚新途

加上this表示调用了当前类里的sing方法

Lobo
4楼
TestThis {
    (){

        System..println()}

    (ab){
        ()a = a.=a.=b}
    (abc){
        (ab).= c}

        (){

        }
        (){
            .sing()System..println()}

    (String[] args) {
        TestThis hi = TestThis()hi.eat()}



}

为什么这里结果会输出一个“正在初始化一个Hello对象”呢?,main方法里面也没有输出它呀

image.png

尚新途

代码放到代码区

image.png

这句话应该是在创建的对象的构造方法中写的,在创建对象的时候会自动调用构造方法。

。。。...
5楼

1.png可以不写这个吗?

尚新途

不写的话,当你调用这个构造方法的时候,a和b的值就传递不了。调用a,b,c这个有参构造

犯规~
6楼


image.png

老师。如何像上面一样在代码旁边注释信息


尚新途

切换成英文格式的输出发,按/键,或者你把注释写好,使用鼠标把注释选择上使用Ctrl+/就可以快速注释

Tಥ_ಥT
7楼

老师 this staic 继承 override  这几章我总记不住用法和表达式 ,一个视频看几次代码也是敲了好几次了还是这样,怎么办才好?总是好混乱的

尚新途

四个名词我一一给你讲:


this : 指当前引用,例如一个对象调用一个方法,这个对象就是this,那this呢也可以用于调用构造,this()。


static:静态关键词,一旦被static修饰的属性 和 方法,都会从对象层级升级到类层级,属于类了,static静态关键字经常使用在方法上作为:工具方法,变量上作为共享变量,禁止滥用static关键字。


继承:又称扩展,子类继承了父类,可以使用父类的方法与变量,一定程度上实现了程序的多用性,父类经常是被抽取出啦公共的特性的,子类呢是具有特定独有的属性的。


 override:重写,基于继承才可以实现,父类的方法体不满足子类的需求时,子类可以重写父类的方法,打个比如,父亲炒菜不好吃,儿子自己亲自来抄

尚新途

谢谢老师四句话就说明白了,太厉害了!

尚新途

客气

Tಥ_ಥT
8楼

老师是不是所有方法都需要在main()里调用才能输出的,我把main方法的对象注释掉IDEA就没有输出值了,这应该怎么理解?还是我需要去复习哪节课呢?

image.png

尚新途

这样理解可以吗?因为TestThis只在方法区,而方法区不能直接输出,是main()方法在堆中创建了对象,栈桢的方法才能调用输出,那就意味着会有其它方法可以在堆中创建对象

尚新途

TestThis方法 与 类名一样 称为 构造方法 ,构造方法随着创建对象的时候执行

文斗带师
9楼

image.png老师 下面的这个this.a = a this.a是不是这个构造器里面的int a,右边的a是上面的成员变量a?


尚新途

这里的this.a不是构造函数里面的,二十TestThis这个类中声明的a,而this.a = a的后面这个a是构造器中参数的a.

10楼

WU_WLOI8FE`I115@`%H}QOY.png那这里的话我应该怎么写然后把name输出啊?

尚新途

在main方法中加System.out.println(u.name)

山河故人来
11楼


老师,我这在构造器里面调用别的构造器为什么出现红色标记?我看了老师调用构造器是一样的,谢谢。

如。巴新

尚新途

这里不要用点,直接this()就可以了。

Mokura
12楼

老师我可以认为是通过new类来创建一个对象,然后通过构造方法来this.a=a;是否等用于借用类里面的a来变成属于自己的a呢

image.png

尚新途

你的意思是a的值是借用this.a去赋值的,是这个意思吗

尚新途

是的,是这个意思

尚新途

首先,值的传递,老师给你标注一下

image.png

赋值的时候是吧等号右面的传递给左面的,这个要理解,不理解的话微信可以语音说一下

尚新途

已经理解了,谢谢老师

尚新途

不客气哦

老冬瓜
13楼

这个地方加的数字有何意思

QQ截图20220113161716.png

尚新途

这个是调用你的有参构造,去创建的对象

小樓一夜聽春雨
14楼

this为什么不能出现在static方法中?

    追问:明明用对象也能调static方法呀

尚新途

类方法(静态方法)是属于类级别的,为所有对象共有的,在类加载进内存的时候就存在了,此时还没有对象,this就无法指向任何对象,所以是不可以的

尚新途

那普通方法咋子就可以了。

this不就指代当前对象嘛。我用该对象调static方法,this指代该对象合情合理哇

尚新途

static是在类加载的时候就已经有了,你的this还没有呢,普通方法是在有了对象,对象调用以后才在有的,更晚。而且静态是属于类的,不属于任何一个对象的。

可乐先生
15楼
public class TestThis02 {
    int a = 1;
    int b = 2;
    String c;
    TestThis02(){
        System.out.println(this);
        System.out.println(a+b);
    }
    TestThis02(int c ,int d ){
        this();
        a=c;
        b=d;
        System.out.println(this);
        System.out.println(a+b);
        }

    public static void main(String[] args) {
        TestThis02 hi = new TestThis02();
         hi.a = 3;
         hi.b = 4;
         TestThis02 hi2 = new TestThis02(5,6);
        System.out.println(hi.a+hi.b);
    }
}

运行结果如下图

图片.png

在我的第二个含参构造器中我已经通过this引用了空的构造器,那这一步的作用是怎么体现的呢?引用无参构造器,打印出来的a+b=3,但是打印出来的this地址为什么是我第二个含参构造器的地址?然后我的含参构造器对a和b进行赋值,这个赋值是给了我的无参构造器构造出来的对象,还是给了我含参构造器构造出来的对象呢?如果是给我含参构造器的对象,那我这一步this()他的作用是什么呢?不是很理解,能不能出一个流程图看看他运行过程中的顺序和指向啊。老师讲的有点模糊,着实听不懂啊


尚新途

image.png

你可以看一下,有什么不懂的再问我

自我检测(5S)