java中有关静态方法中不能调用实例方法的问题
我知道静态方法中不能调用实例方法,只用创建一个对象后,才能在静态中调用实例方法,像下面例子:publicclassA{publicstaticvoidmain(){fun...
我知道静态方法中不能调用实例方法,只用创建一个对象后,才能在静态中调用实例方法,像下面例子:
public class A{
public static void main(){
functionA(); //这样就会报错,因为main是static,而functionA是实例方法。但若我改成 new A().functionA(); 去调用,就不会报错了
}
public void functionA(){
}
}
有哪位大虾可以说一下详细的原理和原因 展开
public class A{
public static void main(){
functionA(); //这样就会报错,因为main是static,而functionA是实例方法。但若我改成 new A().functionA(); 去调用,就不会报错了
}
public void functionA(){
}
}
有哪位大虾可以说一下详细的原理和原因 展开
5个回答
展开全部
构造方法
这个是创建对象时候用的 里面可以给赋予初始值或者继承父类的属性或者方法 反正就是构造对象时候用的方法拉
成员方法
这个我还真不懂
实例方法
就是对象方法 只能被对象所调用
静态方法
就是类方法
被static修饰的方法就是类方法 类和对象皆可调用 但一般很少用到静态方法 一般都是为了方便调试或者是有些特殊的地方要用上
方法并不是谁包含谁 他只是一种运算方式
还有final方法 不可被任何类继承重载
抽象方法是在抽象类和接口声明的
他们需要实现或者继承,可覆盖
楼上的都说了 不清楚我怎么说你能明白么
以上的都是常见的方法类型
有时间看看修饰符的作用和类与对象的关系
就没看见过你怎么问的
补充回答:
没层次
方法主要就分对象方法和类方法(静态)
还有抽象方法和final方法
主方法程序的开始
方法之间没层次关系,他们只是被对象或类调用
这个是创建对象时候用的 里面可以给赋予初始值或者继承父类的属性或者方法 反正就是构造对象时候用的方法拉
成员方法
这个我还真不懂
实例方法
就是对象方法 只能被对象所调用
静态方法
就是类方法
被static修饰的方法就是类方法 类和对象皆可调用 但一般很少用到静态方法 一般都是为了方便调试或者是有些特殊的地方要用上
方法并不是谁包含谁 他只是一种运算方式
还有final方法 不可被任何类继承重载
抽象方法是在抽象类和接口声明的
他们需要实现或者继承,可覆盖
楼上的都说了 不清楚我怎么说你能明白么
以上的都是常见的方法类型
有时间看看修饰符的作用和类与对象的关系
就没看见过你怎么问的
补充回答:
没层次
方法主要就分对象方法和类方法(静态)
还有抽象方法和final方法
主方法程序的开始
方法之间没层次关系,他们只是被对象或类调用
展开全部
首先你知道NEW是什么意思,在NEW之前。类中的变量,方法并没有在内存中开辟空间,通俗的说只是注册或声明下有这个类,有这些方法,变量。而静态方法或变量已经在静态池中开辟了空间。那在没有new之前肯定是不能调用。而new之后类中所有的变量,方法在内存中开辟了空间,所以就能调用了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
static修饰的方法、变量等,都是静态的,不需要实例化对象,直接用类.方法名或类.属性即可方法,而没有用static修饰的方法、变量等是需要实例化对象后才能访问。其次它们在内存中存储空间也不一样。所以static方法不能调用实例方法,而实例方法可以调用static方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
静态方法或属性不依赖于对象,只要类被加载就会给它分配内存空间。
而非静态方法则是依赖于对象,只有创建了对象才能调用。
由于静态方法直接可以通过类名调用,假如非静态方法能在静态方法中调用,那么实行的时候就会有问题。
而非静态方法则是依赖于对象,只有创建了对象才能调用。
由于静态方法直接可以通过类名调用,假如非静态方法能在静态方法中调用,那么实行的时候就会有问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fun..是一个方法,默认是this掉用,static 没有this,所以报错
new A().fun..是A调用,就对了
new A().fun..是A调用,就对了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询