关于java类的理解问题
本帖最后由 Chost 于 2020-5-28 20:39 编辑public class InstanceCounter {
private static int numInstances = 0;
protected static int getCount() {
return numInstances;
}
private static void addInstance() {
numInstances++;
}
InstanceCounter() {
InstanceCounter.addInstance();
}
public static void main(String[] arguments) {
System.out.println("Starting with " +
InstanceCounter.getCount() + " instances");
for (int i = 0; i < 500; ++i){
new InstanceCounter();
}
System.out.println("Created " +
InstanceCounter.getCount() + " instances");
}
}
第11、12行,InstanceCounter这个类为什么可以直接调用方法,而没有创建对象来调用
第19行new是怎么理解 addInstance( ) 前面有关键字 static, 这样的方法叫类方法,可以通过类名来访问。 Vjmms 发表于 2020-5-28 17:26
addInstance( ) 前面有关键字 static, 这样的方法叫类方法,可以通过类名来访问。
static定义的方法是静态方法,
也叫作类方法嘛?
能解释一下第19的new吗,也不像是创建一个对象啊 我觉得你需要找一个培训机构(比如黑马)的Java入门视频,这样就都懂了 qzhing 发表于 2020-5-28 17:47
我觉得你需要找一个培训机构(比如黑马)的Java入门视频,这样就都懂了
大部分都懂,只是有些细节有疑问,感觉看视频太浪费时间了 new创建对象会调用无参构造方法,无法构造方法又通过类名调用静态方法。 本帖最后由 往事随风不苦涩 于 2020-5-28 17:59 编辑
Chost 发表于 2020-5-28 17:36
static定义的方法是静态方法,
也叫作类方法嘛?
能解释一下第19的new吗,也不像是创建一个对象啊
new关键字创建了一个对象,只是没有把创建的对象的地址交给其他变量。这个叫匿名对象。
匿名对象知识点
链接:https://pan.baidu.com/s/17KCPrz0KGv03BWXaOU_VSg
提取码:g9pc 这里的NEW没有什么意思,调用的是默认的无参构造函数,只是掩饰静态方法使用而已 不苦小和尚 发表于 2020-5-28 18:04
这里的NEW没有什么意思,调用的是默认的无参构造函数,只是掩饰静态方法使用而已
既然类名可以调用静态方法和变量,是不是就不用创建对象,第19行这样写就没意义了? VAE520 发表于 2020-5-28 17:54
new创建对象会调用无参构造方法,无法构造方法又通过类名调用静态方法。
第19行创建对象,但对象的名字没写出呀
页:
[1]
2