Java学习笔记17. 静态方法和非静态方法

本文探讨了在Java中静态方法与非静态方法的区别及如何互相访问。静态方法可以直接访问静态字段和其他静态方法,但访问非静态成员时需通过实例化对象。非静态方法则不受此限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

与字段相似,方法也可以分为静态和非静态。

静态方法可以访问静态字段,也可以访问静态方法。但是静态方法不能直接访问非静态方法,必须通过对象的实例进行访问。

相反,非静态方法在访问时没有限制,既可以访问静态的,也可以访问非静态的。

其实,只要想想原理就能明白。对象直接要进行互动就必须先具备形体,而创建对象,或者使用静态修饰符修饰,就是创建形体。举个例子:

public class demoStaticMethod{

	private int a = 10;  //非静态字段
	private static int b  = 20;   //静态字段

	public static void main(String[] args){
		sayHello();
		sayHi();    //这里会报错,因为静态方法main不能直接访问非静态方法 sayHi();
		System.out.println(a);	//这里会报错,因为静态方法main不能直接使用非静态字段 a
		System.out.println(b);	
	
		demoStaticMethod dSM = new demoStaticMethod();
		dSM.sayHi();  //静态访问非静态,必须创建实例进行访问
		System.out.println(dSM.a); //通过实例访问非静态字段
	}

	static void sayHello(){ //静态方法
	
		System.out.println("Say Hello!");
	}

	void sayHi(){ //非静态方法
	
		System.out.println("Say Hi!");
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值