导航:首页 > 方法技巧 > 非静态方法如何调用静态方法

非静态方法如何调用静态方法

发布时间:2023-02-03 20:08:37

⑴ 在Java 中非static方法如何调用

说的很清楚了 先实例化再使用
就是先new一个对象,再用这个对象调用它的方法

⑵ 非静态函数如何调用静态函数

静态函数在调用的时候没有什么特别的规则,直接调用就可以了。
1、静态函数如果是成员函数,在本类的其它成员函数中调用时完全可以直接用函数名,也可以用“类名::”修饰函数名。
2、静态函数如果是非成员函数(全局函数),在本文件内部调用的时候跟普通函数没有任何区别,但不允许在其他文件中调用。

怎么调用静态方法

静态方法不能访问非静态的实例变量和实例方法。实例方法可以访问静态成员和非静态成员。
1在本来中直接调用静态方法
2可以通过类名来调用该类的静态方法
3通过实例调用静态方法
// 外部类,不能是静态的
public class OuterClass {

// 静态方法,又称为类方法,属于Test类
public static void staticFun() {
}

// 非静态方法,又称为实例方法,属于Test类的具体实例
public void nonStaticFun() {
}

// 静态内部类,静态类只能是内部类
public static class StaticInnerClass {

// 静态方法,属于StaticInnerClass类
public static void staticFun() {
}

// 非静态方法,属于StaticInnerClass类的实例
public void nonStaticFun() {
}
}

// 非静态内部类,不能有静态方法
public class NonStaticInnerClass {

// 非静态方法,属于NonStaticInnerClass的实例
public void nonStaticFun() {
}
}

// 测试代码如下:
public static void main(String[] args) {
// 对于静态方法,使用类直接访问
OuterClass.staticFun();
StaticInnerClass.staticFun();

// 对于非静态方法,需要使用类的实例访问
new OuterClass().nonStaticFun();
new StaticInnerClass().nonStaticFun();

// 对于非静态内部类,必须创建外部类后才能使用
OuterClass outerClass = new OuterClass();
NonStaticInnerClass nonStaticInnerClass = outerClass.new NonStaticInnerClass();
nonStaticInnerClass.nonStaticFun();
}
}

⑷ 静态方法怎么调用

先在eclipse中创建一个Java工程文件。并在src下创建demo包,在demo包下创建类DemoClass。创建后的工程目录如图。

02
接下来在DemoClass类中添加一个静态属性和静态方法。被static修饰的属性或方法就是静态的。

03
对于静态方法的调用,可以使用调用非静态方法的方式去调用,即创建一个类的对象,然后再调用静态方法,具体代码如下图。

04
编辑好代码后,通过java应用程序的方式运行DemoClass.java文件,运行结果如图2,说明成功调用了静态方法。

05
不过,上面调用静态方法的方式是不推荐的。如果使用上面的方式调用静态方法,在eclipse中,你可以看到下图的警告,大概的意思是要你使用正确的调用静态方法的方式去调用该方法。

06
对于静态方法,正确调用的方式是直接通过类名来调用的。用调用例子中的staticFunction为例,正确调用该方法的代码为
DemoClass.staticFunction。当用类来调用静态方法时,可以看到eclipse就不报警告了。

07
再次运行该文件,运行结果和刚刚一样,说明也成功调用了静态方法。

08
多说一句,对于静态属性的调用,也是用类名+点+静态属性的方式来调用的,正常都不会先创建一个对象,然后再通过对象来调用静态属性。

⑸ 非静态方法中不能直接调用静态方法吗

静态方法的内存分配时间与实例方法不同
当程序开始运行时,静态方法已经在内存中被分配了空间,有了入口地址,所以可以通过"类名.方法名"直接调用
而实例方法只有在创建了该类的对象以后才分配内存
也就是说程序开始运行后静态方法已经有了入口地址,而此时实例方法可能并未被分配内存,所以无法通过静态方法调用实例方法
同理也不能用"类名.方法名"的方式调用实例方法

⑹ 非静态的方法可以访问静态方法么

不可以的,只能在静态方法中调用静态方法。
这也是为什么java的main函数是public static void main()。
静态方法中,还可以调用非静态方法。

⑺ 非静态类的 静态方法 怎么调用

程序最终都将在内存中执行,变量只有在内存中占有一席之地时才能被访问。
类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。
在一个类的静态成员中去访问其非静态成员之所以会出错是因为在类的非静态成员不存在的时候类的静态成员就已经存在了,访问一个内存中不存在的东西当然会出错:class CA{private:int a; //非静态成员,创建类的实例时分配内存,类的不同实例对应不同的内存区域

⑻ java非静态方法里可以调用静态方法吗

静态static方法中不能调用非静态(non-static)方法,准确地说是不能直接调用non-static方法。但是可以通过将一个对象的引用传入static方法中,再去调用该对象的non-static方法。
其实这个事实的应用很经常,以至于我们不去重视:
在主函数(static方法)中我们经常创建某个类的实例,再利用其引用变量调用它的非静态方法。

阅读全文

与非静态方法如何调用静态方法相关的资料

热点内容
柜子刷油漆步骤和方法 浏览:141
心机卷发的正确方法 浏览:524
高一美术鉴赏的意义教案教学方法 浏览:298
分析指标方法 浏览:343
治疗尖锐湿疹效果好方法 浏览:925
佛学的研究方法是 浏览:166
土方法脸上长疣怎么治 浏览:74
大的体温计使用方法 浏览:840
小孩子如何学英语的方法 浏览:640
竹子养护方法有哪些 浏览:828
脆李的种植方法 浏览:100
酒的鉴别方法与用法 浏览:647
小型电脑的无线网络连接方法 浏览:301
高中生如何提高成绩方法 浏览:15
手机扫描到账方法 浏览:597
广东姨妈巾卫生巾鉴别真假方法 浏览:715
交流电子捕鼠器的安装方法 浏览:79
36v太阳能板变12v最简单方法 浏览:583
写生方法图片大全 浏览:454
rst研究方法 浏览:768