main不也是静态方法吗,为什么能调用普通方法
static 变量 和 方法只有 一份, 他们是 在类文件 被加载的时候 被放到 方法区域, 并且这些static变量和 方法 都是被类的实例对象 共享的。 我是这么理解的不知道是否跟老师的意思一样
你的变量名写错了,上面定义的是compay,下面写的是company,下面的id:和name:不用写的
代码一样就是显示错误
微信找我我给你看一下吧
TestStaic { String String = (idString name){ .= idname = name} <> (){ System..println()} (){ System..println()} <> (String[] args){ String 1 = u = TestStaic(::).printCompany()
老师,和老师教的一样打的代码,怎么会有报错?
代码放到代码区,截图报错信息
TestStaic { String String = (idString name){ .= idname = name} <> (){ System..println()} (){ System..println()} <> (String[] args){ String 1 = u = TestStaic(::).printCompany()
代码放在代码区,写上你的问题。
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的值
老师好,对象是new出来的吗
是的,在new的时候会调用类内部的构造方法,通过构造方法会在内存中分配一个实例对象
老师你好,
1、静态的属性和方法打印的时候都是这样写的吗:类名.print___;吗?如(TestStatic.printcompany)?
2、普通方法调用的时候如:login();那么想在main()中调用普通方法该怎么调用?
3、程序开头定义了id,name,但是打印的时候却没有用上,那么为什么要定义id和name呢?是每个程序必须?
1、理解没有问题
2、普通方法调用要先创建对象,通过对象名.属性/方法。
3、这里id,name不是每一个程序的必须,这里是类的成员变量,我们在上述代码中创建对象的时候为这两个变量赋了值,之后在打印这个对象的时候可以打印出该值。
老师好,静态方法中不能直接访问非静态成员,那图片中的静态方法printCompany的语句块中打印的参数,可否用this来访问成员变量呢?如果不能,那应该怎么调用成员变量呢
静态方法中只能调用静态的属性
那想要在静态方法中调用非静态的成员属性,那就只能在静态方法中先创建对象,在通过对象的方式进行调用属性
public static void main(String[] args) { TestStatic d = new TestStatic(12,"于"); printCompany(); company = "阿里"; printCompany(); d.login(); }
老师好,这个在调用静态方法时没有像视频里那样加类名前缀也可以正常调用的额?是因为在同一个类吗?
因为main方法是静态的,你声明的也是静态的,在同一个类中可以直接调用的
为什么打印不出我的id
在Java的语法中不可以只写 a1.id 这是你在调用一个成员属性,你是想打印属性的结果呢,还是想给属性赋值呢,你必须给定一个方向
打印属性:System.out.println(a1.id);
赋值:a1.id = 100;
老师构造方法不会出现在堆里吗
构造方法出现在方法区域的
老师一个程序里面为什么要分别用STATIC方法和普通方法写呢?有什么意义呢?
static方法 称为静态方法,静态方法从属于类,只有一分,这样我们创建对象,所有对象共享这一份变量和方法。可以节省内存。
老师,这节课上的代码如果完全靠自己敲的话根本想不到其中的逻辑,您能讲一下这片代码敲下来的逻辑吗
把代码上传上来。