Java面向对象面试题分析:静态变量和静态方法

本文介绍了Java中静态类和静态方法的概念及其使用。静态类内的成员只能访问静态变量和方法,常用于工具类。静态方法不依赖于类的实例,可以直接通过类名调用,如Math.abs()。过度使用静态方法可能破坏封装性和增加耦合度,因此应当谨慎使用。正确使用静态变量,仅将全局需要的变量设为静态。在有限范围内应用静态类和方法,以保持代码的清晰和高效。
摘要由CSDN通过智能技术生成

类一般是个抽象的概念,而对象则是类的实例,比如人类的实例对象是张三这个大活人。在用法上,我们一般是通过new关键字初始化一个类的实例,然后再调用类里的方法。比如 人类 张三 = new 人类();,再是张三.思考();。

在这种情况下,我们一般不会用人类.思考();这样的调用方式,因为抽象的人类是无法思考的。

不过在有些场景下,我们可以通过类.方法();的形式来调用。比如当我们用Math这个提供计算方法的类计算绝对值时,用的是Math.abs(-2),而不是先通过Math初始化一个对象再调用,这个原因是abs是静态方法。我们通过StaticDemo.java这个例子来看下静态类的用法。

1	public class StaticDemo {
2	    private static int value = -2;	
3		static void print()	{
4	         //静态类里只能使用静态的变量
5			System.out.println(Math.abs(value));
6		}	
7		public static void main(String[] args) {
8	        //静态类里只能使用静态的方法 
9			StaticDemo.print();
10		}
11	}

我们发现静态类里只能使用静态的变量和方法,如果我们把第2行和第3行里针对静态变量和静态方法的static拿走,会报错。而在第9行里,我们是通过StaticDemo这个类(而不是new出来的对象)来调用print方法。

所以你被问到静态变量和静态类的用法时,可以说出如下要点。

要点1,由于可以不同new就能使用方法,一些程序员为了图省事,会大量定义静态方法,这样做会破坏类的封装性,而且会增加类之间的耦合度,所以只能在需要的场景下定义静态类。

要点2,静态变量相当于全局变量,所以只该把整个项目里都会用到变量设置成静态的。

要点3,在尽可能小的范围里使用静态类和静态方法。

 更多java面向对象面试题的讲解分析:

Java面向对象面试题讲解:类和实例的差别

Java面向对象面试题分析,你知道哪些Java访问修饰符

Java面向对象面试题分析:静态变量和静态方法

Java面向对象面试题分析:说出抽象类和接口的差别

Java面向对象面试题分析:说出final关键字的用法

Java面向对象面试题解析:说下方法的覆盖和重载

 这是我的公众号,其中包含了大量面试文章,同时我自己出了多本Python和Java方面的书籍,会定期在公众号里发书的电子版。请大家关注下我的公众号,谢谢了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hsm_computer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值