暂无权限

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

点击前往
×
问答
郭霖
1楼

错误代码.png

尚新途

你的变量名写错了,上面定义的是compay,下面写的是company,下面的id:和name:不用写的

郭霖
2楼

代码一样就是显示错误

尚新途

微信找我我给你看一下吧

微信用户
3楼
TestStaic {
    String String = (idString name){
        .= idname = name}
    <> (){
        System..println()}
    (){
        System..println()}
    <> (String[] args){
        String 1 = u = TestStaic(::).printCompany()

老师,和老师教的一样打的代码,怎么会有报错?

尚新途

代码放到代码区,截图报错信息

微信用户
4楼
TestStaic {
    String String = (idString name){
        .= idname = name}
    <> (){
        System..println()}
    (){
        System..println()}
    <> (String[] args){
        String 1 = u = TestStaic(::).printCompany()


尚新途

代码放在代码区,写上你的问题。

image.png

微信用户
5楼
public void login(){
    System.out.println(name);
}


public static void printCompany(){
    System.out.println(company );
}


public static void main(String[] args) {
    TestStatic .printCompany();
    TestStatic .company = "北京阿里爷爷";
    TestStatic .printCompany();

老师,有点不是很懂这几句代码的含义

尚新途

这里是有一个被static修饰的变量和方法,上面的login()和printCompany都是定义的方法,printCompany是一个静态方法,在main方法里,第一条语句是调用了printCompany方法,来输出company属性的值,第二条语句是给company这个属性重新赋值,第三条语句是重新调用了一下printCompany方法,来输出改变后的company的值

SU
6楼

老师好,对象是new出来的吗

尚新途

是的,在new的时候会调用类内部的构造方法,通过构造方法会在内存中分配一个实例对象

一个男人
7楼

老师你好,

1、静态的属性和方法打印的时候都是这样写的吗:类名.print___;吗?如(TestStatic.printcompany)?

2、普通方法调用的时候如:login();那么想在main()中调用普通方法该怎么调用?

3、程序开头定义了id,name,但是打印的时候却没有用上,那么为什么要定义id和name呢?是每个程序必须?

2.png

尚新途

1、理解没有问题

2、普通方法调用要先创建对象,通过对象名.属性/方法。

3、这里id,name不是每一个程序的必须,这里是类的成员变量,我们在上述代码中创建对象的时候为这两个变量赋了值,之后在打印这个对象的时候可以打印出该值。

hao
8楼

老师好,静态方法中不能直接访问非静态成员,那图片中的静态方法printCompany的语句块中打印的参数,可否用this来访问成员变量呢?如果不能,那应该怎么调用成员变量呢

尚新途

静态方法中只能调用静态的属性


那想要在静态方法中调用非静态的成员属性,那就只能在静态方法中先创建对象,在通过对象的方式进行调用属性

ELIAUK
9楼
public static void main(String[] args) {
    TestStatic d = new TestStatic(12,"于");
    printCompany();
    company = "阿里";
    printCompany();
    d.login();
}

老师好,这个在调用静态方法时没有像视频里那样加类名前缀也可以正常调用的额?是因为在同一个类吗?

尚新途

因为main方法是静态的,你声明的也是静态的,在同一个类中可以直接调用的

Fintik
10楼
为什么打印不出我的id

WX20220426-234955@2x.png

尚新途

在Java的语法中不可以只写 a1.id 这是你在调用一个成员属性,你是想打印属性的结果呢,还是想给属性赋值呢,你必须给定一个方向


打印属性:System.out.println(a1.id);


赋值:a1.id = 100;

Tಥ_ಥT
11楼

老师构造方法不会出现在堆里吗 

image.png

尚新途

构造方法出现在方法区域的

文斗带师
12楼

image.png

老师一个程序里面为什么要分别用STATIC方法和普通方法写呢?有什么意义呢?


尚新途

static方法 称为静态方法,静态方法从属于类,只有一分,这样我们创建对象,所有对象共享这一份变量和方法。可以节省内存。

文斗带师
13楼

老师,这节课上的代码如果完全靠自己敲的话根本想不到其中的逻辑,您能讲一下这片代码敲下来的逻辑吗

尚新途

把代码上传上来。

John
14楼

调用static方法也会开辟栈帧吗?

尚新途

也会开辟的

JackieYuri
15楼

我用TestStatic.和u.有什么区别吗,运行出来的结果好像是一样的

QQ截图20220209171307.png

尚新途

TestStatic.这个去调用本来方法的话,这个方法或者属性必须是static修饰的,而u.这个去调用的话,是通过对象名调用,不需要方法属性是static修饰。

自我检测(5S)