当前位置:首页 » 编程语言 » java非静态方法调用静态方法

java非静态方法调用静态方法

发布时间: 2022-05-15 15:49:05

java中的静态方法是什么

静态方法是在类中使用staitc修饰的方法,在类定义的时候已经被装载和分配。

静态方法为类所有,可以通过对象来使用,也可以通过类来使用。

我们之前一直写的mian方法仔细看看,它就是一个静态方法,静态方法使用如下:

❷ Java中为什么要有静态方法 和非静态方法之分

站在“面向对象”的角度,static,也就是你说的静态,是为了保持共性,大家伙都用一个,而非静态就是为了保持个性,这个个性需要使用实例来完成。例如
class Dog{
private static String color;
public static String getColor(){
return color;
}
}
这时候,Dog的color就只有共性,都是某种颜色,你想现实中Dog的颜色可能会有多种,要更加符合现实的话,这个修饰color的static最好是去掉,方法也是如此。在java中方法有一个更好的取名——行为,字段也叫——属性。使用静态方法更多的用的是共性,她不需要个性,就像工具类中的对外提供的方法(API)一样都是静态的,而我们的一般类,都是为了保持个性而使用非静态方法的。C语言中的确不需要这么考虑。

❸ java中的非静态为什么可以调用静态方法

首先要知道静态方法是属于类的,可以通过类来直接调用。java的内部执行构造是先有类才可以构造实例,也就是说你通过实例去调用静态方法时,类已经存在了,通过实例调用静态方法和用类调用时是一致的。其次实例方法是属于实例的,不属于类当然类无法调用,可以这样理解,有类了,但是实例可能还没有实例化,所以静态不能访问非静态

❹ JAVA中,非静态方法可以调用静态成员变量吗

当然可以。
1.
静态成员变量和静态成员方法都是属于类而不是某一个具体实例的,静态成员(包括属性和方法)是在类加载阶段就已经初始化了的,所以当某一个实例访问静态成员的时候,静态成员肯定是已经存在了的,所以可以访问。
2.反过来,如果让静态方法去访问实例成员那就不行了,因为实例成员的初始化在静态成员之后

❺ java中非静态方法可以调用静态方法吗

使用static修饰的方法被称为静态方法,该方法具有以下的特点:
(1)静态方法只能调用静态方法和静态属性。不能调用非静态方法或属性
(2)非静态的方法可以调用静态地方法

❻ java 中非静态方法能调用静态方法吗

可以的!静态存在的意义就是供别的程序使用(非严格说法)
比如工具类...包装类....等等!
调用格式:
类名.静态方法

❼ 一个关于JAVA静态问题求解释,STATIC方法只能访问STATIC方法,非STATIC方法可以访问STATIC方法,

你好,我觉得一句话就能说清楚,说的多了,反而让你理解的更加模糊。记住这点:
静态方法是属于类的,而普通方法是属于对象的。
属于类的静态方法可以在对象不存在的时候就能访问到,而普通方法必须先new一个对象才能用这个对象访问。当我们访问调用静态方法的时候(使用类名.静态方法名)这个时候就没有对象创建,所以普通方法是访问不到的。为了避免这种错误,所以java就不允许在静态方法中访问非静态方法。
还有纠正你的错误,main方法也满足我上面说的,你仔细看下,main方法中是不是先创建的对象,然后用对象去访问的呀。

❽ 非静态方法可以调用静态方法与变量吗

Java中非静态方法可以调用静态方法与变量,如下:

packagecom.test;publicclassTestA{

/**
*静态变量a
*/
privatestaticinta=1;

publicstaticvoidmain(String[]args){
//非静态方法在main函数里只能用对象调用,main方法也静态方法
TestAtestA=newTestA();
//非静态方法里面有设置静态变量以及调用静态方法
testA.test();
System.out.println("静态变量a的值为:"+a);
}

/**
*静态方法
*@paramname
*/
publicstaticvoidsayHello(Stringname){
System.out.println(name+"sayhello!");
}

publicvoidtest(){
System.out.println("我是非静态方法test!");
//设置静态变量值
a=2;
//调用静态方法没报异常
sayHello("Test");
}
}

结果:
我是非静态方法test!
Testsayhello!
静态变量a的值为:2

❾ java调用静态方法和非静态方法的区别

静态方法从属于类,非静态方法属于对象,静态方法在类加载的时候就已经初始化了,而非静态方法语言对象实例化之后才能初始化。

内存分析:静态内存是指在程序开始运行时由编译器分配的内存,它的分配是在程序开始编译时完成的,不占用CPU资源

❿ 什么是Java语言中所说的非静态方法,它和静态方法有何区别

非静态方法是相对于静态方法来说的。静态方法使用static关键字来标示,非静态方法没有此关键字。
他们之间最大的区别在于它们生命周期的不同,静态方法属于全局方法,当静态方法第一次被访问的时候,就将常驻内存直到整个系统被销毁;而非静态方法则与类有关,只有该方法所在的类被实例化之后,该方法才能被访问,类被销毁的同时方法也被销毁。生命周期的不同决定了它们的调用方式的不同,静态方法使用(类名.方法名)来调用,而非静态方法则需要(new类名().方法名)来调用。
同时与之相关的就是,静态方法不能调用非静态方法和属性。在了解了它们生命周期的不同后,这一点也比较好理解,因为静态方法生命周期比非静态方法和属性长,当调用非静态方法和属性时就会产生非静态方法和属性已经被销毁的情况导致程序出错。

热点内容
mmm源码 发布:2024-05-04 09:57:29 浏览:261
清除后台缓存的软件 发布:2024-05-04 09:57:22 浏览:832
梦幻西游有什么脚本 发布:2024-05-04 09:33:43 浏览:717
I编程视频 发布:2024-05-04 09:33:31 浏览:378
java客户端程序 发布:2024-05-04 08:08:11 浏览:939
腾讯视频账号和密码哪里看 发布:2024-05-04 08:08:11 浏览:451
专网数据存储安全问题分析 发布:2024-05-04 07:33:28 浏览:131
如何获得打印机无线密码 发布:2024-05-04 06:44:59 浏览:418
上古诸神录哪里改密码 发布:2024-05-04 06:43:55 浏览:263
灌篮高手手游自动盖帽脚本 发布:2024-05-04 06:42:31 浏览:425